桃子桃子快讯
返回首页
工具

用户移植 Ninfer 推理引擎至 CMP170HX 矿卡,35B 模型推理速度翻倍

Reddit 用户将原本面向 RTX 3090 的 Ninfer 推理引擎 fork 并移植到 CMP170HX 矿卡,…

2026.08.23 · 周日4 分钟阅读

近日,r/LocalLLaMA 论坛用户 ubrtnk 发布了一篇技术分享,展示其将 Ninfer 推理引擎从 RTX 3090 移植至 NVIDIA CMP170HX 矿卡的过程。作者自称本职为 IT 架构师,并非开发者,实际移植工作主要由 AI 编程助手「Hermes」(底层使用 Codex 与本地 Qwen3.8-27B)完成,他本人负责方向把控与验证。

项目背景

CMP170HX 是 NVIDIA 面向加密货币挖矿推出的 GPU,去除视频输出接口、保留与 RTX 3090 同代(sm_80)的计算核心,但 SM 数量为 70 个,介于消费级 3090(82 SM,sm_86)与 RTX 5090(170 SM)之间。由于缺乏显示输出,二手价格较低,作者以低于 1000 美元购入,并通过 CMPUnlocker 解锁受限功能。作者此前已在 RTX 3090/4090 上验证过 Don-Chad 等社区维护的 Ninfer 分支,发现 llama.cpp 之外还存在显著性能空间,遂萌生移植想法。

关键技术改动

Hermes 给出的移植说明显示,简单的编译开关(如加入 sm_80)并不足以让 Ninfer 在 CMP170HX 上跑通。原 3090 分支假设的 82 SM、sm_86 架构,与 CMP 实际暴露的 70 SM、sm_80 之间存在不兼容问题,表现为 cudaErrorCooperativeLaunchTooLarge。具体改动包括:

  • 让调度器动态读取实际 SM 数量,按 16→8→4→2 的分级方案回退到更小的 split-K 网格;
  • 工作区(workspace)大小跟随实际选定的调度方案自适应调整;
  • 替换原本为 RTX 5090 170 SM 硬编码的 launch policy;
  • 在 sm_80 构建中屏蔽仅 Blackwell 架构可用的 NVFP4/W4A4 算子;
  • 针对 Ampere 架构 reduction 行为差异微调数值判据;
  • 在容器中移除 CUDA 前向兼容 libcuda,使宿主驱动可被 CMP 直接使用。

最终 Qwen3.8-27B 与 Qwen3.6-35B-A3B 均能在 CMP170HX 上成功加载,支持 MTP 推测解码与大 KV 缓存预留。

性能与运行配置

作者在 llama-swap 中以「Jarvis」为容器名配置按需启动,模型为 Qwen3.6-35B-A3B,关键参数包括:

  • 最大上下文长度 262144,KV 缓存容量同样为 262144;
  • KV 缓存使用 int8 量化,262K 上下文下显存占用约 26 GiB;
  • 启用 MTP 推测解码,draft tokens 设为 3,并启用 lm-head-draft;
  • 同时开启视觉(vision)与思考链保留(preserve-thinking);
  • 运行环境为 CUDA 13.1.2 运行时 / Ubuntu 25.10。

作者称在 35B 模型上文本与图像处理均获得约 2 倍稳定加速,Home Assistant 经 HA Voice 发起的单次请求中,PP(prefill)一度超过 4000,TG(token generation)超过 210 token/s。但作者也承认,Qwen3.8-27B 作为 MoE 模型属于显存带宽密集型,提升幅度不如 Dense 模型明显,不同提示词下增幅在 10%–35% 之间波动。

适用范围与说明

CMP170HX 仍是相对小众的硬件,作者希望本次移植能给拥有该卡的本地推理玩家提供参考。需要注意的是,文中出现的「Qwen3.6-35B」「Qwen3.8-27B」等模型命名以及作为编排器的「GPT-5.6-Terra」在公开模型库中难以直接核实,读者在复现前应自行确认模型与权重来源。

信源