摘要

最近从咸鱼上入手了一台英伟达开发版 Jetson Orin Nano Super 8GB,花了2000多RMB 就想测试一下这个板子部署大模型好不好用,我还有一台1080Ti 11G 的老卡,18年7500rmb买的,想测一下做对比实验,看看那个更快。下面是操作步骤和实验数据。

本实验旨在在 NVIDIA Jetson Orin Nano Super 8GB 边缘设备上部署并测试 Qwen2.5-1.5B 大语言模型,通过两种方式(Ollama 和 llama.cpp)和三种量化版本(Q4_K_M、Q5_K_M、Q8_0)的对比测试,系统评估模型性能、功耗、温度等关键指标。实验结果表明,llama.cpp + Q4_K_M 组合达到最佳性能(38.37 tok/s),能效达到 2.29 tok/s/W,相比 x86 平台(GTX 1080 Ti)能效提升 3.4 倍,同时保持 93.6% 的功耗优势。

关键发现

  • 🏆 Q4_K_M 综合最优:38.37 tok/s,2.29 tok/s/W
  • 🚀 llama.cpp 比 Ollama 快 6.7%:38.37 vs 35.98 tok/s
  • Jetson 能效是 x86 的 3.4 倍:2.29 vs 0.67 tok/s/W
  • 🔋 功耗优势明显:16W vs 250W,节能 93.6%

推荐方案:边缘对话场景使用 Q4_K_M,长文本处理使用 Q8_0


1. 引言

1.1 研究背景

随着大语言模型(LLM)在边缘设备上的应用需求增长,在资源受限的边缘设备上高效运行模型成为关键挑战。Jetson Orin Nano Super 作为 NVIDIA 推出的边缘 AI 设备,其 8GB 内存和 70+ TOPS AI 算力为模型部署提供了可能,但也带来了性能优化的挑战。

1.2 研究目标

  1. 性能评估:在 Jetson Orin Nano Super 8GB 上部署 Qwen2.5-1.5B 模型,测试实际推理性能
  2. 方法对比:对比 Ollama 和 llama.cpp 两种部署方式的性能差异
  3. 量化优化:测试三种量化版本(Q4_K_M、Q5_K_M、Q8_0),找出最优方案
  4. 功耗监控:记录峰值功耗、温度、GPU 利用率等关键指标
  5. 平台对比:与 x86 平台(GTX 1080 Ti)进行性能和能效对比

1.3 实验意义

本实验为边缘设备部署大模型提供了详实的性能基线数据和优化指导,对机器人、无人机、工业 AI 等应用场景具有重要参考价值。


2. 实验环境

2.1 硬件配置

设备类型 Jetson Orin Nano Super 8GB
CPU ARM v8.2,6 核心 @ 1344 MHz
GPU NVIDIA Orin (Ampere 架构,8.7 Compute Capability)
内存 8GB LPDDR4 + 8GB Swap
存储1T 1T SSD硬盘 M2接口
TDP 10-15W(MAXN_SUPER 模式)
GPU 算力 70+ TOPS (INT8)
软件版本 JetPack 6.2 (R36.4.3)

2.2 软件环境

组件 版本 说明
CUDA 12.x GPU 计算平台
LLM 框架 Ollama 最新版 方式 A
LLM 框架 llama.cpp c92e806d1 方式 B
监控工具 tegrastats, jtop 系统监控
操作系统 Linux (Ubuntu-based)

2.3 测试模型

模型名称 Qwen2.5-1.5B-Instruct
参数量 1.78 B
量化版本 Q4_K_M, Q5_K_M, Q8_0
文件来源 Hugging Face / ModelScope
许可证 开源许可

3. 实验步骤

3.1 前置准备

步骤 1:启用 MAXN_SUPER 性能模式
# 确认功耗模式
sudo nvpmodel -q
# 应显示 current mode: 2

# 锁定最大频率
sudo jetson_clocks

