Class SharedArrayTensorData
Internal Tensor
data backed by managed array that is shared between multiple tensors
Namespace: Unity.Barracuda
Syntax
public class SharedArrayTensorData : object, ITensorData, IDisposable
Constructors
SharedArrayTensorData(Single[], Int32, Int32)
Create SharedArrayTensorData
with supplied shared data
Declaration
public SharedArrayTensorData(float[] data, int offset = 0, int count = null)
Parameters
Type | Name | Description |
---|---|---|
Single[] | data | shared array |
Int32 | offset | offset in shared array |
Int32 | count | element count |
Properties
array
Data storage array
Declaration
public float[] array { get; }
Property Value
Type | Description |
---|---|
Single[] |
count
Data element count
Declaration
public int count { get; }
Property Value
Type | Description |
---|---|
Int32 |
maxCapacity
Returns the maximum number of element this tensorData can contain.
Declaration
public virtual int maxCapacity { get; }
Property Value
Type | Description |
---|---|
Int32 |
Implements
offset
Offset in storage array
Declaration
public int offset { get; }
Property Value
Type | Description |
---|---|
Int32 |
Methods
Dispose()
Dispose 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 |
---|---|
Single[] | Tensor data as |
Implements
Finalize()
Finalize
Declaration
protected void Finalize()
Reserve(Int32)
Reserve uninitialized memory.
Declaration
public virtual void Reserve(int count)
Parameters
Type | Name | Description |
---|---|---|
Int32 | count | element count to reserve |
Implements
ScheduleAsyncDownload(Int32)
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 |
---|---|---|
Int32 | count | count of elements to download |
Returns
Type | Description |
---|---|
Boolean |
|
Implements
SharedAccess(out Int32)
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 |
---|---|---|
Int32 | offset | This function outputs |
Returns
Type | Description |
---|---|
Single[] | array filled with the values of multiple tensors that share the same tensorData on device |
Implements
ToString()
Storage summary as string
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
String | storage summary as string |
Upload(Single[], TensorShape, Int32)
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 |
---|---|---|
Single[] | data | data as |
TensorShape | shape | Tensor shape |
Int32 | managedBufferStartIndex | managed buffer start index |