Class ComputeTensorData
Represents data storage for a Tensor
as a compute buffer, for GPUCompute backend.
Inherited Members
Namespace: Unity.Sentis
Assembly: Unity.Sentis.dll
Syntax
public class ComputeTensorData : ITensorData, IDisposable
Constructors
ComputeTensorData(int, bool)
Initializes and returns an instance of ComputeTensorData
, and allocates storage for a tensor with the shape of shape
.
Declaration
public ComputeTensorData(int count, bool clearOnInit = false)
Parameters
Type | Name | Description |
---|---|---|
int | count | The number of elements. |
bool | clearOnInit | Whether to zero the data on allocation. The default value is |
ComputeTensorData(int, NativeTensorArray, int)
Initializes and returns an instance of ComputeTensorData
with given data and offset.
Declaration
public ComputeTensorData(int count, NativeTensorArray array, int offset = 0)
Parameters
Type | Name | Description |
---|---|---|
int | count | The number of elements. |
NativeTensorArray | array | The allocated data to use as backing data. |
int | offset | The integer offset from the start of the backing array. The default value is 0. |
Properties
backendType
On what backend are the data elements stored.
Declaration
public BackendType backendType { get; }
Property Value
Type | Description |
---|---|
BackendType |
buffer
The data storage as a compute buffer.
Declaration
public ComputeBuffer buffer { get; }
Property Value
Type | Description |
---|---|
ComputeBuffer |
maxCapacity
The maximum count of the stored data elements.
Declaration
public int maxCapacity { get; }
Property Value
Type | Description |
---|---|
int |
Methods
Clone()
Returns a deep copy of the internal storage.
Declaration
public ITensorData Clone()
Returns
Type | Description |
---|---|
ITensorData | Cloned internal storage. |
CompleteAllPendingOperations()
Blocking call to make sure that internal data is correctly written to and available for CPU read back.
Declaration
public void CompleteAllPendingOperations()
Dispose()
Disposes of the ComputeTensorData
and any associated memory.
Declaration
public void Dispose()
Download<T>(int, int)
Returns a contiguous block of data from internal storage.
Declaration
public NativeArray<T> Download<T>(int dstCount, int srcOffset = 0) where T : unmanaged
Parameters
Type | Name | Description |
---|---|---|
int | dstCount | The number of elements to download. |
int | srcOffset | The index of the first element in storage to download. |
Returns
Type | Description |
---|---|
NativeArray<T> | A native array of downloaded elements. |
Type Parameters
Name | Description |
---|---|
T | The data type of the elements. |
~ComputeTensorData()
Finalizes the ComputeTensorData
.
Declaration
protected ~ComputeTensorData()
IsReadbackRequestDone()
Checks if asynchronous readback request is done.
Declaration
public bool IsReadbackRequestDone()
Returns
Type | Description |
---|---|
bool | Whether async readback is successful. |
Pin(Tensor, bool)
Moves the tensor into GPU memory on the GPUCompute backend device.
Declaration
public static ComputeTensorData Pin(Tensor X, bool clearOnInit = false)
Parameters
Type | Name | Description |
---|---|---|
Tensor | X | The tensor to move to the compute backend. |
bool | clearOnInit | Whether to zero the data on pinning. The default value is |
Returns
Type | Description |
---|---|
ComputeTensorData | The pinned |
ReadbackRequest(Action<bool>)
Schedules asynchronous readback of the internal data.
Declaration
public void ReadbackRequest(Action<bool> callback = null)
Parameters
Type | Name | Description |
---|---|---|
Action<bool> | callback | Callback invoked when async readback is finished. Return value indicates if async readback is successful. |
ReadbackRequestAsync()
Schedules awaitable asynchronous readback of the internal data.
See AsyncReadbackRequest for more info
Declaration
public Task<bool> ReadbackRequestAsync()
Returns
Type | Description |
---|---|
Task<bool> | Whether awaitable task for when readback is successful. |
ToString()
Returns a string that represents the ComputeTensorData
.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string | The string summary of the |
Overrides
Upload<T>(NativeArray<T>, int, int)
Uploads a contiguous block of tensor data to internal storage.
Declaration
public void Upload<T>(NativeArray<T> data, int srcCount, int srcOffset = 0) where T : unmanaged
Parameters
Type | Name | Description |
---|---|---|
NativeArray<T> | data | The data to upload. |
int | srcCount | The number of elements to upload. |
int | srcOffset | The index of the first data element to upload. |
Type Parameters
Name | Description |
---|---|
T | The type of data to upload. |