# 设为开机自启
sudo systemctl enable jetson_clocks.service
步骤 2:扩展 Swap 到 8GB
sudo fallocate -l 8G /var/swapfile
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
echo '/var/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

验证free -h 应显示约 8.0Gi Swap

步骤 3:配置 CUDA 环境
export CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export CUDACXX=$CUDA_HOME/bin/nvcc

验证nvcc --version 应显示 release 12.x

步骤 4:安装监控工具
sudo apt update
sudo apt install -y python3-pip
sudo pip3 install -U jetson-stats --break-system-packages

3.2 方式 A:Ollama 部署测试

步骤 1:安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
步骤 2:验证 GPU 加速

打开两个终端:

终端 1 - 监控 GPU

jtop  # 切到 GPU 页

终端 2 - 运行模型

ollama run qwen2.5:1.5b

验证标准

  • ✅ GPU 利用率 > 50% → GPU 在工作
  • ❌ GPU 利用率 0% → CPU-only 运行,需要修复
步骤 3:数据采集

终端 1 - 启动 tegrastats 监控

tegrastats --interval 1000 > ~/ollama_tegrastats.log &
STATS_PID=$!

终端 2 - 运行性能测试

time ollama run qwen2.5:1.5b "请用中文写一首关于秋天的短诗,不超过50字" --verbose

停止监控

kill $STATS_PID

3.3 方式 B:llama.cpp 编译部署测试

步骤 1:安装编译依赖
sudo apt update
sudo apt install -y build-essential git cmake
步骤 2:克隆并编译 llama.cpp
cd ~
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp

# 关键:必须指定 CUDA 架构
cmake -B build \
  -DGGML_CUDA=ON \
  -DCMAKE_CUDA_ARCHITECTURES="87" \
  -DGGML_NATIVE=ON \
  -DCMAKE_BUILD_TYPE=Release

# 编译(6 核并行)
cmake --build build --config Release -j6

编译时间:40-60 分钟

步骤 3:下载模型
mkdir -p ~/models
cd ~/models

# 下载 Q4_K_M 版
modelscope download --model Qwen/Qwen2.5-1.5B-Instruct-GGUF \
  qwen2.5-1.5b-instruct-q4_k_m.gguf --local_dir ~/models

# 下载 Q5_K_M 版
modelscope download --model Qwen/Qwen2.5-1.5B-Instruct-GGUF \
  qwen2.5-1.5b-instruct-q5_k_m.gguf --local_dir ~/models

# 下载 Q8_0 版
modelscope download --model Qwen/Qwen2.5-1.5B-Instruct-GGUF \
  qwen2.5-1.5b-instruct-q8_0.gguf --local_dir ~/models
步骤 4:快速验证
cd ~/llama.cpp

./build/bin/llama-cli \
  -m ~/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  -p "用一句话介绍你自己" \
  -ngl 99 \
  --show-timings

3.4 标准基准测试

测试方法

使用 llama-bench 进行标准基准测试:

cd ~/llama.cpp

# 标准基准:512 tokens 输入,128 tokens 输出,重复 5 次
./build/bin/llama-bench \
  -m ~/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  -p 512 \
  -n 128 \
  -ngl 99 \
  -r 5

# 对比三种量化
for q in q4_k_m q5_k_m q8_0; do
  echo "=== $q ==="
  ./build/bin/llama-bench \
    -m ~/models/qwen2.5-1.5b-instruct-${q}.gguf \
    -p 512 -n 128 -ngl 99 -r 3
done
功耗监控
# 终端 1:启动 tegrastats(500ms 采样)
tegrastats --interval 500 > ~/llama_bench_tegrastats.log &
STATS_PID=$!

# 终端 2:运行基准测试
cd ~/llama.cpp
./build/bin/llama-bench \
  -m ~/models/qwen2.5-1.5b-instruct-q4_k_m.gguf \
  -p 512 -n 128 -ngl 99 -r 5

# 停止监控
kill $STATS_PID

