Profiler

class tensorrt.IProfiler(self: tensorrt.tensorrt.IProfiler) → None

Abstract base Profiler class.

To implement a custom profiler, ensure that you explicitly instantiate the base class in __init__() :

class MyProfiler(trt.IProfiler):
    def __init__(self):
        trt.IProfiler.__init__(self)

    def report_layer_time(self, layer_name, ms):
        ... # Your implementation here

When this class is added to an IExecutionContext, the profiler will be called once per layer for each invocation of IExecutionContext.execute() . Note that IExecutionContext.execute_async() does not currently support profiling.

The profiler will only be called after execution is complete. It has a small impact on execution time.

report_layer_time(self: tensorrt.tensorrt.IProfiler, layer_name: str, ms: float) → None

Reports time in milliseconds for each layer. This function must be overriden a derived class.

Parameters
  • layer_name – The name of the layer, set when constructing the INetworkDefinition .

  • ms – The time in milliseconds to execute the layer.

class tensorrt.Profiler(self: tensorrt.tensorrt.Profiler) → None

When this class is added to an IExecutionContext, the profiler will be called once per layer for each invocation of IExecutionContext.execute() . Note that IExecutionContext.execute_async() does not currently support profiling.

The profiler will only be called after execution is complete. It has a small impact on execution time.

report_layer_time(self: tensorrt.tensorrt.Profiler, layer_name: str, ms: float) → None

Prints time in milliseconds for each layer to stdout.

Parameters
  • layer_name – The name of the layer, set when constructing the INetworkDefinition .

  • ms – The time in milliseconds to execute the layer.