public MemoryMapping(DeviceBuffer buffer, bool discard = true) : base(buffer.Context) { if (discard) { _ptr = plaidml.__Internal.PlaidmlMapBufferDiscard(buffer.Context, buffer); Type = MemoryMapType.Discard; } else { _ptr = plaidml.__Internal.PlaidmlMapBufferCurrent(buffer, IntPtr.Zero, IntPtr.Zero); Type = MemoryMapType.Retain; } if (_ptr.IsZero()) { ReportApiCallError(discard ? "plaidml_map_buffer_discard" : "plaidml_map_buffer_current"); return; } Buffer = buffer; IsAllocated = true; IsValid = true; Pin(0); }
public DeviceTensorView <T> CreateView <T>(MemoryMapType mapType) where T : unmanaged, IEquatable <T>, IComparable <T>, IConvertible { ThrowIfNotAllocated(); return(new DeviceTensorView <T>(this, mapType)); }
public DeviceTensorView(DeviceTensor variable, MemoryMapType mapType) : base(variable.DeviceBuffer, mapType == MemoryMapType.Discard ? true : false) { _Tensor = variable; }