Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>

  • DriveWorks SDK Reference
    5.6.215 Release
    For Test and Development only

    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    DNNPlugin.h
    Go to the documentation of this file.
    1
    2//
    3// Notice
    4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
    5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
    6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
    7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
    8//
    9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
    10// information or for any infringement of patents or other rights of third parties that may
    11// result from its use. No license is granted by implication or otherwise under any patent
    12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
    13// expressly authorized by NVIDIA. Details are subject to change without notice.
    14// This code supersedes and replaces all information previously supplied.
    15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
    16// components in life support devices or systems without express written approval of
    17// NVIDIA CORPORATION & AFFILIATES.
    18//
    19// SPDX-FileCopyrightText: Copyright (c) 2018-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
    20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
    21//
    22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
    23// property and proprietary rights in and to this material, related
    24// documentation and any modifications thereto. Any use, reproduction,
    25// disclosure or distribution of this material and related documentation
    26// without an express license agreement from NVIDIA CORPORATION or
    27// its affiliates is strictly prohibited.
    28//
    30
    38#ifndef DW_DNN_PLUGIN_H_
    39#define DW_DNN_PLUGIN_H_
    40
    49#include <dw/core/base/Types.h>
    50#include <dw/dnn/DNN.h>
    51
    52#ifdef __cplusplus
    53extern "C" {
    54#endif
    55
    59typedef enum dwDNNPluginLayout {
    75
    79typedef struct dwDNNPluginWeights
    80{
    82 const void* values;
    83 int64_t count;
    85
    100
    104typedef struct dwDNNPluginField
    105{
    107 const char8_t* name;
    109 const void* data;
    113 int32_t length;
    115
    120{
    121 int32_t numFields;
    124
    129{
    135
    141typedef void const* _dwConstDNNPluginHandle_t;
    142
    150
    159
    167
    175
    183
    191
    202 int32_t outputIndex, const dwBlobSize* inputDimensions,
    203 int32_t numInputs, _dwDNNPluginHandle_t handle);
    204
    212dwStatus _dwDNNPlugin_getWorkspaceSize(size_t* workspaceSize, int32_t maxBatchSize,
    213 _dwDNNPluginHandle_t handle);
    214
    227 int32_t numInputs, int32_t numOutputs,
    229
    240 const dwDNNPluginTensorDesc* outputDescs, int32_t numOutputs,
    241 _dwDNNPluginHandle_t handle);
    242
    253dwStatus _dwDNNPlugin_enqueue(int32_t batchSize, const void* const* inputs, void** outputs,
    254 void* workspace, cudaStream_t stream, _dwDNNPluginHandle_t handle);
    255
    263
    272
    282dwStatus _dwDNNPlugin_deserializeFromBuffer(const char8_t* name, const void* buffer,
    283 size_t len, _dwDNNPluginHandle_t handle);
    284
    294 const dwDNNPluginFieldCollection* fieldCollection,
    295 _dwDNNPluginHandle_t handle);
    296
    306 _dwDNNPluginHandle_t handle);
    307
    316
    325
    333dwStatus _dwDNNPlugin_setPluginNamespace(const char8_t* pluginNamespace, _dwDNNPluginHandle_t handle);
    334
    343
    355dwStatus _dwDNNPlugin_isOutputBroadcastAcrossBatch(bool* isOutputBroadcastAcrossBatch,
    356 int32_t outputIndex, const bool* inputIsBroadcasted,
    357 int32_t numInputs, _dwConstDNNPluginHandle_t handle);
    358
    368dwStatus _dwDNNPlugin_canBroadcastInputAcrossBatch(bool* canBroadcastInputAcrossBatch, int32_t inputIndex,
    370
    381dwStatus _dwDNNPlugin_getOutputPrecision(dwPrecision* outputPrecision, int32_t outputIndex,
    382 const dwPrecision* inputPrecisions, int32_t numInputs,
    384
    393 _dwDNNPluginHandle_t handle);
    394
    395// -----------------------------------------------------------------------------
    396// Deprecated Functions
    397// -----------------------------------------------------------------------------
    398
    407DW_DEPRECATED("WARNING: will be removed in the next major release")
    409 const dwDNNPluginWeights* weights, int32_t numWeights);
    410
    419DW_DEPRECATED("WARNING: will be removed in the next major release")
    420dwStatus _dwDNNPlugin_initialize(_dwDNNPluginHandle_t* handle, const char8_t* layerName,
    421 const void* data, size_t length);
    422
    428DW_DEPRECATED("WARNING: will be removed in the next major release")
    430
    443DW_DEPRECATED("WARNING: will be removed in the next major release")
    445 int32_t numInputs, const dwBlobSize* outputDimensions,
    446 int32_t numOutputs, dwPrecision precision,
    447 dwDNNPluginLayout layout, int32_t maxBatchSize,
    448 _dwDNNPluginHandle_t handle);
    449
    458DW_DEPRECATED("WARNING: will be removed in the next major release")
    460 dwDNNPluginLayout pluginLayout, _dwDNNPluginHandle_t handle);
    461
    464#ifdef __cplusplus
    465}
    466#endif
    467
    468#endif // DW_DNN_PLUGIN_H_
    NVIDIA DriveWorks API: DNN Methods
    NVIDIA DriveWorks API: Core Types
    #define DW_DEPRECATED(msg)
    Definition: Exports.h:66
    dwStatus
    Status definition.
    Definition: Status.h:170
    float float32_t
    Specifies POD types.
    Definition: Types.h:70
    dwPrecision
    Precision type definitions.
    Definition: Types.h:146
    Holds blob dimensions.
    Definition: Types.h:662
    float32_t scale
    Tensor scale.
    Definition: DNNPlugin.h:133
    int64_t count
    the number of weights in the array
    Definition: DNNPlugin.h:83
    int32_t numFields
    Number of dwDNNPluginField entries.
    Definition: DNNPlugin.h:121
    const void * data
    Plugin field attribute data.
    Definition: DNNPlugin.h:109
    const void * values
    the weight values, in a contiguous array
    Definition: DNNPlugin.h:82
    dwDNNPluginLayout layout
    Tensor layout.
    Definition: DNNPlugin.h:132
    dwPrecision precision
    Tensor precision.
    Definition: DNNPlugin.h:131
    const dwDNNPluginField * fields
    Pointer to dwDNNPluginField entries.
    Definition: DNNPlugin.h:122
    dwBlobSize dims
    Tensor dimensions.
    Definition: DNNPlugin.h:130
    dwPrecision precision
    data type of the weights
    Definition: DNNPlugin.h:81
    int32_t length
    Number of data entries in the plugin attribute.
    Definition: DNNPlugin.h:113
    dwDNNPluginFieldType type
    Plugin fild attribute type.
    Definition: DNNPlugin.h:111
    const char8_t * name
    Plugin field attribute name.
    Definition: DNNPlugin.h:107
    void const * _dwConstDNNPluginHandle_t
    Definition: DNNPlugin.h:141
    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.
    dwDNNPluginFieldType
    Plugin field type.
    Definition: DNNPlugin.h:89
    dwStatus _dwDNNPlugin_create(_dwDNNPluginHandle_t *handle)
    Creates a custom plugin.
    dwStatus _dwDNNPlugin_clone(_dwDNNPluginHandle_t *out, _dwDNNPluginHandle_t handle)
    Clones the plugin.
    dwStatus _dwDNNPlugin_serialize(void *buffer, _dwDNNPluginHandle_t handle)
    Serializes the plugin to buffer.
    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.
    dwStatus _dwDNNPlugin_getPluginNamespace(const char8_t **pluginNamespace, _dwConstDNNPluginHandle_t handle)
    Returns plugin namespace.
    dwStatus _dwDNNPlugin_getWorkspaceSize(size_t *workspaceSize, int32_t maxBatchSize, _dwDNNPluginHandle_t handle)
    Returns workspace size.
    void * _dwDNNPluginHandle_t
    _dwDNNPluginHandle_t can be optionally used for storing and accessing variables among the functions d...
    Definition: DNNPlugin.h:140
    dwStatus _dwDNNPlugin_initialize(_dwDNNPluginHandle_t *handle, const char8_t *layerName, const void *data, size_t length)
    Initializes the custom plugin from serialized bytes.
    dwStatus _dwDNNPlugin_deserializeFromFieldCollection(const char8_t *name, const dwDNNPluginFieldCollection *fieldCollection, _dwDNNPluginHandle_t handle)
    Deserializes plugin from field collection.
    dwStatus _dwDNNPlugin_getPluginVersion(const char8_t **pluginVersion, _dwConstDNNPluginHandle_t handle)
    Returns plugin version as string.
    dwStatus _dwDNNPlugin_getPluginType(const char8_t **pluginType, _dwConstDNNPluginHandle_t handle)
    Returns the plugin type as string.
    dwStatus _dwDNNPlugin_canBroadcastInputAcrossBatch(bool *canBroadcastInputAcrossBatch, int32_t inputIndex, _dwConstDNNPluginHandle_t handle)
    Returns whether plugin can use input that is broadcast across batch without replication.
    dwStatus _dwDNNPlugin_deserializeFromWeights(const dwDNNPluginWeights *weights, int32_t numWeights, _dwDNNPluginHandle_t handle)
    Deserializes plugin from weights.
    dwStatus _dwDNNPlugin_setup(_dwDNNPluginHandle_t handle)
    Initializes the created plugin.
    dwStatus _dwDNNPlugin_configurePlugin(const dwDNNPluginTensorDesc *inputDescs, int32_t numInputs, const dwDNNPluginTensorDesc *outputDescs, int32_t numOutputs, _dwDNNPluginHandle_t handle)
    Configures the plugin with given format.
    dwStatus _dwDNNPlugin_destroy(_dwDNNPluginHandle_t handle)
    Destroys the plugin.
    dwStatus _dwDNNPlugin_isOutputBroadcastAcrossBatch(bool *isOutputBroadcastAcrossBatch, int32_t outputIndex, const bool *inputIsBroadcasted, int32_t numInputs, _dwConstDNNPluginHandle_t handle)
    Returns whether output is broadcast across batch.
    dwStatus _dwDNNPlugin_enqueue(int32_t batchSize, const void *const *inputs, void **outputs, void *workspace, cudaStream_t stream, _dwDNNPluginHandle_t handle)
    Performs forward-pass.
    dwStatus _dwDNNPlugin_initializeFromWeights(_dwDNNPluginHandle_t *handle, const char8_t *layerName, const dwDNNPluginWeights *weights, int32_t numWeights)
    Initializes the custom plugin from weights.
    dwStatus _dwDNNPlugin_getSerializationSize(size_t *serializationSize, _dwDNNPluginHandle_t handle)
    Returns serialization size.
    dwStatus _dwDNNPlugin_setPluginNamespace(const char8_t *pluginNamespace, _dwDNNPluginHandle_t handle)
    Sets plugin namespace.
    dwStatus _dwDNNPlugin_release(_dwDNNPluginHandle_t handle)
    Releases the custom plugin.
    dwStatus _dwDNNPlugin_getNumOutputs(int32_t *numOutputs, _dwDNNPluginHandle_t handle)
    Returns number of outputs.
    dwDNNPluginLayout
    Represents different layouts for plugins.
    Definition: DNNPlugin.h:59
    dwStatus _dwDNNPlugin_supportsFormat(bool *res, dwPrecision precision, dwDNNPluginLayout pluginLayout, _dwDNNPluginHandle_t handle)
    Returns a flag indicating whether the given format is supported.
    dwStatus _dwDNNPlugin_getPluginFieldCollection(dwDNNPluginFieldCollection *fieldCollection, _dwDNNPluginHandle_t handle)
    Returns a list of fields that needs to be passed to plugin at creation.
    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.
    dwStatus _dwDNNPlugin_deserializeFromBuffer(const char8_t *name, const void *buffer, size_t len, _dwDNNPluginHandle_t handle)
    Deserializes plugin from buffer.
    dwStatus _dwDNNPlugin_terminate(_dwDNNPluginHandle_t handle)
    Terminates the plugin.
    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.
    @ DW_DNN_PLUGIN_FIELD_TYPE_FLOAT16
    FP16 field type.
    Definition: DNNPlugin.h:90
    @ DW_DNN_PLUGIN_FIELD_TYPE_FLOAT64
    FP64 field type.
    Definition: DNNPlugin.h:92
    @ DW_DNN_PLUGIN_FIELD_TYPE_CHAR
    char field type.
    Definition: DNNPlugin.h:96
    @ DW_DNN_PLUGIN_FIELD_TYPE_INT8
    INT8 field type.
    Definition: DNNPlugin.h:93
    @ DW_DNN_PLUGIN_FIELD_TYPE_FLOAT32
    FP32 field type.
    Definition: DNNPlugin.h:91
    @ DW_DNN_PLUGIN_FIELD_TYPE_UNKNOWN
    Unknown field type.
    Definition: DNNPlugin.h:98
    @ DW_DNN_PLUGIN_FIELD_TYPE_DIMS
    dwBlobSize field type.
    Definition: DNNPlugin.h:97
    @ DW_DNN_PLUGIN_FIELD_TYPE_INT16
    INT16 field type.
    Definition: DNNPlugin.h:94
    @ DW_DNN_PLUGIN_FIELD_TYPE_INT32
    INT32 field type.
    Definition: DNNPlugin.h:95
    @ DW_DNN_PLUGIN_LAYOUT_DLA_LINEAR
    CHW DLA planar format.
    Definition: DNNPlugin.h:72
    @ DW_DNN_PLUGIN_LAYOUT_NHWC8
    HWC with 8-element packed channels. (C must be a multiple of 8)
    Definition: DNNPlugin.h:64
    @ DW_DNN_PLUGIN_LAYOUT_NCHW
    CHW.
    Definition: DNNPlugin.h:61
    @ DW_DNN_PLUGIN_LAYOUT_CHW4
    CHW with 4-element packed channels.
    Definition: DNNPlugin.h:66
    @ DW_DNN_PLUGIN_LAYOUT_NC2HW2
    CHW with 2-element packed channels.
    Definition: DNNPlugin.h:62
    @ DW_DNN_PLUGIN_LAYOUT_CHW2
    CHW with 2-element packed channels.
    Definition: DNNPlugin.h:63
    @ DW_DNN_PLUGIN_LAYOUT_DLA_HWC4
    HWC DLA image format.
    Definition: DNNPlugin.h:73
    @ DW_DNN_PLUGIN_LAYOUT_CHW32
    CHW with 32-element packed channels.
    Definition: DNNPlugin.h:68
    @ DW_DNN_PLUGIN_LAYOUT_CDHW32
    CDHW with 32-element packed channels.
    Definition: DNNPlugin.h:70
    @ DW_DNN_PLUGIN_LAYOUT_LINEAR
    CHW.
    Definition: DNNPlugin.h:60
    @ DW_DNN_PLUGIN_LAYOUT_HWC8
    HWC with 8-element packed channels. (C must be a multiple of 8)
    Definition: DNNPlugin.h:65
    @ DW_DNN_PLUGIN_LAYOUT_DHWC8
    DHWC with 8-element packed channels. (C must be a multiple of 8)
    Definition: DNNPlugin.h:69
    @ DW_DNN_PLUGIN_LAYOUT_CHW16
    CHW with 16-element packed channels.
    Definition: DNNPlugin.h:67
    @ DW_DNN_PLUGIN_LAYOUT_HWC
    HWC Non-vectorized channel-last format.
    Definition: DNNPlugin.h:71
    DNN plugin field.
    Definition: DNNPlugin.h:105
    DNN plugin field colleciton.
    Definition: DNNPlugin.h:120
    DNN Plugin tensor descriptor.
    Definition: DNNPlugin.h:129
    Stores DNN weights.
    Definition: DNNPlugin.h:80
    人人超碰97caoporen国产