ORIN NX 16G + ubuntu22.04 环境安装及模型部署

发布时间:2026/7/4 20:09:28
ORIN NX 16G + ubuntu22.04 环境安装及模型部署 一、Orin NX 烧录主机ubuntu20.04通过 sdk manager 烧录 orin nx 开发板下面是辅助刷写的主机版本和支持刷写的Jetpack版本。可见ubuntu20.04支持jetpack6.2.x官网下载主机ubuntu对应的sdk-managerSDK Manager | NVIDIA Developersudo dpkg -i cuda-keyring_1.1-1_all.deb sdkmanager登陆账号选择jetpack版本进行安装和刷写刷写过程中需要设置orin nx 板端账号和密码Storage Device 选 NVME没有就选default,Target Proxy Settings 选 Do not set proxy.刷写完成后显示docker runtime 下载失败但是不影响我们使用orin.二、浏览器、中文设置、conda安装、torch下载、换源2.1 firefox浏览器安装Orin 上 snap2.70容易引发崩溃特别是firefox浏览器会无法打开一直转圈。为了阻止崩溃所以一开始直接对snap降版本并阻止其更新。参考jetson orin nx ubuntu系统更新后firefox 无法启动_orin nx安装firefox-CSDN博客文章浏览阅读678次点赞5次收藏8次。jetson orin nx ubuntu系统更新后firefox 无法启动_orin nx安装firefoxhttps://dongpan90.blog.csdn.net/article/details/150430359?fromshareblogdetailsharetypeblogdetailsharerId150430359sharereferPCsharesourceqq_56719965sharefromfrom_link# 下载指定版本的Snapd snap download snapd --revision24724 # 安装并锁定版本 sudo snap ack snapd_24724.assert sudo snap install snapd_24724.snap sudo snap refresh --hold snapd # 安装 firefox sudo apt-get install firefox2.2 orin 设置中文jetpack 6.2.1 是 ubuntu_22.04cuda_12.6的系统参考为 Ubuntu22.04 系统添加中文输入法_ubuntu22.04中文输入法-CSDN博客文章浏览阅读5.1w次点赞93次收藏299次。本文详细介绍了如何在Ubuntu22.04操作系统中添加中文输入法。首先通过安装Chinese语言包然后在Settings的RegionLanguage选项中管理已安装的语言。接着使用终端命令安装ibus-pinyin输入法引擎并在Keyboard设置中添加Chinese(IntelligentPinyin)输入源。完成后用户可以方便地切换中英文输入法。https://blog.csdn.net/weixin_44916154/article/details/124582379?fromshareblogdetailsharetypeblogdetailsharerId124582379sharereferPCsharesourceqq_56719965sharefromfrom_link注意在 sudo apt-get install ibus-pinyin 之后直接重启就可以使用拼音了。2.3 arm conda 安装在Jetson Orin NX上由于系统是基于aarch64架构的官方Anaconda并不直接支持。因此最佳方案是使用专为ARM架构设计的Miniforge。进入官网进行下载Releases · conda-forge/miniforge · GitHubJetPack6.2自带的python是3.10为了后续使用tensorrt工具链顺利创建的conda环境也需要是3.10.2.4 arm torch 安装NVIDIA官方为不同JetPack版本提供的PyTorch预编译包.whl文件可以下载官网jetpack6.2cuda12.6推荐的torch版本jp6/cu126 index下载 torch-2.11.0 、torchvision-0.26.0 、torchaudio-2.10.02.5 Orin NX ubuntu22.04 换源2.5.1 apt 换源给 Jetson Orin 上的 Ubuntu 22.04 换源核心是将默认源地址替换为国内镜像站。需要注意Jetson 是 ARM 架构必须使用ports.ubuntu.com这个专门为 ARM 设备准备的源不能直接用 x86 。参考Jeston Orin NX Ubuntu22.04 安装ROS2 humble_jetson 22.04 换源-CSDN博客# 备份原始源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 添加中科大镜像 # 使用 sed 命令一键替换针对 Ubuntu 22.04 (Jammy) 系统 sudo sed -i s|http://ports.ubuntu.com/ubuntu-ports/|https://mirrors.ustc.edu.cn/ubuntu-ports/|g /etc/apt/sources.list # 更新源 sudo apt update2.5.2 pip 换源cd ~ mkdir ~/.pip sudo gedit ~/.pip/pip.conf # 写入以下内容 [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host pypi.tuna.tsinghua.edu.cn # 保存退出三、TensorRT环境安装3.1 启用 Orin NX 自身的 tensorrt若自行下载tensorrt工具链TensorRT 10.x Download | NVIDIA Developer参考jetson orin nx找到自带的tensorrt_jetson orin tensorrt-CSDN博客文章浏览阅读1.1k次。分别是/usr/src/tensorrt/bin/trtexec和/usr/src/tensorrt/sample/trtexec。如果这时候进入/usr/src/tensorrt/bin文件夹后使用trtexec命令显示command not found。ok这次我们再输入trtexec --help或转engine文件就可以了。这里你自己的路径是什么就写什么然后保存。我们就手动加上环境变量。_jetson orin tensorrthttps://blog.csdn.net/cyh20182808/article/details/141856325?fromshareblogdetailsharetypeblogdetailsharerId141856325sharereferPCsharesourceqq_56719965sharefromfrom_link查看orin nx 自带的tensorrt# 安装jetpack sudo apt install nvidia-jetpack # 查看 jetpack 版本 dpkg -l | grep tensorrt查找trtexec路径并添加到环境变量中# 查看tenorrt路径 sudo find /usr -name trtexecsudo gedit ~/.bashrc export PATH$PATH:/usr/src/tensorrt/bin export PATH$PATH:/usr/src/tensorrt/samples source ~/.bashrc查看 tensorrt 命令是否存在输出参数行代表命令正常运行trtexec -h3.2 安装 TensorRT OSSTensorRT OSS仓库主要包含以下开源组件官方插件 (Plugins)TensorRT官方实现的一系列预定义操作如CustomSlice,InstanceNormalization等。某些复杂的网络结构必须依赖这些插件才能运行。模型解析器 (Parsers)将其他格式的模型转换为TensorRT引擎的工具主要包括ONNX Parser解析ONNX格式的模型。Caffe Parser解析Caffe格式的模型。示例应用 (Sample Applications)展示如何使用TensorRT C/Python API进行推理的示例代码下载本地 tensorrt 对应版本的 tensorrt osshttps://github.com/NVIDIA/TensorRT安装基础的 cuda torch 环境# 首先创建 conda 环境 conda create --name TensorRTOSS python3.10.12 conda activate TensorRTOSS # 将 Conda lib 路径添加到 LD_LIBRARY_PATH 是解决 C 库版本不匹配问题 echo export LD_LIBRARY_PATH$CONDA_PREFIX/lib:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc # 安装 torch 环境 pip install torch-2.11.0-cp310-cp310-linux_aarch64.whl pip install torchaudio-2.10.0-cp310-cp310-linux_aarch64.whl pip install torchvision-0.26.0-cp310-cp310-linux_aarch64.whl为了利用 trt-engine-explorer 进行模型转换及模型性能可视化需要安装下面两个模型安装 pytorch-quantizationcd TensorRT-10.6.0/tools/pytorch-quantization/ # Install PyTorch and prerequisites pip install -r requirements.txt # jupyter 画图阶段会出现报错 MoudleNotFoundError:NO module named pkg_rescources # 解决方法提前对 setuptools 降级 pip install setuptools59.6.0 # build python setup.py install在进行 python setup.py install 遇到报错缺少cudss依赖ImportError: libcudss.so.0: cannot open shared object file: No such file or directory如果是torch2.5.0则会报错缺少 cusparseLt库ImportError: libcusparseLt.so.0: cannot open shared object file: No such file or directory解决方法Help me with Correct Pytorch and Torchvision versions requirement for Jetpack 6.2.1 orin super - Jetson Orin Nano - NVIDIA Developer Forumsjetpack6.2.1默认不包含cudss和cusparseLt需手动下载cudss:Index of /compute/cudss/redist/libcudss/linux-sbsacusparseLt:Index of /compute/cusparselt/redist/libcusparse_lt/linux-aarch64官方文档cusparseLt:cuSPARSELt: A High-Performance CUDA Library for Sparse Matrix-Matrix Multiplication — NVIDIA cuSPARSELtcudss:NVIDIA cuDSS (Preview): A high-performance CUDA Library for Direct Sparse Solvers — NVIDIA cuDSS# 将下载的文件解压并把头文件和库文件复制到系统的 CUDA 目录中 tar xf ${CUSPARSE_SOLVER_NAME}.tar.xz sudo cp -a ${CUSPARSE_SOLVER_NAME}/include/* /usr/local/cuda/include/ sudo cp -a ${CUSPARSE_SOLVER_NAME}/lib/* /usr/local/cuda/lib64/ # 更新系统库缓存 sudo ldconfig # 验证安装 ls /usr/local/cuda/lib64 | grep cudss # 测试pytorch python3 -c import torch; print(torch.__version__)安装 trt-engine-explorercd TensorRT/tools/experimental/trt-engine-explorer # 以开发模型安装 trex python3 -m pip install -e .[notebook] # 安装 Graphviz sudo apt --yes install graphviz # 以下是针对后续使用jupyterlab 会出现的各种问题的解决方法 # dash 依赖版本不兼容进行版本降级 pip install dash1.21.0 werkzeug2.0.3 dash-bootstrap-components0.13.1 dash_daq0.5.0 dash_colorscales0.0.4 # 检查是否能进入jupyter notebook jupyter labERRORNo matching distribution found for pynvxpynvx官方并未提供适用于 ARM 架构如aarch64的预编译 wheel 文件。pip install pynvx会尝试从 PyPI 下载适合当前平台的版本但对aarch64架构它找不到对应的 wheel因此会失败。源码编译pynvx编译过程会在 Jetson 设备上生成适配aarch64架构的版本。# 下载 pynvx 和 pybind11 git clone https://github.com/helloall1900/pynvx.git cd pynvx git clone https://github.com/pybind/pybind11.git pybind11 # 编译 pip install .再次执行python3 -m pip install -e .[notebook]成功。TensorRT OSS 使用前景提要使用 TensorRT-Edge-LLM 导出的 onnx 模型 进行模型转换如果报错找不到 tensorrt则将系统包路径添加到 Python 路径中。# 找到系统 TensorRT 安装路径 dpkg -L python3-libnvinfer | grep -E dist-packages|site-packages # 临时设置 export PYTHONPATH/usr/lib/python3.10/dist-packages:$PYTHONPATH # 用trtexec 转换 tensorrt-edge-llm 导出的模型会报错 trt 找不到 llm 自定义的插件 # 直接导出后的模型利用 trtexec 量化 python3 /home/pub/TensorRT-release-10.3/tools/experimental/trt-engine-explorer/utils/process_engine.py \ /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/origin_onnx/llm/model.onnx \ /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/llm \ int8 \ previewaliasedPluginIO1003 # 量化后导出trtexex转换 # llm部分 python3 /home/pub/TensorRT-release-10.3/tools/experimental/trt-engine-explorer/utils/process_engine.py \ /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/onnx/llm/model.onnx \ /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/llm \ stronglyTyped \ previewaliasedPluginIO1003 # shapes # visual部分 设置tokens1000 python3 /home/pub/TensorRT-release-10.3/tools/experimental/trt-engine-explorer/utils/process_engine.py \ /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/onnx/visual/model.onnx \ /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/tokens1000/visual \ stronglyTyped \ previewaliasedPluginIO1003 \ shapesinput:1000x1536,rotary_pos_emb:1000x32,cu_seqlens:2,max_seqlen_carrier:1000,fast_pos_embed_idx:4x1000,fast_pos_embed_weight:4x1000 # 动态模型参数设置当input数量过多时不设置Shapes让tretexec自行选择 # 对于Qwen3模型有llm 和 visual 部分 # LLM部分主要动态维度通常只有序列长度sequence_length 一个。 # visual部分除了批次大小batch还可能涉及图像高度H、宽度W 等多个动态维度这增加了自动推导的难度。 # --minShapesinputs_embeds:1x1000x2048 \ # --optShapesinputs_embeds:1x1000x2048 \ # --maxShapesinputs_embeds:1x1000x2048 # 依旧报插件问题 export LD_PRELOAD/home/pub/TensorRT-Edge-LLM/build/libNvInfer_edgellm_plugin.so # 遇到报错[E] Error[4]: IBuilder::buildSerializedNetwork: Error Code 4: Internal Error (Aliased I/O used by plugin n0 but PreviewFeature::kALIASED_PLUGIN_IO_10_03 not enabled.) # 设置 --previewaliasedPluginIO1003 启用 aliasedPluginIO1003 预览功能 # 示例 python3 /home/pub/TensorRT-release-10.3/tools/experimental/trt-engine-explorer/utils/process_engine.py /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/onnx/visual/model.onnx /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/tokens1000/visual stronglyTyped previewaliasedPluginIO1003 shapesinput:1000x1536,rotary_pos_emb:1000x32,cu_seqlens:2,max_seqlen_carrier:1000,fast_pos_embed_idx:4x1000,fast_pos_embed_weight:4x1000 python3 /home/pub/TensorRT-release-10.3/tools/experimental/trt-engine-explorer/utils/process_engine.py /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/onnx/llm/model.onnx /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/tokens1000/llm stronglyTyped previewaliasedPluginIO1003 shapesinputs_embeds:1x1000x2048,rope_rotary_cos_sin:1x1000x128,context_lengths:1,kvcache_start_index:1,last_token_ids:1x1,deepstack_embeds_0:1x1000x2048,deepstack_embeds_1:1x1000x2048,deepstack_embeds_2:1x1000x2048,past_key_values_0:1x2x8x0x128,past_key_values_1:1x2x8x0x128,past_key_values_2:1x2x8x0x128,past_key_values_3:1x2x8x0x128,past_key_values_4:1x2x8x0x128,past_key_values_5:1x2x8x0x128,past_key_values_6:1x2x8x0x128,past_key_values_7:1x2x8x0x128,past_key_values_8:1x2x8x0x128,past_key_values_9:1x2x8x0x128,past_key_values_10:1x2x8x0x128,past_key_values_11:1x2x8x0x128,past_key_values_12:1x2x8x0x128,past_key_values_13:1x2x8x0x128,past_key_values_14:1x2x8x0x128,past_key_values_15:1x2x8x0x128,past_key_values_16:1x2x8x0x128,past_key_values_17:1x2x8x0x128,past_key_values_18:1x2x8x0x128,past_key_values_19:1x2x8x0x128,past_key_values_20:1x2x8x0x128,past_key_values_21:1x2x8x0x128,past_key_values_22:1x2x8x0x128,past_key_values_23:1x2x8x0x128,past_key_values_24:1x2x8x0x128,past_key_values_25:1x2x8x0x128,past_key_values_26:1x2x8x0x128,past_key_values_27:1x2x8x0x128llm的输入很多可以写个python脚本来生成# 生成形状字典 shapes { inputs_embeds: 1x1000x2048, rope_rotary_cos_sin: 1x1000x128, context_lengths: 1, kvcache_start_index: 1, last_token_ids: 1x1, deepstack_embeds_0: 1x1000x2048, deepstack_embeds_1: 1x1000x2048, deepstack_embeds_2: 1x1000x2048, } # 添加 28 个 past_key_values for i in range(28): shapes[fpast_key_values_{i}] 1x2x8x0x128 # 生成 --shapes 参数 shape_str ,.join(f{k}:{v} for k, v in shapes.items()) print(shape_str)ERRORCannot find plugin : AttentionPlugin解决方法export LD_PRELOAD/home/pub/TensorRT-Edge-LLM/build/libNvInfer_edgellm_plugin.so[E] Error[4]: IBuilder::buildSerializedNetwork: Error Code 4: Internal Error (Aliased I/O used by plugin n0 but PreviewFeature::kALIASED_PLUGIN_IO_10_03 not enabled.)解决方法设置 --previewaliasedPluginIO1003 启用 aliasedPluginIO1003 预览功能四、TensorRT-Edge-LLM环境安装简介TensorRT Edge-LLM 是 NVIDIA 在嵌入式平台上为 LLM 和 VLM 提供高性能的 C 推理运行时。定量(INT4、NVFP4、FP8)可减少重量占用,使大型型号在受内存约束的设备上保持实用性。Edge-LLM 支持从 Orin Nano 到 Thor 等整个 Jetson 系列的多种 LLM 和 VLM 系统。参考TensorRT Edge-LLM on Jetson | Jetson AI Lab官网下载https://github.com/NVIDIA/TensorRT-Edge-LLM官方文档Installation — TensorRT Edge-LLM安装TensorRT-Edge-LLMPart 1: Quantization and tensorrt_edgellm (x86 Host with GPU / Edge Device)从PyTorch 2.11版本开始官方已经支持在aarch64架构的 Linux 系统上直接从 PyPI 安装包含 CUDA 支持的 wheel 包了所以直接安装tensorrt-edge-llm-v_0.8.0Verify Your Prerequisites:# Check CUDA installation nvcc --version # Should show CUDA 12.x or 13.x # Check GPU and available memory nvidia-smi # Look for GPU memory (e.g., 24576MiB for 24GB) # Check Python version python3 --version # Should show Python 3.10 or higher下载资源库git clone https://github.com/NVIDIA/TensorRT-Edge-LLM.git cd TensorRT-Edge-LLM # 初始化 --progress 显示实际下载速度和剩余大小 git submodule update --init --recursive --progress安装依赖注意修改 requirements.txt 中 numpy2.2.6pyproject.toml 中 numpy2.2.6torch2.11.0,torchvision0.26.0pip安装的torch2.12,torchvision0.27.0是cuda13编译编译可以成功但是量化阶段会报错cuda内核不匹配conda create --name TensorRTLLM python3.10.12 conda actiavte TensorRTLLM # 安装 适配jetpack6.2.1 cuda12.6的 torch 环境 pip install torch-2.11.0-cp310-cp310-linux_aarch64.whl pip install torchaudio-2.10.0-cp310-cp310-linux_aarch64.whl pip install torchvision-0.26.0-cp310-cp310-linux_aarch64.whl # Required for checkpoint export # requirements.txt 里 numpy2.4.6 改numpy2.2.6 pip3 install -r requirements.txt # Required for quantization, LoRA merge, vocabulary reduction, audio preprocessing, # and tokenizer helpers # 需要修改 pyproject.toml 中的 numpy2.2.6,torch2.11.0,torchvision0.26.0 pip3 install .[tools] # Required only for the experimental high-level Python API and server pip3 install -r requirements-server.txt当 numpy2.4.6 时报错设置环境变量并验证# export EDGE_LLM_PATH/path/to/TensorRT-Edge-LLM # export PYTHONPATH$EDGE_LLM_PATH:$PYTHONPATH export EDGE_LLM_PATH/home/pub/TensorRT-Edge-LLM export PYTHONPATH$EDGE_LLM_PATH:$PYTHONPATH # Verify the recommended quantization, export, LoRA, and vocabulary tools tensorrt-edgellm-quantize --help tensorrt-edgellm-export --help tensorrt-edgellm-merge-lora --help tensorrt-edgellm-reduce-vocab --helpPart 2: C Runtime (Edge Device)jestson 设备与 对应 jetpack版本 的支持精度系统需求当前设备为Jetson Orin JetPack 6.2.1 cuda12.6JetPack 6.2 Orin:mkdir -p build cd build cmake .. \ -DCMAKE_BUILD_TYPERelease \ -DTRT_PACKAGE_DIR/usr \ -DCMAKE_TOOLCHAIN_FILEcmake/aarch64_linux_toolchain.cmake \ -DEMBEDDED_TARGETjetson-orin \ -DCUDA_CTK_VERSION12.6 \ -DENABLE_CUTE_DSLOFF # -DENABLE_CUTE_DSLALL 容易在build时报错CUTE_DSL链接不到cuda动态库Building on x86 GPU Systems (Optional for Developers)如果要在使用 NVIDIA GPU 的 x86 工作站上进行构建和测试(在部署到 Edge 设备之前需要开发),可以改用以下配置:mkdir -p build cd build cmake .. \ -DCMAKE_BUILD_TYPERelease \ -DTRT_PACKAGE_DIR/path/TensorRT-10.x.x \ -DCUDA_CTK_VERSIONYOUR_CUDA_VERSION \ -DENABLE_CUTE_DSLALLBuild Project Verify Build# Build Project make -j$(nproc) # Verify Build # Test C examples ./examples/llm/llm_build --help ./examples/llm/llm_inference --help设置-DENABLE_CUTE_DSLALL后编译会报错没有找到解决方法所以设置为-DENABLE_CUTE_DSLOFFERRORCUTE_DSL库未正确链接CUDA动态库LLM导出模型、量化模型(x86 / Jetson)这里以Qwen3-VL-2B-Instruct模型为例cd .. # 设置环境变量 export WORKSPACE_DIR/home/pub/TensorRT-Edge-LLM export MODEL_NAMEQwen3-VL-2B-Instruct export PYTHONPATH/home/pub/TensorRT-Edge-LLM:$PYTHONPATH # 设置 hugging face 镜像链接 export HF_ENDPOINThttps://hf-mirror.com pip install huggingface-hub1.5.0 # Export FP16 model to ONNX tensorrt-edgellm-export \ Qwen/Qwen3-VL-2B-Instruct \ $MODEL_NAME/onnx # Or quantize an FP16/BF16 model first, then export the quantized checkpoint tensorrt-edgellm-quantize llm \ --model_dir Qwen/Qwen3-VL-2B-Instruct \ --output_dir $MODEL_NAME/quantized \ --quantization int8_sq \ # --lm_head_quantization nvfp4 # --quantization: Backbone orin 只支持int8_q 、int4_awq # --quantization: LM head orin 只支持 int4_awq tensorrt-edgellm-export \ $MODEL_NAME/quantized \ $MODEL_NAME/onnxERROR:pip安装了一个为 CUDA 13 编译的 PyTorch 版本(此时torch为默认的torch2.12,torchvision0.27.0)报错huggingface_hub.errors.HfUriError: Invalid HF URI hf://datasets/cnn_dailymail96df5e686bee6baa90b8bee7c28b81fa3fa6223d/.huggingface.yaml. Repository id must be namespace/name, got cnn_dailymail.解决方法pip install huggingface-hub1.5.0LLM转换模型(Jetson)# 设置环境变量 export WORKSPACE_DIR/home/pub/TensorRT-Edge-LLM export MODEL_NAMEQwen3-VL-2B-Instruct export PYTHONPATH/home/pub/TensorRT-Edge-LLM:$PYTHONPATH # Build language model engine ./build/examples/llm/llm_build \ --onnxDir $WORKSPACE_DIR/$MODEL_NAME/onnx/llm \ --engineDir $WORKSPACE_DIR/$MODEL_NAME/engines/llm \ --maxBatchSize 1 \ --maxInputLen 1024 \ --maxKVCacheCapacity 4096 # Build visual encoder engine ./build/examples/multimodal/visual_build \ --onnxDir $WORKSPACE_DIR/$MODEL_NAME/onnx/visual \ --engineDir $WORKSPACE_DIR/$MODEL_NAME/engines \ --minImageTokens 128 \ --maxImageTokens 512 \ --maxImageTokensPerImage 512转换模型 参数一览--profilingDetailed仅在需要获取更细粒度的性能分析如每个 ONNX op 的耗时时开启不影响功能LLM模型推理(Jetson)创建一个输入文件$WORKSPACE_DIR/input_vlm.json替换图片路径{ batch_size: 1, temperature: 1.0, top_p: 1.0, top_k: 50, max_generate_length: 128, requests: [ { messages: [ { role: system, content: You are a helpful assistant. }, { role: user, content: [ { type: image, image: /path/to/image.jpg }, { type: text, text: Please describe the image. } ] } ] } ] }开始推理./build/examples/llm/llm_inference \ --engineDir $WORKSPACE_DIR/$MODEL_NAME/engines/llm \ --multimodalEngineDir $WORKSPACE_DIR/$MODEL_NAME/engines/visual \ --inputFile $WORKSPACE_DIR/vlm_test/input_vlm.json \ --outputFile $WORKSPACE_DIR/vlm_test/output_vlm.json五、NVIDIA Nsight Systemsnsys需要在sudo权限下才能收集更全面的信息nsys 分析 llm_inference的完整执行过程# 命令一共是两部分、nsys监测 运行你原本的脚本 sudo nsys profile --tracecuda,nvtx,osrt \ --outputllm_inference_profile \ --force-overwritetrue \ ./build/examples/llm/llm_inference \ --engineDir $WORKSPACE_DIR/$MODEL_NAME/engines/llm \ --multimodalEngineDir $WORKSPACE_DIR/$MODEL_NAME/engines/visual \ --inputFile $WORKSPACE_DIR/vlm_test/input_vlm.json \ --outputFile $WORKSPACE_DIR/vlm_test/output_vlm.json # sys 监测部分 sudo nsys profile --tracecuda,nvtx,osrt \ --outputllm_inference_profile \ --force-overwritetrue命令解析--tracecuda,nvtx,osrt追踪 CUDA API、NVTX 标记如果有和操作系统运行时活动。--outputllm_inference_profile指定输出文件的前缀名。--force-overwritetrue若输出文件已存在则直接覆盖。其余部分是 llm_inference 程序及其参数nsys 分析 trtexec 的完整执行过程# 如果是 TensorRT-Edge-LLM 生成的 onnx 模型转的模型 会报 Cannot find plugin 的错误 export LD_PRELOAD/home/pub/TensorRT-Edge-LLM/build/libNvInfer_edgellm_plugin.so # nsys 生成分析数据 sudo nsys profile -o /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/profile \ --capture-rangecudaProfilerApi \ --cuda-graph-tracenode \ trtexec \ --loadEngine/home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/llm/model.onnx.engine \ --warmUp0 \ --duration0 \ --iterations50 # 这样也可以 sudo nsys profile -o /home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/profile \ --capture-rangecudaProfilerApi \ --cuda-graph-tracenode \ trtexec \ --loadEngine/home/pub/TensorRT-Edge-LLM/Qwen3-VL-2B-Instruct/oss_engine/tokens1000/visual/model.onnx.engine \ --warmUp0 \ --duration0 \ --iterations50生成 Nsight System GUI可以直接打开的.nsys-rep数据只生成 .qdstrm 文件而没有自动转为 .nsys-rep通常是因为 nsys 找不到或无法运行它的格式转换工具 QdstrmImporter。 .qdstrm 是一个中间格式的临时文件。nsys profile 正常结束时会调用 QdstrmImporter 将 .qdstrm 转换为最终的 .nsys-rep 报告。如果转换失败就会只剩下 .qdstrm 文件。# QdstrmImporter find / -name QdstrmImporter 2/dev/null # QdstrmImporter 在.qdstrm 文件同目录下生成一个同名的 .nsys-rep 文件 /path/to/QdstrmImporter -i /path/to/your/profile.qdstrm六、ORIN NX 配置交换空间建议配置高质量的 NVMe SSD 作为 Swap 分区以防内存溢出导致进程被杀。orin nx 设备上已经设置了近 8G 的 swap 分区但无法支持大模型。检查当前swap状态swapon --show # 查看激活的swap设备 free -h # 查看内存和swap总大小显示Jetson Orin 当前使用的是ZRAM压缩内存交换而不是磁盘上的交换文件。ZRAM 的原理它从你的物理内存15GB中划出一部分空间经过压缩后当作交换分区使用。由于压缩比通常可达 2~3 倍所以它提供了 7.6GB 的交换空间但实际只占用物理内存约 2~3GB。优势与局限ZRAM 速度极快因为还是在内存里读写但它无法无限扩大因为它本质上是“借用”物理内存。你看到的 Swap 7.6G实际上已经是当前配置的容量上限了。创建磁盘交换文件将文件放在 SSD 或 NVMe 。# 创建8GB大小的交换文件 sudo fallocate -l 16G /swapfile # 设置文件权限仅root可读写保障安全 sudo chmod 600 /swapfile # 格式化为Swap分区 sudo mkswap /swapfile # 立即启用交换空间 sudo swapon /swapfile