I’m having several issues converting a pre-trained NVIDIA TAO .etlt
model (Nvidia EmotionNet) to a TensorRT .engine
optimized for Jetson Orin Nano Super (TensorRT 10.3, CUDA 12.6, cuDNN 9.x) **without dependency on TAO containers bound to TensorRT 8.x., specifically Nvidia’s EmotionNet model (EmotionNet | NVIDIA NGC).
Platform and Environment
a. Hardware
- Local Laptop: Windows 11 Pro + NVIDIA RTX 2000 Ada (8GB VRAM)
- Jetson Orin Nano Super (target deployment, with JetPack 6.0)
b. Software - W11
- Host: Windows 11 Pro (22H2), WSL2 (Ubuntu 22.04.5 LTS, Kernel 5.10.16)
- Docker: Multiple attempts to install and run Docker both natively in WSL2 and via Docker Desktop (failed due to access restrictions, service failures, iptables issues, and incompatibility with systemd)
- CUDA: CUDA 12.6 (and also legacy 11.5 present)
- cuDNN: 9.3.0.75 (JetPack 6, for Orin compatibility)
- TensorRT: 10.3.0.30 (manually installed via pip and local debs/wheels; verified working)
- TAO Toolkit: Tried via NGC containers (
nvcr.io/nvidia/tao/tao-toolkit:5.5.0-deploy
), but these are bundled with TensorRT 8.x. - TAO CLI and Converter: Attempted native and container install; TAO Converter for TensorRT 10 does not exist as a standalone binary or pip package as of July 2025.
c. Software - Jetson Orin Nano Super
- Platform: aarch64
- OS: Ubuntu 22.04 Jammy Jellysifh
- Release: 5.15.148-tegra
- Python version: 3.10.12
- CUDA: 12.6.68
- CUDA: Arch BIN 8.7
- L4T: 36.4.4
- cuDNN: 9.3.0.30
- VPI: 3.2.4
- Vulkan: 1.3.204
- TensorRT: 10.3.0.30
- deepstream-app: version 7.1.0
- DeepStreamSDK: 7.1.0
- CUDA Driver Version: 12.6
- CUDA Runtime Version: 12.6
Main Steps and Issues
a. Docker Environment
- Docker on Windows/WSL2 was unstable due to service issues, lack of systemd, and persistent iptables/nat errors (
failed to register "bridge" driver
). - Docker Desktop was unusable (Backend API/Access Denied errors).
- Running Docker directly in WSL2 partially succeeded for some containers but always failed for TAO deployment containers (missing runtime, wrong TensorRT version).
b. TAO Deploy Container
- Pulled and ran
nvcr.io/nvidia/tao/tao-toolkit:5.5.0-deploy
. - The container only supports TensorRT 8.5 (not compatible with JetPack 6 or Orin Nano’s TensorRT 10.3).
- Conversion commands like
classification_tf1 gen_trt_engine ...
ran but generated errors:Invalid nonce size (0) for CTR
(when experiment spec not set/empty)Message type "Experiment" has no field named "model"
(experiment spec incompatibility)- Workaround: left experiment spec file empty to proceed
c. Model and Format Challenges
- EmotionNet
.etlt
is a protected/serialized format. - No direct support in TAO 5.5/5.2 containers for export to engine targeting TensorRT 10.x
tao-converter
as a Python or binary package for TensorRT 10.x does NOT exist as of this writing.
d. Manual TensorRT 10 Conversion
- Installed latest
tensorrt
,tensorrt-cu12
,tensorrt-cu12-bindings
, andtensorrt-cu12-libs
via pip (from NGC and PyPI) in WSL2. - Could import TensorRT 10.3 Python API and run code, but:
- Cannot convert
.etlt
to.engine
without the official TAO Converter or access to decrypted ONNX/UFF. - No official workflow exists to export TAO-protected
.etlt
models to engine using native Python and TensorRT 10.x bindings.
- Cannot convert
e. Attempts with ONNX
- Investigated if
.etlt
could be extracted to ONNX and converted natively with TensorRT 10, but.etlt
is encrypted and TAO-specific.
Findings and Outstanding Gaps
- TAO Deploy containers do not support TensorRT 10.x, only 8.x.
- There is NO TAO Converter for TensorRT 10.x (neither as pip nor as NGC binary release).
- Engines generated with TensorRT 8.x are NOT compatible/portable to JetPack 6 (Orin) with TensorRT 10.x.
- Installing TAO Python packages natively does not provide a
.etlt
→.engine
export path, as the converter backend is missing. - Attempted to convert in both Docker and native (WSL2) with the same limitations.
- All official documentation and NGC model cards confirm only TensorRT 8.x support for export as of July 2025.
- Current workflow is a dead-end for Jetson Orin + TensorRT 10.x if the original .etlt/.onnx cannot be converted on the device.
- I can’t downgrade the version of TensorRT, CUDA, Jetpack, and cuDNN because the rest of the solution is working fine
What am I looking for?
- Provide a TAO Converter (standalone or containerized) for TensorRT 10.x and CUDA 12.6+ that can run natively on Orin or compatible x86_64 systems.
- Alternatively, document a method to decrypt
.etlt
and extract.onnx
or direct TensorRT engine export on JetPack 6. - Clarify if future TAO releases will allow engine export for TensorRT 10.x, or if there is an internal workflow for this use case
- Await guidance from NVIDIA for official
.etlt
to.engine
conversion for Jetson Orin Nano (TensorRT 10.x). It’s very urgent, please - Evaluate retraining/exporting models directly on Orin hardware if the toolchain can be made available.
- Track future TAO Toolkit and TensorRT container releases.
I’ve been trying to do this conversion for 3 days, and I really don’t want to waste any more time. If it’s not possible, I’ll have to move on to using TensorFlow or PyTorch models, which I don’t want to do since sometimes compatibility with CUDA isn’t that easy.