Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public DeviceTensorView <T> CreateView <T>(MemoryMapType mapType)
     where T : unmanaged, IEquatable <T>, IComparable <T>, IConvertible
 {
     ThrowIfNotAllocated();
     return(new DeviceTensorView <T>(this, mapType));
 }
Esempio n. 3
0
 public DeviceTensorView(DeviceTensor variable, MemoryMapType mapType)
     : base(variable.DeviceBuffer, mapType == MemoryMapType.Discard ? true : false)
 {
     _Tensor = variable;
 }