4. 实验数据

4.1 方式 A:Ollama 测试结果

x86 平台(GTX 1080 Ti 11GB)
测试指标 实测值
总时长 1.668s
加载时长 1.360s
Prefill 速率 1865.11 tok/s
生成速率(tg) 167.87 tok/s
峰值功耗 250 W
能效 0.67 tok/s/W

模型输出

金黄叶舞秋风起,
丰收季节笑语熙。
寒露滴落添凉意,
一轮明月挂天西。
Jetson Orin Nano Super 8GB
测试指标 实测值
总时长 4.032s
加载时长 3.101s
Prefill 速率 674.26 tok/s
生成速率(tg) 35.98 tok/s
峰值功耗 15 W
能效 2.40 tok/s/W

模型输出

秋风轻拂黄叶落,
稻香四溢丰收乐。
山河换妆金满地,
岁月静好秋意浓。

4.2 方式 B:llama.cpp 测试结果

三种量化版本基准测试
量化版本 文件大小 pp512 tok/s tg128 tok/s 峰值功耗 峰值温度 能效
Q4_K_M 1.04 GB 1587.72 ± 24.50 38.37 ± 0.03 16.76 W 54.8°C 2.29 tok/s/W
Q5_K_M 1.19 GB 1555.54 ± 18.22 30.43 ± 0.02 15.56 W 54.2°C 1.96 tok/s/W
Q8_0 1.76 GB 1768.68 ± 23.15 30.22 ± 0.01 16.83 W 55.5°C 1.80 tok/s/W

关键发现

  • 🏆 Q4_K_M 生成速率最快:38.37 tok/s
  • 🚀 Q8_0 Prefill 最快:1768.68 tok/s
  • ⚠️ Q5_K_M 性能意外下降:比 Q4_K_M 慢 20.7%

5. 数据对比分析

5.1 部署方式对比(Jetson 同设备)

指标 Ollama llama.cpp 性能提升
生成速率 35.98 tok/s 38.37 tok/s +6.7%
Prefill 速率 674.26 tok/s 1587.72 tok/s +135.6%

结论:llama.cpp 在生成速率和 Prefill 速率上都显著优于 Ollama,推荐使用。


5.2 量化版本全面对比

性能对比
指标 Q4_K_M Q5_K_M Q8_0 最优
文件大小 1.04 GB 1.19 GB (+14.4%) 1.76 GB (+69%) Q4_K_M 🏆
tg128 速率 38.37 tok/s 30.43 tok/s (-20.7%) 30.22 tok/s (-21.2%) Q4_K_M 🏆
pp512 速率 1587.72 tok/s 1555.54 tok/s (-2.0%) 1768.68 tok/s (+11.4%) Q8_0 🚀
功耗对比
指标 Q4_K_M Q5_K_M Q8_0
空载功耗 6.42 W 6.38 W 6.42 W
峰值功耗 16.76 W 15.56 W 16.83 W
推理增量 +10.34 W +9.18 W +10.41 W
性价比 2.29 tok/s/W 1.96 tok/s/W 1.80 tok/s/W

结论:Q5_K_M 功耗最低但性能也最差,性价比最低。

温度对比
指标 Q4_K_M Q5_K_M Q8_0
空载温度 48.3°C 47.8°C 48.8°C
峰值温度 54.8°C 54.2°C 55.5°C
温升幅度 +6.5°C +6.4°C +6.7°C

结论:所有版本温度控制良好,安全裕度 > 29°C。


5.3 平台对比(x86 vs Jetson)

性能对比
平台 GPU 生成速率 Prefill 速率 功耗 能效
x86 GTX 1080 Ti 167.87 tok/s 1865.11 tok/s 250 W 0.67 tok/s/W
Jetson (Q4_K_M) Orin 8GB 38.37 tok/s 1587.72 tok/s 16.76 W 2.29 tok/s/W

