Class ComputeTensorData
Tensor
data storage for GPU backends
Inherited Members
Namespace: Unity.Barracuda
Assembly: Unity.Barracuda.dll
Syntax
public class ComputeTensorData : ITensorData, IDisposable
Constructors
ComputeTensorData(TensorShape, string, ChannelsOrder, bool)
Create ComputeTensorData
Declaration
public ComputeTensorData(TensorShape shape, string buffername, ComputeInfo.ChannelsOrder onDeviceChannelsOrder, bool clearOnInit = true)
Parameters
Type | Name | Description |
---|---|---|
TensorShape | shape | shape |
string | buffername | buffer name |
ComputeInfo.ChannelsOrder | onDeviceChannelsOrder | channel order |
bool | clearOnInit | clear on init |
ComputeTensorData(ComputeBuffer, TensorShape, int, string, ChannelsOrder)
Create ComputeTensorData
with specified buffer
Declaration
public ComputeTensorData(ComputeBuffer buffer, TensorShape shape, int offset, string buffername, ComputeInfo.ChannelsOrder onDeviceChannelsOrder)
Parameters
Type | Name | Description |
---|---|---|
ComputeBuffer | buffer | buffer |
TensorShape | shape | shape |
int | offset | offset |
string | buffername | buffer name |
ComputeInfo.ChannelsOrder | onDeviceChannelsOrder | channels order |
Fields
name
Parent Tensor
name
Declaration
public string name
Field Value
Type | Description |
---|---|
string |
Properties
buffer
Data storage as ComputeBuffer
Declaration
public ComputeBuffer buffer { get; }
Property Value
Type | Description |
---|---|
ComputeBuffer |
channelsOrder
Channel order channels-first vs channels-last
Declaration
public ComputeInfo.ChannelsOrder channelsOrder { get; }
Property Value
Type | Description |
---|---|
ComputeInfo.ChannelsOrder |
maxCapacity
Returns the maximum number of element this tensorData can contain.
Declaration
public virtual int maxCapacity { get; }
Property Value
Type | Description |
---|---|
int |
offset
Offset in the data storage buffer
Declaration
public int offset { get; }
Property Value
Type | Description |
---|---|
int |
Methods
Dispose()
Dispose internal storage
Declaration
public virtual void Dispose()
Download(TensorShape)
Returns an array filled with the values of a tensor.
Depending on the implementation and underlying device this array might be a copy or direct reference to the tensor values.
This is a blocking call, unless data from device was requested via ScheduleAsyncDownload
beforehand and has already arrived.
Declaration
public virtual float[] Download(TensorShape shape)
Parameters
Type | Name | Description |
---|---|---|
TensorShape | shape | the TensorShape (and thus length) of the data to copy |
Returns
Type | Description |
---|---|
float[] | Tensor data as |
~ComputeTensorData()
Finalizer
Declaration
protected ~ComputeTensorData()
Reserve(int)
Reserve uninitialized memory.
Declaration
public virtual void Reserve(int count)
Parameters
Type | Name | Description |
---|---|---|
int | count | element count to reserve |
ScheduleAsyncDownload(int)
Schedule an asynchronous download from device memory.
count
is the number of element to readback.
Declaration
public virtual bool ScheduleAsyncDownload(int count)
Parameters
Type | Name | Description |
---|---|---|
int | count | count of elements to download |
Returns
Type | Description |
---|---|
bool |
|
SharedAccess(out int)
Returns an array filled with the values of multiple tensors that share the same tensorData on device.
Depending on the implementation and underlying device this array might be a copy or direct reference to tensor values, no conversion from on device memory layout will occur.
This is a blocking call, unless data from device was requested via ScheduleAsyncDownload
beforehand and has already arrived.
Declaration
public virtual float[] SharedAccess(out int offset)
Parameters
Type | Name | Description |
---|---|---|
int | offset | This function outputs |
Returns
Type | Description |
---|---|
float[] | array filled with the values of multiple tensors that share the same tensorData on device |
ToString()
Summary
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string | summary |
Overrides
Upload(float[], TensorShape, int)
Initialize with data
.
shape
is the TensorShape (and thus length) of the data to copy.
managedBufferStartIndex
is the offset where to start the copy in the data
Declaration
public virtual void Upload(float[] data, TensorShape shape, int managedBufferStartIndex = 0)
Parameters
Type | Name | Description |
---|---|---|
float[] | data | data as |
TensorShape | shape | Tensor shape |
int | managedBufferStartIndex | managed buffer start index |