Jetson 怎么运行 DeepSeek?编译 llama.cpp 启用 CUDA,并用日志确认 GPU 加速

在Jetson Orin上启用llama.cpp CUDA后端,通过卸载日志、tegrastats和CPU/GPU对照基准确认加速。

Jetson 运行 DeepSeek 的关键不是“能否启动”,而是 llama.cpp 是否真的编译了 CUDA 后端、模型是否有层被卸载到 GPU,以及负载时 GPU 是否活动。下面以安装了匹配 JetPack 的 Jetson Orin 和小型 DeepSeek 蒸馏 GGUF 为例。不同 Jetson 型号的内存、计算能力和 JetPack 支持差异很大,本文没有在你的板卡上测得速度,不提供未经实测的 tokens/s 数字。

第一步:确认 JetPack 与资源

cat /etc/nv_tegra_release
nvcc --version
free -h
df -h
tegrastats

应能读到 Jetson 系统版本,nvcc 可用,且 tegrastats 能持续输出 CPU、GPU、内存和温度状态。如果 nvcc 不存在,不要先改 llama.cpp;按 NVIDIA 的 JetPack 安装说明补齐与当前系统匹配的开发组件。旧款 Jetson、第三方系统镜像或不匹配的 CUDA 组件需要单独核对兼容矩阵。

Jetson 怎么运行 DeepSeek?编译 llama.cpp 启用 CUDA,并用日志确认 GPU 加速

第二步:启用 CUDA 编译

sudo apt update
sudo apt install -y git cmake build-essential libcurl4-openssl-dev
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON
cmake --build build --config Release -j 4

若 CMake 报找不到 CUDA,优先检查 nvcc --version、CUDA 路径和 JetPack 安装状态。不要通过随意软链接不同版本的 CUDA 目录来掩盖错误。

第三步:先做 CPU 基线,再启用 GPU

把已核实来源的 DeepSeek-R1-Distill-Qwen 1.5B 或 7B 量化 GGUF 放在 ~/models。首次用小模型,避免把“模型根本装不下”和“CUDA 没启用”混成一个问题。

# CPU 基线
./build/bin/llama-bench -m ~/models/deepseek.gguf -ngl 0 -p 128 -n 128

# 尝试将尽可能多的层卸载到 GPU
./build/bin/llama-bench -m ~/models/deepseek.gguf -ngl 99 -p 128 -n 128

pp 代表提示处理,tg 代表逐 token 生成。保存两次完整输出、模型哈希、功耗模式和温度,才有可比较的本机结果。不要拿别人不同板卡、不同量化或不同上下文的数字直接套用。

第四步:用三项证据确认 GPU 加速

  1. 启动日志显示 CUDA 后端已载入,并出现层卸载或 GPU buffer 信息。
  2. 另一个终端的 tegrastats 在推理时显示 GPU 活动和内存变化。
  3. 同一模型、提示长度和生成长度下,-ngl 99 与 -ngl 0 的基准有可重复差异。

只有 GPU 占用变化还不够:模型加载、桌面界面或其他进程也可能使用 GPU。日志、活动状态和对照基准要同时成立。

启动本地 API 并验收

./build/bin/llama-server \
  -m ~/models/deepseek.gguf \
  -ngl 99 -c 4096 \
  --host 127.0.0.1 --port 8080
curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"用一句话解释边缘推理。"}],"temperature":0,"max_tokens":64}'

接口返回非空回答后,再逐步增加上下文或并发。若启动时报显存或统一内存不足,先降低 -ngl,让部分层回到 CPU;若温度或功耗限制触发,先处理电源、散热和 Jetson 功耗模式。

常见失败边界

  • 编译成功但日志没有 CUDA:可能用了旧 build 缓存。删除本项目的 build 目录后,用 -DGGML_CUDA=ON 重新配置。
  • -ngl 99 立刻内存不足:换更小模型或更低量化,或降低卸载层数。
  • GPU 活动但速度不稳定:固定模型、提示、线程、功耗模式和散热状态后再测。
  • 想调用 Jetson NPU:Jetson 的 CUDA GPU 路径与其他厂商 NPU 运行时不是一回事,不能把 GGML_CUDA 当成通用 NPU 开关。

资料来源

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32117.html

赞 (0)
AI小管家的头像AI小管家
ChatGPT 怎么做私域运营?设计欢迎语、分层跟进和转人工规则
上一篇 1小时前
Tesla M60 跑 DeepSeek 怎么选模型?双 GPU 分开看显存与负载
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部