Skip to content

TensorRT trtexec Layerwise Compute Precision, Sparsity, Tensor DataType and Layout Information #4020

@leimao

Description

@leimao

Description

Previously, I remember I can use --exportLayerInfo to dump the comprehensive layerwise info of the engine, including the precision of the layer, and the IO tensor datatype and layouts.

However, for the trtexec from the most recent releases, it seems that these useful information is gone. If this behavior is intended, how do I save the detailed layerwise info, including sparsity, using trtexec?

Environment

NGC Docker container nvcr.io/nvidia/tensorrt:24.06-py3.

Steps To Reproduce

$ docker run -it --rm --gpus all -v $(pwd):/mnt nvcr.io/nvidia/tensorrt:24.06-py3
$ cd /mnt
$ wget https://github.com/onnx/models/raw/main/validated/vision/classification/resnet/model/resnet18-v1-7.onnx
$ trtexec --onnx=resnet18-v1-7.onnx --fp16 --int8 --saveEngine=resnet18-v1-7.engine --exportProfile=resnet18-v1-7.txt --exportLayerInfo=resnet18-v1-7.json
$ cat resnet18-v1-7.json 
{"Layers": ["Reformatting CopyNode for Input Tensor 0 to resnetv15_conv0_fwd + resnetv15_batchnorm0_fwd + resnetv15_relu0_fwd + resnetv15_pool0_fwd"
,"resnetv15_conv0_fwd + resnetv15_batchnorm0_fwd + resnetv15_relu0_fwd + resnetv15_pool0_fwd"
,"resnetv15_stage1_conv0_fwd + resnetv15_stage1_batchnorm0_fwd + resnetv15_stage1_relu0_fwd"
,"resnetv15_stage1_conv1_fwd + resnetv15_stage1_batchnorm1_fwd + resnetv15_stage1__plus0 + resnetv15_stage1_activation0"
,"resnetv15_stage1_conv2_fwd + resnetv15_stage1_batchnorm2_fwd + resnetv15_stage1_relu1_fwd"
,"resnetv15_stage1_conv3_fwd + resnetv15_stage1_batchnorm3_fwd + resnetv15_stage1__plus1 + resnetv15_stage1_activation1"
,"resnetv15_stage2_conv0_fwd + resnetv15_stage2_batchnorm0_fwd + resnetv15_stage2_relu0_fwd"
,"resnetv15_stage2_conv1_fwd + resnetv15_stage2_batchnorm1_fwd"
,"resnetv15_stage2_conv2_fwd + resnetv15_stage2_batchnorm2_fwd + resnetv15_stage2__plus0 + resnetv15_stage2_activation0"
,"resnetv15_stage2_conv3_fwd + resnetv15_stage2_batchnorm3_fwd + resnetv15_stage2_relu1_fwd"
,"resnetv15_stage2_conv4_fwd + resnetv15_stage2_batchnorm4_fwd + resnetv15_stage2__plus1 + resnetv15_stage2_activation1"
,"resnetv15_stage3_conv0_fwd + resnetv15_stage3_batchnorm0_fwd + resnetv15_stage3_relu0_fwd"
,"resnetv15_stage3_conv1_fwd + resnetv15_stage3_batchnorm1_fwd"
,"resnetv15_stage3_conv2_fwd + resnetv15_stage3_batchnorm2_fwd + resnetv15_stage3__plus0 + resnetv15_stage3_activation0"
,"resnetv15_stage3_conv3_fwd + resnetv15_stage3_batchnorm3_fwd + resnetv15_stage3_relu1_fwd"
,"resnetv15_stage3_conv4_fwd + resnetv15_stage3_batchnorm4_fwd + resnetv15_stage3__plus1 + resnetv15_stage3_activation1"
,"resnetv15_stage4_conv0_fwd + resnetv15_stage4_batchnorm0_fwd + resnetv15_stage4_relu0_fwd"
,"resnetv15_stage4_conv1_fwd + resnetv15_stage4_batchnorm1_fwd"
,"resnetv15_stage4_conv2_fwd + resnetv15_stage4_batchnorm2_fwd + resnetv15_stage4__plus0 + resnetv15_stage4_activation0"
,"resnetv15_stage4_conv3_fwd + resnetv15_stage4_batchnorm3_fwd + resnetv15_stage4_relu1_fwd"
,"resnetv15_stage4_conv4_fwd + resnetv15_stage4_batchnorm4_fwd + resnetv15_stage4__plus1 + resnetv15_stage4_activation1"
,"resnetv15_pool1_fwd"
,"Reformatting CopyNode for Input Tensor 0 to resnetv15_dense0_fwd + (Unnamed Layer* 78) [ElementWise]"
,"resnetv15_dense0_fwd + (Unnamed Layer* 78) [ElementWise]"
,"reshape_after_resnetv15_dense0_fwd"
],
"Bindings": ["data"
,"resnetv15_dense0_fwd"
]}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions