DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

DNN Plugin

Detailed Description

Provides an interface for supporting non-standard DNN layers.

Note
SW Release Applicability: These APIs are available in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.

Data Structures

struct  dwDNNPluginWeights
 Stores DNN weights. More...
 

Typedefs

typedef void * _dwDNNPluginHandle_t
 _dwDNNPluginHandle_t can be optionally used for storing and accessing variables among the functions defined below. More...
 

Enumerations

enum  dwDNNPluginLayout {
  DW_DNN_PLUGIN_LAYOUT_LINEAR = 0,
  DW_DNN_PLUGIN_LAYOUT_NCHW = DW_DNN_PLUGIN_LAYOUT_LINEAR,
  DW_DNN_PLUGIN_LAYOUT_NC2HW2 = 1,
  DW_DNN_PLUGIN_LAYOUT_CHW2 = DW_DNN_PLUGIN_LAYOUT_NC2HW2,
  DW_DNN_PLUGIN_LAYOUT_NHWC8 = 2,
  DW_DNN_PLUGIN_LAYOUT_HWC8 = DW_DNN_PLUGIN_LAYOUT_NHWC8,
  DW_DNN_PLUGIN_LAYOUT_CHW4 = 3,
  DW_DNN_PLUGIN_LAYOUT_CHW16 = 4,
  DW_DNN_PLUGIN_LAYOUT_CHW32 = 5
}
 Represents different layouts for plugins. More...
 

Functions

dwStatus _dwDNNPlugin_configureWithFormat (const dwBlobSize *inputDimensions, int32_t numInputs, const dwBlobSize *outputDimensions, int32_t numOutputs, dwPrecision precision, dwDNNPluginLayout layout, int32_t maxBatchSize, _dwDNNPluginHandle_t handle)
 Configures the plugin with given format. More...
 
dwStatus _dwDNNPlugin_enqueue (int32_t batchSize, const void *const *inputs, void **outputs, void *workspace, cudaStream_t stream, _dwDNNPluginHandle_t handle)
 Performs forward-pass. More...
 
dwStatus _dwDNNPlugin_getNumOutputs (int32_t *numOutputs, _dwDNNPluginHandle_t handle)
 Returns number of outputs. More...
 
dwStatus _dwDNNPlugin_getOutputDimensions (dwBlobSize *outputDimensions, int32_t outputIndex, const dwBlobSize *inputDimensions, int32_t numInputs, _dwDNNPluginHandle_t handle)
 Returns output dimensions of an output at a given index based on inputDimensions. More...
 
dwStatus _dwDNNPlugin_getSerializationSize (size_t *serializationSize, _dwDNNPluginHandle_t handle)
 Returns serialization size. More...
 
dwStatus _dwDNNPlugin_getWorkspaceSize (size_t *workspaceSize, int32_t maxBatchSize, _dwDNNPluginHandle_t handle)
 Returns workspace size. More...
 
dwStatus _dwDNNPlugin_initialize (_dwDNNPluginHandle_t *handle, const char8_t *layerName, const void *data, size_t length)
 Initializes the custom plugin from serialized bytes. More...
 
dwStatus _dwDNNPlugin_initializeFromWeights (_dwDNNPluginHandle_t *handle, const char8_t *layerName, const dwDNNPluginWeights *weights, int32_t numWeights)
 Initializes the custom plugin from weights. More...
 
dwStatus _dwDNNPlugin_release (_dwDNNPluginHandle_t handle)
 Releases the custom plugin. More...
 
dwStatus _dwDNNPlugin_serialize (void *buffer, _dwDNNPluginHandle_t handle)
 Serializes the layer. More...
 
dwStatus _dwDNNPlugin_supportsFormat (bool *res, dwPrecision precision, dwDNNPluginLayout pluginLayout, _dwDNNPluginHandle_t handle)
 Returns a flag indicating whether the given format is supported. More...
 

Data Structure Documentation

◆ dwDNNPluginWeights

struct dwDNNPluginWeights
Data Fields
int64_t count the number of weights in the array
dwPrecision precision data type of the weights
const void * values the weight values, in a contiguous array

Typedef Documentation

◆ _dwDNNPluginHandle_t

typedef void* _dwDNNPluginHandle_t

_dwDNNPluginHandle_t can be optionally used for storing and accessing variables among the functions defined below.

Definition at line 87 of file DNNPlugin.h.

Enumeration Type Documentation

◆ dwDNNPluginLayout

Represents different layouts for plugins.

Enumerator
DW_DNN_PLUGIN_LAYOUT_LINEAR 

CHW.

DW_DNN_PLUGIN_LAYOUT_NCHW 

CHW.

DW_DNN_PLUGIN_LAYOUT_NC2HW2 

CHW with 2-element packed channels.

DW_DNN_PLUGIN_LAYOUT_CHW2 

CHW with 2-element packed channels.

DW_DNN_PLUGIN_LAYOUT_NHWC8 

