DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

DNNPlugin.h File Reference

Detailed Description

NVIDIA DriveWorks: DNN Plugin Interface

Description: This file defines the DNN custom layer plugin interface layer.

Definition in file DNNPlugin.h.

Go to the source code of this file.

Data Structures

struct  dwDNNPluginField
 DNN plugin field. More...
 
struct  dwDNNPluginFieldCollection
 DNN plugin field colleciton. More...
 
struct  dwDNNPluginTensorDesc
 DNN Plugin tensor descriptor. More...
 
struct  dwDNNPluginWeights
 Stores DNN weights. More...
 

Typedefs

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

Enumerations

enum  dwDNNPluginFieldType {
  DW_DNN_PLUGIN_FIELD_TYPE_FLOAT16 = 0,
  DW_DNN_PLUGIN_FIELD_TYPE_FLOAT32 = 1,
  DW_DNN_PLUGIN_FIELD_TYPE_FLOAT64 = 2,
  DW_DNN_PLUGIN_FIELD_TYPE_INT8 = 3,
  DW_DNN_PLUGIN_FIELD_TYPE_INT16 = 4,
  DW_DNN_PLUGIN_FIELD_TYPE_INT32 = 5,
  DW_DNN_PLUGIN_FIELD_TYPE_CHAR = 6,
  DW_DNN_PLUGIN_FIELD_TYPE_DIMS = 7,
  DW_DNN_PLUGIN_FIELD_TYPE_UNKNOWN = 8
}
 Plugin field type. More...
 
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,
  DW_DNN_PLUGIN_LAYOUT_DHWC8 = 6,
  DW_DNN_PLUGIN_LAYOUT_CDHW32 = 7,
  DW_DNN_PLUGIN_LAYOUT_HWC = 8,
  DW_DNN_PLUGIN_LAYOUT_DLA_LINEAR = 9,
  DW_DNN_PLUGIN_LAYOUT_DLA_HWC4 = 10
}
 Represents different layouts for plugins. More...
 

Functions

dwStatus _dwDNNPlugin_canBroadcastInputAcrossBatch (bool *canBroadcastInputAcrossBatch, int32_t inputIndex, _dwConstDNNPluginHandle_t handle)
 Returns whether plugin can use input that is broadcast across batch without replication. More...
 
dwStatus _dwDNNPlugin_clone (_dwDNNPluginHandle_t *out, _dwDNNPluginHandle_t handle)
 Clones the plugin. More...
 
dwStatus _dwDNNPlugin_configurePlugin (const dwDNNPluginTensorDesc *inputDescs, int32_t numInputs, const dwDNNPluginTensorDesc *outputDescs, int32_t numOutputs, _dwDNNPluginHandle_t handle)
 Configures the plugin with given format. More...
 
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_create (_dwDNNPluginHandle_t *handle)
 Creates a custom plugin. More...
 
dwStatus _dwDNNPlugin_deserializeFromBuffer (const char8_t *name, const void *buffer, size_t len, _dwDNNPluginHandle_t handle)
 Deserializes plugin from buffer. More...
 
dwStatus _dwDNNPlugin_deserializeFromFieldCollection (const char8_t *name, const dwDNNPluginFieldCollection *fieldCollection, _dwDNNPluginHandle_t handle)
 Deserializes plugin from field collection. More...
 
dwStatus _dwDNNPlugin_deserializeFromWeights (const dwDNNPluginWeights *weights, int32_t numWeights, _dwDNNPluginHandle_t handle)
 Deserializes plugin from weights. More...
 
dwStatus _dwDNNPlugin_destroy (_dwDNNPluginHandle_t handle)
 Destroys the plugin. 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_getOutputPrecision (dwPrecision *outputPrecision, int32_t outputIndex, const dwPrecision *inputPrecisions, int32_t numInputs, _dwConstDNNPluginHandle_t handle)
 Returns output precision at given index given the input precisions. More...
 
dwStatus _dwDNNPlugin_getPluginFieldCollection (dwDNNPluginFieldCollection *fieldCollection, _dwDNNPluginHandle_t handle)
 Returns a list of fields that needs to be passed to plugin at creation. More...
 
dwStatus _dwDNNPlugin_getPluginNamespace (const char8_t **pluginNamespace, _dwConstDNNPluginHandle_t handle)
 Returns plugin namespace. More...
 
dwStatus _dwDNNPlugin_getPluginType (const char8_t **pluginType, _dwConstDNNPluginHandle_t handle)
 Returns the plugin type as string. More...
 
dwStatus _dwDNNPlugin_getPluginVersion (const char8_t **pluginVersion, _dwConstDNNPluginHandle_t handle)
 Returns plugin version as string. 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_isOutputBroadcastAcrossBatch (bool *isOutputBroadcastAcrossBatch, int32_t outputIndex, const bool *inputIsBroadcasted, int32_t numInputs, _dwConstDNNPluginHandle_t handle)
 Returns whether output is broadcast across batch. More...
 
dwStatus _dwDNNPlugin_release (_dwDNNPluginHandle_t handle)
 Releases the custom plugin. More...
 
dwStatus _dwDNNPlugin_serialize (void *buffer, _dwDNNPluginHandle_t handle)
 Serializes the plugin to buffer. More...
 
dwStatus _dwDNNPlugin_setPluginNamespace (const char8_t *pluginNamespace, _dwDNNPluginHandle_t handle)
 Sets plugin namespace. More...
 
dwStatus _dwDNNPlugin_setup (_dwDNNPluginHandle_t handle)
 Initializes the created plugin. More...
 
dwStatus _dwDNNPlugin_supportsFormat (bool *res, dwPrecision precision, dwDNNPluginLayout pluginLayout, _dwDNNPluginHandle_t handle)
 Returns a flag indicating whether the given format is supported. More...
 
dwStatus _dwDNNPlugin_supportsFormatCombination (bool *res, int32_t index, const dwDNNPluginTensorDesc *inOut, int32_t numInputs, int32_t numOutputs, _dwConstDNNPluginHandle_t handle)
 Returns a flag indicating whether the given format is supported. More...
 
dwStatus _dwDNNPlugin_terminate (_dwDNNPluginHandle_t handle)
 Terminates the plugin. More...