
DeepSeek-V3 MI250 FP8 推理实测避坑【免费下载链接】DeepSeek-V3项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V3BF16 卡在 42 token/sMI250 推理的痛点在 MI250 上跑 DeepSeek-V3 推理BF16 下 16B 模型吞吐只有 42.6 token/s显存吃掉 32.8GB长序列直接爆显存。本文在 ROCm 环境完成一次完整的 FP8 推理吞吐拉上去、显存砍一半。从环境到实测下面所有命令均可直接复制。环境与依赖配置一张表锁死全部版本DeepSeek-V3 官方 demo 仅支持 Linux Python 3.10版本必须锁定不兼容的版本各有不同的报错组件推荐版本说明ROCm5.7低于 5.7 FP8 算子编译不过报hipErrorNoBinaryForGpuPython3.10只支持 3.10其他版本 import 阶段直接失败torch2.4.1ROCm 版装成 CUDA 版会报 Torch not compiled with ROCmtriton3.0.0AMD 优化版官方 triton 缺 ROCm backendkernel 编译即挂transformers / safetensors4.46.3 / 0.4.5tokenizer 与 FP8 权重分片读取克隆仓库并安装依赖在项目根目录git clone https://gitcode.com/GitHub_Trending/de/DeepSeek-V3 pip install -r inference/requirements.txt⚠️ torch 务必装 ROCm 构建pip 默认 CUDA 构建在 AMD 机器上 import 时就会报 CUDA runtime 错误。ROCm SDK 与驱动按官方文档安装即可关键是内核与驱动版本匹配。FP8 权重准备从配置到可推理状态三步走1. 选配置config_v3.1.json 已默认开启 FP8关键字段只有三个n_routed_experts: 256, n_activated_experts: 8, scale_fmt: ue8m0scale_fmt指定 block-wise 量化格式。官方只发布 FP8 权重跑 FP8 无需二次量化。2. 转换权重官方只发布 FP8 权重demo 需要把 HF 格式转成按卡切片的格式需要 BF16 对照组时才用 fp8_cast_bf16.py 反量化。两条命令按需执行python inference/convert.py \ --hf-ckpt-path ./fp8_weights --save-path ./demo_ckpt \ --n-experts 256 --model-parallel 16 python inference/fp8_cast_bf16.py \ --input-fp8-hf-path ./fp8_weights --output-bf16-hf-path ./bf16_weights后者的核心逻辑就一行new_state_dict[weight_name] weight_dequant(weight, scale_inv)weight_dequant定义在 kernel.py。成功标准日志无Missing scale_inv警告输出目录 safetensors 分片与 index 文件完整。3. 启动推理generate.py 支持交互式与批量两种模式torchrun --nproc-per-node 8 inference/generate.py \ --ckpt-path ./demo_ckpt \ --config inference/configs/config_v3.1.json \ --interactive --temperature 0.7 --max-new-tokens 200成功标准日志先打印完整 ModelArgs跑通一次 DeepSeek 自检生成最后进入交互提示符。MI250 实测吞吐 83.6%显存 -43.9%测试配置16B 模型、序列长度 2048、单卡 MI250精度吞吐 (tokens/s)token 延迟 (ms)显存 (GB)BF1642.648.332.8FP878.225.818.4变化最大的是显存下降 43.9%MoE 的 256 个专家权重从每权重 2 字节变 1 字节。吞吐收益主要来自内存带宽与计算强度减半FP8 是 V3 的原生训练精度官方因此只发布 FP8 权重精度损失可忽略。只复现这一步的最小命令块python inference/convert.py --hf-ckpt-path ./fp8_weights --save-path ./demo_ckpt \ --n-experts 256 --model-parallel 16 torchrun --nproc-per-node 8 inference/generate.py --ckpt-path ./demo_ckpt \ --config inference/configs/config_v3.1.json --interactive进阶与排错Triton kernel 编译挂掉大概率是版本不对症状CompilationError或 hipcc 报错。原因非 AMD 版 triton 或 ROCm 版本不匹配。修复锁定 triton3.0.0用rocminfo核对运行时环境。显存溢出单卡专家太多症状启动即hipErrorOutOfMemory。修复调大 convert.py 的--model-parallel把专家分片切到更多卡上。FP8 权重加载报错scale_inv 缺失症状Warning: Missing scale_inv tensor。原因权重分片不完整或 index 未更新。修复核对 model.safetensors.index.json 中每个 FP8 权重都有配对条目。236B / 671B 多节点扩展配置换成 config_236B.json 或 config_671B.jsontorchrun --nnodes 2 --nproc-per-node 8跨机启动进一步挖性能看 kernel.py 里的 block-wise fp8 matmul 与weight_dequant。BF16 与 FP8 两次跑法的差异只有权重路径和 config用同一批 prompt 对一次输出差异就是下一步该做的验证。【免费下载链接】DeepSeek-V3项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-V3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考