性能差距

  • x86 生成速率快 4.38 倍
  • Jetson Prefill 慢 1.17 倍
  • Jetson 能效高 3.4 倍
成本对比
平台 功耗 日耗电量 月电费 年电费
x86 250 W 6 kWh 180 元 2160 元
Jetson 16 W 0.38 kWh 11.4 元 137 元

年度节省:Jetson 比 x86 节省 2023 元(93.6%)


6. 结果分析

6.1 关键发现

  1. Q4_K_M 综合最优

    • 生成速率:38.37 tok/s(超过流畅对话标准 30 tok/s)
    • 能效:2.29 tok/s/W(三种量化中最高)
    • 内存占用:2800 MB(三种量化中最少)
    • 推荐用于:对话机器人、边缘部署
  2. Q8_0 Prefill 最快

    • Prefill 速率:1768.68 tok/s(比 Q4_K_M 快 11.4%)
    • 精度最高:8-bit 量化
    • 推荐用于:长文本处理、文档总结
  3. Q5_K_M 性能意外下降

    • 生成速率:30.43 tok/s(比 Q4_K_M 慢 20.7%)
    • 文件更大但性能更差,不推荐使用

6.2 内存带宽瓶颈验证

实验数据揭示了 Jetson Orin Nano 的内存带宽瓶颈

现象 数据支持 结论
Q4_K_M 最小模型,tg 最快 1.04GB 模型,38.37 tok/s ✅ 带宽受限,小模型缓存效率高
Q8_0 最大模型,tg 最慢 1.76GB 模型,30.22 tok/s ✅ 带宽受限,大模型内存访问慢
Q8_0 Prefill 最快,tg 最慢 1768.68 tok/s (Prefill) vs 30.22 tok/s (tg) ✅ 计算能力充足,内存带宽是瓶颈

6.3 能效优势验证

Jetson vs x86 能效对比

  • Q4_K_M:2.29 tok/s/W(x86 的 3.4 倍)
  • Q5_K_M:1.96 tok/s/W(x86 的 2.9 倍)
  • Q8_0:1.80 tok/s/W(x86 的 2.7 倍)

结论:Jetson Orin Nano 在能效上显著优于桌面级 GPU,适合长期运行的边缘部署。


7. 结论与建议

7.1 实验结论

  1. Qwen2.5-1.5B 在 Jetson Orin Nano Super 8GB 上流畅可用

    • Q4_K_M 实测 38.37 tok/s,超过 30 tok/s 流畅标准
    • GPU 利用率 98-99%,GPU 加速正常工作
  2. llama.cpp 性能优于 Ollama

    • 生成速率快 6.7%(38.37 vs 35.98 tok/s)
    • Prefill 速率快 135.6%(1587.72 vs 674.26 tok/s)
    • 更透明,可定制性更强
  3. Q4_K_M 是综合最优选择

    • 性能最优(38.37 tok/s)
    • 能效最高(2.29 tok/s/W)
    • 内存占用最少(2800 MB)
  4. Jetson 能效显著优于 x86 平台

    • 能效提升 3.4 倍(2.29 vs 0.67 tok/s/W)
    • 功耗降低 93.6%(16W vs 250W)
    • 年度电费节省 2023 元

7.2 应用建议

场景 1:智能客服/对话机器人

推荐:llama.cpp + Q4_K_M
理由:生成速率 38.37 tok/s,用户体验最佳

场景 2:文档总结/长文本处理

推荐:llama.cpp + Q8_0
理由:Prefill 最快 1768.68 tok/s,处理长文档更高效

场景 3:边缘部署(功耗敏感)

推荐:llama.cpp + Q4_K_M
理由:能效高(2.29 tok/s/W),功耗适中(16.76W)

场景 4:服务器/工作站(固定位置)

推荐:x86 + 高端 GPU
理由:纯性能优先(167.87 tok/s),功耗不敏感

