Interface IWorker
Public interface for Workers. A worker is able to schedule models execution for a given backend.
Use WorkerFactory to instantiate a worker.
Namespace: Barracuda
Syntax
public interface IWorker : IDisposable
Methods
Execute()
Non-blocking API that schedules network execution in one go Remark: This API will only be non-blocking for GPU inference.
Declaration
void Execute()
Execute(Tensor)
Non-blocking API that schedules network execution in one go, using the provider tensor as input. Remark: This API will only be non-blocking for GPU inference. Useful when network have only one input as input name is not needed.
Declaration
void Execute(Tensor input)
Parameters
| Type | Name | Description |
|---|---|---|
| Tensor | input |
Execute(IDictionary<String, Tensor>)
Non-blocking API that schedules network execution in one go, using the provider tensor dictionary for inputs. Remark: This API will only be non-blocking for GPU inference.
Declaration
void Execute(IDictionary<string, Tensor> inputs)
Parameters
| Type | Name | Description |
|---|---|---|
| IDictionary<String, Tensor> | inputs |
ExecuteAsync()
Non-blocking API that schedules network execution one layer at the time. Remark: This API will only be non-blocking for GPU inference. Check GetAsyncProgress() for progress.
Declaration
IEnumerator ExecuteAsync()
Returns
| Type | Description |
|---|---|
| IEnumerator |
ExecuteAsync(Tensor)
Non-blocking API that schedules network execution one layer at the time, using the provider tensor as input. Remark: This API will only be non-blocking for GPU inference. Useful when network have only one input as input name is not needed. Check GetAsyncProgress() for progress.
Declaration
IEnumerator ExecuteAsync(Tensor input)
Parameters
| Type | Name | Description |
|---|---|---|
| Tensor | input |
Returns
| Type | Description |
|---|---|
| IEnumerator |
ExecuteAsync(IDictionary<String, Tensor>)
Non-blocking API that schedules network execution one layer at the time, using the provider tensor dictionary for inputs. Remark: This API will only be non-blocking for GPU inference. Check GetAsyncProgress() for progress.
Declaration
IEnumerator ExecuteAsync(IDictionary<string, Tensor> inputs)
Parameters
| Type | Name | Description |
|---|---|---|
| IDictionary<String, Tensor> | inputs |
Returns
| Type | Description |
|---|---|
| IEnumerator |
GetAsyncProgress()
Progress of the scheduling, 0.0 = 0%, 1.0 = 100%
Declaration
float GetAsyncProgress()
Returns
| Type | Description |
|---|---|
| Single |
PeekOutput()
Returns a reference to tensor from the last layer of the network Useful when network has only one output. IMPORTANT: follow with TakeOwnership() call, if you want tensor to outlive worker or make tensor copy with DeepCopy() see also WorkerExtensions.FetchAndTakeOwnership()
Declaration
Tensor PeekOutput()
Returns
| Type | Description |
|---|---|
| Tensor |
PeekOutput(String)
Returns a reference to tensor by name. IMPORTANT: follow with TakeOwnership() call, if you want tensor to outlive worker or make tensor copy with DeepCopy() see also WorkerExtensions.FetchAndTakeOwnership()
Declaration
Tensor PeekOutput(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| String | name |
Returns
| Type | Description |
|---|---|
| Tensor |
PrepareForInput(IDictionary<String, TensorShape>)
Optional method to prepare network for particular input dimensions
Declaration
void PrepareForInput(IDictionary<string, TensorShape> inputShapes)
Parameters
| Type | Name | Description |
|---|---|---|
| IDictionary<String, TensorShape> | inputShapes |
SetInput(Tensor)
Specify single tensor value as the input for the network. Useful when network has only one input and caller does not need to know input's name.
Declaration
void SetInput(Tensor x)
Parameters
| Type | Name | Description |
|---|---|---|
| Tensor | x |
SetInput(String, Tensor)
Specify tensor value for the named input of the network.
Declaration
void SetInput(string name, Tensor x)
Parameters
| Type | Name | Description |
|---|---|---|
| String | name | |
| Tensor | x |
Summary()
Returns a string summary after execution.
Declaration
string Summary()
Returns
| Type | Description |
|---|---|
| String |
WaitForCompletion()
Wait for completion of part of the network that was scheduled via ExecuteAsync()
Declaration
void WaitForCompletion()