TensorRT 10.0.1
|
Updates weights in an engine. More...
#include <NvInferRuntime.h>
Public Member Functions | |
virtual | ~IRefitter () noexcept=default |
bool | setWeights (char const *layerName, WeightsRole role, Weights weights) noexcept |
Specify new weights for a layer of given name. Returns true on success, or false if new weights are rejected. Possible reasons for rejection are: More... | |
bool | refitCudaEngine () noexcept |
Refits associated engine. More... | |
int32_t | getMissing (int32_t size, char const **layerNames, WeightsRole *roles) noexcept |
Get description of missing weights. More... | |
int32_t | getAll (int32_t size, char const **layerNames, WeightsRole *roles) noexcept |
Get description of all weights that could be refit. More... | |
bool | setDynamicRange (char const *tensorName, float min, float max) noexcept |
float | getDynamicRangeMin (char const *tensorName) const noexcept |
Get minimum of dynamic range. More... | |
float | getDynamicRangeMax (char const *tensorName) const noexcept |
Get maximum of dynamic range. More... | |
int32_t | getTensorsWithDynamicRange (int32_t size, char const **tensorNames) const noexcept |
Get names of all tensors that have refittable dynamic ranges. More... | |
void | setErrorRecorder (IErrorRecorder *recorder) noexcept |
Set the ErrorRecorder for this interface. More... | |
IErrorRecorder * | getErrorRecorder () const noexcept |
Get the ErrorRecorder assigned to this interface. More... | |
bool | setNamedWeights (char const *name, Weights weights) noexcept |
Specify new weights of given name. More... | |
int32_t | getMissingWeights (int32_t size, char const **weightsNames) noexcept |
Get names of missing weights. More... | |
int32_t | getAllWeights (int32_t size, char const **weightsNames) noexcept |
Get names of all weights that could be refit. More... | |
ILogger * | getLogger () const noexcept |
get the logger with which the refitter was created More... | |
bool | setMaxThreads (int32_t maxThreads) noexcept |
Set the maximum number of threads. More... | |
int32_t | getMaxThreads () const noexcept |
get the maximum number of threads that can be used by the refitter. More... | |
bool | setNamedWeights (char const *name, Weights weights, TensorLocation location) noexcept |
Specify new weights on a specified device of given name. More... | |
Weights | getNamedWeights (char const *weightsName) const noexcept |
Get weights associated with the given name. More... | |
TensorLocation | getWeightsLocation (char const *weightsName) const noexcept |
Get location for the weights associated with the given name. More... | |
bool | unsetNamedWeights (char const *weightsName) noexcept |
Unset weights associated with the given name. More... | |
void | setWeightsValidation (bool weightsValidation) noexcept |
Set whether to validate weights during refitting. More... | |
bool | getWeightsValidation () const noexcept |
Get whether to validate weights values during refitting. More... | |
bool | refitCudaEngineAsync (cudaStream_t stream) noexcept |
Enqueue weights refitting of the associated engine on the given stream. More... | |
Weights | getWeightsPrototype (char const *weightsName) const noexcept |
Get the Weights prototype associated with the given name. More... | |
Protected Attributes | |
apiv::VRefitter * | mImpl |
Additional Inherited Members | |
![]() | |
INoCopy ()=default | |
virtual | ~INoCopy ()=default |
INoCopy (INoCopy const &other)=delete | |
INoCopy & | operator= (INoCopy const &other)=delete |
INoCopy (INoCopy &&other)=delete | |
INoCopy & | operator= (INoCopy &&other)=delete |
Updates weights in an engine.
|
virtualdefaultnoexcept |
|
inlinenoexcept |
Get description of all weights that could be refit.
size | The number of items that can be safely written to a non-null layerNames or roles. |
layerNames | Where to write the layer names. |
roles | Where to write the weights roles. |
If layerNames!=nullptr, each written pointer points to a string owned by the engine being refit, and becomes invalid when the engine is destroyed.
|
inlinenoexcept |
Get names of all weights that could be refit.
size | The number of weights names that can be safely written to. |
weightsNames | The names of the weights to be updated, or nullptr for unnamed weights. |
If layerNames!=nullptr, each written pointer points to a string owned by the engine being refit, and becomes invalid when the engine is destroyed.
|
inlinenoexcept |
Get maximum of dynamic range.
If the dynamic range was never set, returns the maximum computed during calibration.
|
inlinenoexcept |
Get minimum of dynamic range.
If the dynamic range was never set, returns the minimum computed during calibration.
|
inlinenoexcept |
Get the ErrorRecorder assigned to this interface.
Retrieves the assigned error recorder object for the given class. A nullptr will be returned if an error handler has not been set.
|
inlinenoexcept |
get the logger with which the refitter was created
|
inlinenoexcept |
get the maximum number of threads that can be used by the refitter.
Retrieves the maximum number of threads that can be used by the refitter.
|
inlinenoexcept |
Get description of missing weights.
For example, if some Weights have been set, but the engine was optimized in a way that combines weights, any unsupplied Weights in the combination are considered missing.
size | The number of items that can be safely written to a non-null layerNames or roles. |
layerNames | Where to write the layer names. |
roles | Where to write the weights roles. |
If layerNames!=nullptr, each written pointer points to a string owned by the engine being refit, and becomes invalid when the engine is destroyed.
|
inlinenoexcept |
Get names of missing weights.
For example, if some Weights have been set, but the engine was optimized in a way that combines weights, any unsupplied Weights in the combination are considered missing.
size | The number of weights names that can be safely written to. |
weightsNames | The names of the weights to be updated, or nullptr for unnamed weights. |
If layerNames!=nullptr, each written pointer points to a string owned by the engine being refit, and becomes invalid when the engine is destroyed.
|
inlinenoexcept |
Get weights associated with the given name.
weightsName | The name of the weights to be refitted. |
If the weights were never set, returns null weights and reports an error to the refitter errorRecorder.
|
inlinenoexcept |
Get names of all tensors that have refittable dynamic ranges.
size | The number of items that can be safely written to a non-null tensorNames. |
tensorNames | Where to write the layer names. |
If tensorNames!=nullptr, each written pointer points to a string owned by the engine being refit, and becomes invalid when the engine is destroyed.
|
inlinenoexcept |
Get location for the weights associated with the given name.
weightsName | The name of the weights to be refitted. |
If the weights were never set, returns TensorLocation::kHOST and reports an error to the refitter errorRecorder.
|
inlinenoexcept |
Get the Weights prototype associated with the given name.
weightsName | The name of the weights to be refitted. |
The type and count of weights prototype is the same as weights used for engine building. The values property is nullptr for weights prototypes. The count of the weights prototype is -1 when the name of the weights is nullptr or does not correspond to any refittable weights.
|
inlinenoexcept |
Get whether to validate weights values during refitting.
|
inlinenoexcept |
Refits associated engine.
The behavior is undefined if the engine has pending enqueued work. Provided weights on CPU or GPU can be unset and released, or updated after refitCudaEngine returns.
IExecutionContexts associated with the engine remain valid for use afterwards. There is no need to set the same weights repeatedly for multiple refit calls as the weights memory can be updated directly instead.
|
inlinenoexcept |
Enqueue weights refitting of the associated engine on the given stream.
stream | The stream to enqueue the weights updating task. |
The behavior is undefined if the engine has pending enqueued work on a different stream from the provided one. Provided weights on CPU can be unset and released, or updated after refitCudaEngineAsync returns. Freeing or updating of the provided weights on GPU can be enqueued on the same stream after refitCudaEngineAsync returns.
IExecutionContexts associated with the engine remain valid for use afterwards. There is no need to set the same weights repeatedly for multiple refit calls as the weights memory can be updated directly instead. The weights updating task should use the same stream as the one used for the refit call.
|
inlinenoexcept |
Update dynamic range for a tensor.
tensorName | The name of an ITensor in the network. |
min | The minimum of the dynamic range for the tensor. |
max | The maximum of the dynamic range for the tensor. |
Returns false if there is no Int8 engine tensor derived from a network tensor of that name. If successful, then getMissing may report that some weights need to be supplied.
|
inlinenoexcept |
Set the ErrorRecorder for this interface.
Assigns the ErrorRecorder to this interface. The ErrorRecorder will track all errors during execution. This function will call incRefCount of the registered ErrorRecorder at least once. Setting recorder to nullptr unregisters the recorder with the interface, resulting in a call to decRefCount if a recorder has been registered.
If an error recorder is not set, messages will be sent to the global log stream.
recorder | The error recorder to register with this interface. |
|
inlinenoexcept |
Set the maximum number of threads.
maxThreads | The maximum number of threads that can be used by the refitter. |
The default value is 1 and includes the current thread. A value greater than 1 permits TensorRT to use multi-threaded algorithms. A value less than 1 triggers a kINVALID_ARGUMENT error.
|
inlinenoexcept |
Specify new weights of given name.
name | The name of the weights to be refit. |
weights | The new weights to associate with the name. |
Returns true on success, or false if new weights are rejected. Possible reasons for rejection are:
Modifying the weights before method refitCudaEngine or refitCudaEngineAsync returns will result in undefined behavior.
|
inlinenoexcept |
Specify new weights on a specified device of given name.
name | The name of the weights to be refitted. |
weights | The new weights on the specified device. |
location | The location (host vs. device) of the new weights. |
It is allowed to provide some weights on CPU and others on GPU. Modifying the weights before the method refitCudaEngine() or refitCudaEngineAsync() completes will result in undefined behavior.
|
inlinenoexcept |
Specify new weights for a layer of given name. Returns true on success, or false if new weights are rejected. Possible reasons for rejection are:
Modifying the weights before method refitCudaEngine or refitCudaEngineAsync returns will result in undefined behavior.
|
inlinenoexcept |
Set whether to validate weights during refitting.
weightsValidation | Indicate whether to validate weights during refitting. |
When set to true, TensorRT will validate weights during FP32 to FP16/BF16 weights conversions or sparsifying weights in the refit call. If provided weights are not proper for some weights transformations, TensorRT will issue a warning and continue the transformation for minor issues (such as overflow during narrowing conversion), or issue an error and stop the refitting process for severe issues (such as sparsifying dense weights). By default the flag is true. Set the flag to false for faster refitting performance.
|
inlinenoexcept |
Unset weights associated with the given name.
weightsName | The name of the weights to be refitted. |
Unset weights before releasing them.
|
protected |
Copyright © 2024 NVIDIA Corporation
Privacy Policy |
Manage My Privacy |
Do Not Sell or Share My Data |
Terms of Service |
Accessibility |
Corporate Policies |
Product Security |
Contact