7.3 后续研究方向

  1. TensorRT 优化:使用 TensorRT 进一步优化推理性能
  2. 批处理优化:测试多请求并发场景的性能
  3. INT8/FP16 量化:测试更高精度的量化版本
  4. 多模型部署:测试同时运行多个模型的性能
  5. 长上下文测试:测试 4K/8K/16K 上下文的性能

8. 数据文件说明

8.1 测试脚本

脚本名称 功能说明 使用方法
test_ollama_performance_x86.sh x86 完整测试 ./test_ollama_performance_x86.sh
quick_test_x86.sh x86 快速测试 ./quick_test_x86.sh
test_llamacpp_jetson.sh Jetson llama.cpp 完整测试 ./test_llamacpp_jetson.sh
quick_test_llamacpp_jetson.sh Jetson llama.cpp 快速测试 ./quick_test_llamacpp_jetson.sh

8.2 日志文件

所有实验数据日志保存在 ./logs/ 目录:

日志类型 文件命名格式 包含数据
性能监控 stats_YYYYMMDD_HHMMSS.log tegrastats 监控数据
基准测试 bench_YYYYMMDD_HHMMSS.log llama-bench 输出
快速测试 quick_test_YYYYMMDD_HHMMSS.log 快速测试结果

9. 实验数据记录

9.1 完整性能数据表

测试场景 部署方式 量化版本 平台 tg128 tok/s pp512 tok/s 峰值功耗 峰值温度
对话测试 Ollama - x86 167.87 1865.11 250 W -
对话测试 Ollama - Jetson 35.98 674.26 15 W -
对话测试 llama.cpp Q4_K_M Jetson 38.37 1587.72 16.76 W 54.8°C
对话测试 llama.cpp Q5_K_M Jetson 30.43 1555.54 15.56 W 54.2°C
对话测试 llama.cpp Q8_0 Jetson 30.22 1768.68 16.83 W 55.5°C

9.2 能效对比汇总表

配置 性能 (tok/s) 功耗 (W) 能效 (tok/s/W) 相对优势
x86 (1080 Ti) 167.87 250 0.67 性能最优
Jetson Q4_K_M 38.37 16.76 2.29 能效最优 🏆
Jetson Q5_K_M 30.43 15.56 1.96 功耗最低
Jetson Q8_0 30.22 16.83 1.80 Prefill 最快

10. 附录

10.1 实验环境详细配置

# 系统信息
uname -a
cat /etc/nv_tegra_release
nvpmodel -q
jetson_clocks

# 内存信息
free -h
swapon --show

# GPU 信息
tegrastats --interval 1000

10.2 模型下载方式

# Hugging Face
pip install huggingface_hub
huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct-GGUF \
  qwen2.5-1.5b-instruct-q4_k_m.gguf --local-dir ~/models

# ModelScope(国内镜像)
pip install modelscope
modelscope download --model Qwen/Qwen2.5-1.5B-Instruct-GGUF \
  qwen2.5-1.5b-instruct-q4_k_m.gguf --local_dir ~/models

10.3 常见问题排查

Q1:推理速度慢(< 10 tok/s)

  • 检查编译参数:必须包含 -DCMAKE_CUDA_ARCHITECTURES="87"
  • 检查运行参数:必须包含 -ngl 99
  • 验证 GPU 利用率:运行时监控 GR3D_FREQ 应 > 80%

Q2:模型加载 OOM

  • 确认 Swap 已扩到 8G
  • 关闭其他占用程序
  • 使用更小的量化版本

Q3:tegrastats 需要权限

sudo tegrastats --interval 1000

参考文献

  1. Qwen2.5 技术报告:https://arxiv.org/abs/2309.11630
  2. llama.cpp GitHub:https://github.com/ggml-org/llama.cpp
  3. Jetson Orin Nano 规格:https://developer.nvidia.com/embedded/jetson-orin/
  4. Ollama 官方文档:https://ollama.com/

报告完成日期:2026年7月23日
下次更新:TensorRT 性能对比测试完成后

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