在 Jetson AGX Orin 上运行自研 CUDA 大模型推理引擎最近我把自己的 CUDA 大模型推理引擎跑到了 Jetson AGX Orin 上完成了 DeepSeek-R1-Distill-Qwen-7B 的本地推理测试。项目地址https://github.com/luogantt/LLM-inference-engine这个项目不是基于 PyTorch、Transformers、vLLM 或 llama.cpp 的推理后端而是用 C / CUDA 手写推理核心路径。当前主要支持 DeepSeek-R1-Distill-Qwen-7B 的单 batch decode。测试环境硬件Jetson AGX Orin RAM: 64GB GPU: Orin Ampere GPU CUDA arch: sm_87模型DeepSeek-R1-Distill-Qwen-7B 模型目录: /data/project/deepseek-r1-7b推理框架LLM-inference-engine branch: jetson-orin-agxJetson 性能模式设置测试前先把 Jetson AGX Orin 拉到高性能模式sudonvpmodel-m0sudojetson_clockssudotegrastats实测时的频率状态CPU: 2201 MHz EMC: 3199 MHz GPU: 1300 MHz RAM: 9271 / 62842 MB GPU temperature: about 42C说明机器没有热降频内存也足够加载 7B FP16 模型。Python 依赖这个项目只用transformers做 tokenizer不用 PyTorch 加载模型。如果 Jetson 上缺少依赖可以安装python-mpipinstalltransformers tokenizers safetensors jinja2如果遇到权限问题可以加--userpython-mpipinstall--usertransformers tokenizers safetensors jinja2运行时看到下面提示是正常的PyTorch was not found. Models wont be available and only tokenizers, configuration and file/data utilities can be used.因为这里只需要 tokenizer不需要 PyTorch 模型推理。编译Jetson AGX Orin 的 CUDA 架构是sm_87需要重新编译动态库cd/data/project/LLM-inference-enginemake-fMakefile.cuda_lib clean-libmake-fMakefile.cuda_lib libAsm_87不要打开当前代码里的USE_WMMA_LINEAR1。这个 WMMA kernel 只是实验 prototype在 Jetson 上反而会明显变慢。推荐使用普通编译make-fMakefile.cuda_lib libAsm_87执行命令CUDA_VISIBLE_DEVICES0python python_infer.py\--model/data/project/deepseek-r1-7b\--lib./build/libllm_cuda.so\--prompt你好 deepseek 介绍一下黑格尔的思想\--max-new-tokens512\--max-seq800实测结果在 Jetson AGX Orin 高性能模式下DeepSeek-R1-Distill-Qwen-7B FP16 跑通后decode 阶段实测decode step_ms: about 117.9 ms forward_ms: about 117.8 ms decode_tokens_per_s: about 8.6 tok/s日志片段[C][time] decode step_ms117.905, sample_ms0.046753, forward_ms117.841, decode_tokens385, decode_tokens_per_s8.60732 [C][time] decode step_ms117.960, sample_ms0.044001, forward_ms117.901, decode_tokens386, decode_tokens_per_s8.60698 [C][time] decode step_ms117.873, sample_ms0.054176, forward_ms117.803, decode_tokens387, decode_tokens_per_s8.60666也就是说在 Jetson AGX Orin 上这个自研 CUDA 推理引擎当前可以跑到大约DeepSeek-R1-Distill-Qwen-7B FP16: 8.6 tokens/s对比过程测试过程中有几组不同状态状态速度说明WMMA prototypeabout 1.14 tok/s不适合当前 Jetson 单 token GEMV 路径未确认高性能状态的普通路径about 3.03 tok/s可以跑但频率和编译状态不够理想高性能模式 sm_87 普通编译about 8.6 tok/s当前推荐结果最终推荐配置是sudo nvpmodel -m 0 sudo jetson_clocks make -f Makefile.cuda_lib lib Asm_87结论Jetson AGX Orin 可以运行这个自研 CUDA 大模型推理引擎并且可以在 FP16 模式下跑通 DeepSeek-R1-Distill-Qwen-7B。当前速度约为8.6 tok/s 117.8 ms/token这个结果说明 Jetson AGX Orin 可以作为边缘端大模型推理实验平台。不过 7B FP16 对 Orin 来说仍然很重每一步 decode 都需要反复扫描大量权重。如果后续想继续提升速度优先方向不是继续微调 FP16 kernel而是INT4 / INT8 权重量化 GEMV更适合 Orin 的 decode MLP 路径CUDA Graph 降低 launch overhead更小模型例如 1.5B / 3BFP16 路线预计还能小幅优化但如果目标是 15 到 20 tok/s量化基本是必选路线。项目地址https://github.com/luogantt/LLM-inference-engine
在 Jetson AGX Orin 上运行自研 CUDA 大模型推理引擎
在 Jetson AGX Orin 上运行自研 CUDA 大模型推理引擎最近我把自己的 CUDA 大模型推理引擎跑到了 Jetson AGX Orin 上完成了 DeepSeek-R1-Distill-Qwen-7B 的本地推理测试。项目地址https://github.com/luogantt/LLM-inference-engine这个项目不是基于 PyTorch、Transformers、vLLM 或 llama.cpp 的推理后端而是用 C / CUDA 手写推理核心路径。当前主要支持 DeepSeek-R1-Distill-Qwen-7B 的单 batch decode。测试环境硬件Jetson AGX Orin RAM: 64GB GPU: Orin Ampere GPU CUDA arch: sm_87模型DeepSeek-R1-Distill-Qwen-7B 模型目录: /data/project/deepseek-r1-7b推理框架LLM-inference-engine branch: jetson-orin-agxJetson 性能模式设置测试前先把 Jetson AGX Orin 拉到高性能模式sudonvpmodel-m0sudojetson_clockssudotegrastats实测时的频率状态CPU: 2201 MHz EMC: 3199 MHz GPU: 1300 MHz RAM: 9271 / 62842 MB GPU temperature: about 42C说明机器没有热降频内存也足够加载 7B FP16 模型。Python 依赖这个项目只用transformers做 tokenizer不用 PyTorch 加载模型。如果 Jetson 上缺少依赖可以安装python-mpipinstalltransformers tokenizers safetensors jinja2如果遇到权限问题可以加--userpython-mpipinstall--usertransformers tokenizers safetensors jinja2运行时看到下面提示是正常的PyTorch was not found. Models wont be available and only tokenizers, configuration and file/data utilities can be used.因为这里只需要 tokenizer不需要 PyTorch 模型推理。编译Jetson AGX Orin 的 CUDA 架构是sm_87需要重新编译动态库cd/data/project/LLM-inference-enginemake-fMakefile.cuda_lib clean-libmake-fMakefile.cuda_lib libAsm_87不要打开当前代码里的USE_WMMA_LINEAR1。这个 WMMA kernel 只是实验 prototype在 Jetson 上反而会明显变慢。推荐使用普通编译make-fMakefile.cuda_lib libAsm_87执行命令CUDA_VISIBLE_DEVICES0python python_infer.py\--model/data/project/deepseek-r1-7b\--lib./build/libllm_cuda.so\--prompt你好 deepseek 介绍一下黑格尔的思想\--max-new-tokens512\--max-seq800实测结果在 Jetson AGX Orin 高性能模式下DeepSeek-R1-Distill-Qwen-7B FP16 跑通后decode 阶段实测decode step_ms: about 117.9 ms forward_ms: about 117.8 ms decode_tokens_per_s: about 8.6 tok/s日志片段[C][time] decode step_ms117.905, sample_ms0.046753, forward_ms117.841, decode_tokens385, decode_tokens_per_s8.60732 [C][time] decode step_ms117.960, sample_ms0.044001, forward_ms117.901, decode_tokens386, decode_tokens_per_s8.60698 [C][time] decode step_ms117.873, sample_ms0.054176, forward_ms117.803, decode_tokens387, decode_tokens_per_s8.60666也就是说在 Jetson AGX Orin 上这个自研 CUDA 推理引擎当前可以跑到大约DeepSeek-R1-Distill-Qwen-7B FP16: 8.6 tokens/s对比过程测试过程中有几组不同状态状态速度说明WMMA prototypeabout 1.14 tok/s不适合当前 Jetson 单 token GEMV 路径未确认高性能状态的普通路径about 3.03 tok/s可以跑但频率和编译状态不够理想高性能模式 sm_87 普通编译about 8.6 tok/s当前推荐结果最终推荐配置是sudo nvpmodel -m 0 sudo jetson_clocks make -f Makefile.cuda_lib lib Asm_87结论Jetson AGX Orin 可以运行这个自研 CUDA 大模型推理引擎并且可以在 FP16 模式下跑通 DeepSeek-R1-Distill-Qwen-7B。当前速度约为8.6 tok/s 117.8 ms/token这个结果说明 Jetson AGX Orin 可以作为边缘端大模型推理实验平台。不过 7B FP16 对 Orin 来说仍然很重每一步 decode 都需要反复扫描大量权重。如果后续想继续提升速度优先方向不是继续微调 FP16 kernel而是INT4 / INT8 权重量化 GEMV更适合 Orin 的 decode MLP 路径CUDA Graph 降低 launch overhead更小模型例如 1.5B / 3BFP16 路线预计还能小幅优化但如果目标是 15 到 20 tok/s量化基本是必选路线。项目地址https://github.com/luogantt/LLM-inference-engine