HWC with 8-element packed channels. (C must be a multiple of 8)

DW_DNN_PLUGIN_LAYOUT_HWC8 

HWC with 8-element packed channels. (C must be a multiple of 8)

DW_DNN_PLUGIN_LAYOUT_CHW4 

CHW with 4-element packed channels.

DW_DNN_PLUGIN_LAYOUT_CHW16 

CHW with 16-element packed channels.

DW_DNN_PLUGIN_LAYOUT_CHW32 

CHW with 32-element packed channels.

Definition at line 61 of file DNNPlugin.h.

Function Documentation

◆ _dwDNNPlugin_configureWithFormat()

dwStatus _dwDNNPlugin_configureWithFormat ( const dwBlobSize inputDimensions,
int32_t  numInputs,
const dwBlobSize outputDimensions,
int32_t  numOutputs,
dwPrecision  precision,
dwDNNPluginLayout  layout,
int32_t  maxBatchSize,
_dwDNNPluginHandle_t  handle 
)

Configures the plugin with given format.

Parameters
[in]inputDimensionsArray of input dimensions
[in]numInputsNumber of inputs
[in]outputDimensionsArray of output dimensions
[in]numOutputsNumber of outputs
[in]precisionPrecision
[in]layoutLayout
[in]maxBatchSizeMaximum batch size
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_enqueue()

dwStatus _dwDNNPlugin_enqueue ( int32_t  batchSize,
const void *const *  inputs,
void **  outputs,
void *  workspace,
cudaStream_t  stream,
_dwDNNPluginHandle_t  handle 
)

Performs forward-pass.

Parameters
[in]batchSizeBatch size
[in]inputsArray of inputs
[in]outputsArray of outputs
[in]workspacePointer to workspace
[in]streamCUDA stream
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_getNumOutputs()

dwStatus _dwDNNPlugin_getNumOutputs ( int32_t *  numOutputs,
_dwDNNPluginHandle_t  handle 
)

Returns number of outputs.

Parameters
[out]numOutputsNumber of outputs
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_getOutputDimensions()

dwStatus _dwDNNPlugin_getOutputDimensions ( dwBlobSize outputDimensions,
int32_t  outputIndex,
const dwBlobSize inputDimensions,
int32_t  numInputs,
_dwDNNPluginHandle_t  handle 
)

Returns output dimensions of an output at a given index based on inputDimensions.

Parameters
[out]outputDimensionsOutput dimensions
[in]outputIndexOutput index
[in]inputDimensionsArray of input dimensions
[in]numInputsNumber of inputs
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_getSerializationSize()

dwStatus _dwDNNPlugin_getSerializationSize ( size_t *  serializationSize,
_dwDNNPluginHandle_t  handle 
)

Returns serialization size.

Parameters
[out]serializationSizeSerialization size
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_getWorkspaceSize()

dwStatus _dwDNNPlugin_getWorkspaceSize ( size_t *  workspaceSize,
int32_t  maxBatchSize,
_dwDNNPluginHandle_t  handle 
)

Returns workspace size.

Parameters
[out]workspaceSizeWorkspace size
[in]maxBatchSizeMaximum batch size
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_initialize()

dwStatus _dwDNNPlugin_initialize ( _dwDNNPluginHandle_t handle,
const char8_t layerName,
const void *  data,
size_t  length 
)

Initializes the custom plugin from serialized bytes.

Parameters
[out]handlePointer to a DNN plugin object
[in]layerNameName of the custom layer
[in]dataSerialized layer data
[in]lengthLength of the serialized data
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_initializeFromWeights()

dwStatus _dwDNNPlugin_initializeFromWeights ( _dwDNNPluginHandle_t handle,
const char8_t layerName,
const dwDNNPluginWeights weights,
int32_t  numWeights 
)

Initializes the custom plugin from weights.

Parameters
[out]handlePointer to a DNN Plugin object
[in]layerNameName of the custom layer
[in]weightsArray of weights structure
[in]numWeightsNumber of weights structure in weights
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_release()

dwStatus _dwDNNPlugin_release ( _dwDNNPluginHandle_t  handle)

Releases the custom plugin.

Parameters
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_serialize()

dwStatus _dwDNNPlugin_serialize ( void *  buffer,
_dwDNNPluginHandle_t  handle 
)

Serializes the layer.

Parameters
[out]bufferBuffer to store the layer to
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE

◆ _dwDNNPlugin_supportsFormat()

dwStatus _dwDNNPlugin_supportsFormat ( bool *  res,
dwPrecision  precision,
dwDNNPluginLayout  pluginLayout,
_dwDNNPluginHandle_t  handle 
)

Returns a flag indicating whether the given format is supported.

Parameters
[out]resFlag indicating whether the given format is supported
[in]precisionPrecision
[in]pluginLayoutLayout
[in]handlePointer to a DNN plugin object
Returns
DW_SUCCESS, DW_FAILURE