ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

显存占用减少 43.9%:DeepSeek-V3 在 AMD MI250 上跑通 ROCm FP8 推理

显存占用减少 43.9%:DeepSeek-V3 在 AMD MI250 上跑通 ROCm FP8 推理 显存占用减少 43.9%DeepSeek-V3 在 AMD MI250 上跑通 ROCm FP8 推理【免费下载链接】DeepSeek-V3项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V3你在 AMD MI250 配 ROCm 环境部署 DeepSeek-V3完成 FP8 与 BF16 双精度推理对比16B 配置下吞吐量提升83.6%显存占用减少43.9%。锁定场景与约束适用场景在 AMD 数据中心卡上验证 DeepSeek-V3 的 FP8 推理吞吐与显存表现作为部署选型前的基线测试。硬性前提如下项目要求硬件单卡 AMD MI25032GBHBMBF16 对照约需32.8GB接近打满框架ROCm ≥5.7内核与驱动版本匹配系统Linux、Python3.10inference/ 脚本不支持 Mac/Windows权重官方仅发布 FP8 权重BF16 需自行转换跑通核心链路1. 安装 ROCm SDKsudo apt update sudo apt install rocm-hip-sdk rocm-dev执行rocminfo能看到 MI250 设备名与驱动版本即环境就绪。2. 获取仓库git clone https://gitcode.com/GitHub_Trending/de/DeepSeek-V3克隆完成后目录含inference/与figures/。3. 安装依赖cd DeepSeek-V3 pip install -r inference/requirements.txt四个包按固定版本安装完成即通过版本清单依赖版本torch2.4.1ROCm 构建triton3.0.0transformers4.46.3safetensors0.4.54. 转换 FP8 权重先把官方 FP8 权重Hugging Face 上的 DeepSeek-V3-Base放到./fp8_weights再转换出 BF16 对照组python inference/fp8_cast_bf16.py \ --input-fp8-hf-path ./fp8_weights \ --output-bf16-hf-path ./converted_weightsinference/fp8_cast_bf16.py 内部调用 inference/kernel.py 的weight_dequant合并scale_inv反量化进度条走完且无 Warning 即成功。5. 启动推理python inference/generate.py \ --ckpt-path ./fp8_weights \ --config inference/configs/config_16B.json \ --max-new-tokens 200 \ --interactive加载完成后出现提示符输入问题即出文本/exit退出。验证 FP8 推理效果最小复现分别用 FP8 与 BF16 权重跑同一命令序列长度204816B 配置单卡 MI250# FP8原始权重默认推理精度 python inference/generate.py --ckpt-path ./fp8_weights --config inference/configs/config_16B.json --interactive # BF16转换后权重作为对照组 python inference/generate.py --ckpt-path ./converted_weights --config inference/configs/config_16B.json --interactive精度吞吐量(tokens/s)单 token 延迟(ms)显存占用(GB)BF1642.648.332.8FP878.225.818.4FP8 吞吐量提升 83.6%、显存减少 43.9%说明 MI250 的 CDNA3 架构对 FP8 矩阵运算有原生硬件支持权重与 KV 缓存减半后算力和带宽同步受益。⚡ 调参与扩展n_activated_expertsMoE 每个 token 激活的专家数inference/configs/config_v3.1.json 默认 8改什么8 → 4看什么显存占用、tokens/s预期单步计算量与访存同比例下降吞吐上升长文本质量略降适合延迟敏感场景测试序列长度2048 → 128K改什么输入从 2K 拉到 128K看什么NIAH大海捞针召回率、单 token 延迟预期128K 全窗口 NIAH 通过显存随长度近线性增长多卡并行单卡 16B → 32 卡 671B改什么python换torchrun2 节点 × 8 卡看什么端到端吞吐、跨节点通信占比预期671B 必须 32 卡集群inference/configs/config_671B.json权重需先用 inference/convert.py 按--model-parallel 16拆分# RANK/ADDR 由集群调度器注入2 节点 × 8 卡 torchrun --nnodes 2 --nproc-per-node 8 \ --node-rank $RANK --master-addr $ADDR \ inference/generate.py \ --ckpt-path ./DeepSeek-V3-Demo \ --config inference/configs/config_671B.json \ --interactive --temperature 0.7 --max-new-tokens 200 踩坑速查Triton kernel 编译失败提示无匹配 GPU ISA→ 根因装了 NVIDIA CUDA 版 triton不兼容 MI250 → 修复换 ROCm 构建后重跑pip install triton3.0.0加载权重报scale_inv缺失→ 根因把未转换的 FP8 权重当 BF16 路径传入或转换中途被中断 → 修复重跑 inference/fp8_cast_bf16.py 并确认输出无 Warning显存溢出out of memory→ 根因KV 缓存加激活专家超出单卡容量 → 修复调小n_activated_experts或增加卡数单卡 16B 验证完成后下一步是把 671B 的 32 卡配置落到你的集群或用 SGLang 替换官方 demo 启用 MTP 投机解码更多推理框架选项见 README.md 的 How to Run Locally 章节。【免费下载链接】DeepSeek-V3项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进