news 2026/9/4 8:12:34

多卡 CUDA 张量并行:DwarfStar 如何在 8 张 L40S 上跑出 120 t/s

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多卡 CUDA 张量并行:DwarfStar 如何在 8 张 L40S 上跑出 120 t/s

多卡 CUDA 张量并行:DwarfStar 如何在 8 张 L40S 上跑出 120 t/s

【免费下载链接】ds4DeepSeek 4 Flash and PRO local inference engine for Metal, CUDA and ROCm项目地址: https://gitcode.com/GitHub_Trending/ds4/ds4

DwarfStar 是一个专为 DeepSeek V4 Flash / PRO 打造的本地推理引擎,同时支持 Metal、CUDA 与 ROCm 三大后端。在 8 张 NVIDIA L40S 组成的服务器上启用多卡 CUDA 张量并行后,它可以同时服务多个会话,实现约120 t/s 的聚合生成速度和 2000 t/s 的 prefill 速度。这篇文章用最少的篇幅讲清楚:这个数字是怎么来的,以及你如何自己搭起来。

先分清概念:张量并行 ≠ 流水线并行

DwarfStar 里有两种多机/多卡模式,新手最容易混淆:

模式切分单位收益代价
流水线并行(多机)把不同 transformer 层放到不同机器跑更大的模型、prefill 提速 1.4~1.85 倍生成是自回归的,每个 token 要跨机往返,反而更慢
张量并行(单机多卡)同一个 token的每层计算(路由专家、注意力头)切到多张卡上并行降低单 token 延迟,多会话聚合吞吐大幅提升需要卡间 P2P/快速互连

8 张 L40S 跑的是后者:由一个开关--cuda-tensor-parallel统一启用,不需要--role、不需要 RDMA、不需要跨机部署,GPU 放置和显存预算沿用常规的--gpu-devices--gpu-vram参数即可。

8 张卡是怎么配对的:4 个流水线阶段 × 2

张量并行的设备顺序有讲究。对于N张卡,DwarfStar 把前 N/2 个逻辑层位(tier)作为连续的"层流水线宿主",后 N/2 个是它们的张量并行搭档。官方建议的写法是"先列全部宿主,再列全部搭档,最靠近的 P2P 对放在相同位置"。

在实测的 L40S 机器上,物理 P2P 对是(0,1)(2,3)(4,5)(6,7),因此设备列表写作:

--gpu-devices 0,2,4,6,1,3,5,7

这样 8 张卡 =4 个流水线阶段,每阶段是一对 P2P 卡。内存布局上做了精细优化:

  • 每一对卡存储路由专家的 50/50 切分——模型里体积最大的部分不在任何一张卡上重复;
  • 词表输出头(vocabulary head)按行切分(row-shard)到参与的输出层上;
  • 稠密注意力、路由器和共享专家权重在对内复制,体积小、复制成本低。

相关源码入口在 ds4_cuda.cu,CUDA 侧的矩阵乘内核位于 cuda/ 目录,多 GPU 放置逻辑见 ds4_gpu_mgpu.h。

120 t/s 的秘密:微批次分组解码

光把张量切开只解决了"单卡放不下/算不快",真正的聚合吞吐来自解码微批次(micro batching)

  1. --batched-session 16ds4-server预分配16 个常驻 KV 会话,多用户请求各占一个会话槽位;
  2. 各会话的"就绪解码行"跨请求分组进同一个 batch,Q4_K 路由专家布局拥有原生的分组多会话解码内核,一次 kernel 启动处理 16 个会话的解码;
  3. 长 prefill 以2048 token 的小块轮转(该模式下不设显式值时的默认块大小),且生成进行中每 128 token 让出一次,保证一个长 prefill 不会堵住所有解码器。

这也是为什么官方推荐 8×48GB L40S 用q4-imatrix模型:它的Q4_K路由专家布局直接命中原生分组内核;Q2 模型走精确回退路径,聚合吞吐更低,但它是省显存的选择(4 卡即可运行)。2 张卡则显存不够,撑不起 Flash 模型。

快速上手:三步启动 8 卡服务器

./download_model.sh q4-imatrix make cuda CUDA_ARCH=sm_89 ./ds4-server --cuda --cuda-tensor-parallel \ --gpu-vram auto \ --gpu-devices 0,2,4,6,1,3,5,7 \ --model gguf/DeepSeek-V4-Flash-Q4KExperts-F16HC-F16Compressor-F16Indexer-Q8Attn-Q8Shared-Q8Out-chat-v2-imatrix.gguf \ --ctx 100000 \ --batched-session 16 \ --host 0.0.0.0

更省事的写法是仓库自带的启动器 run-nvidia-tp-server.sh,支持start / restart / stop / status服务管理:

./run-nvidia-tp-server.sh start

该模式会自动选择 2048 的 prefill 块,以便 16 个 100k 上下文会话的常驻 KV 缓存在显存里放得下;无需任何DS4_CUDA_*环境变量微调。

关键数字一览

指标数值说明
聚合生成速度~120 t/s8×L40S,多会话微批次
Prefill 速度~2000 t/s同上
单会话解码46.93 t/sFlash q4,2048 token prefill 基准
16 路分组解码126.0 t/s16-row decode oracle 记录值
发布门禁下限110 t/s16 路分组解码的硬性底线

最后一行来自发布质量矩阵 QA_BEFORE_RELEASES.md:官方把 16 路分组解码的聚合速度设了 110 t/s 的硬性回归门禁,掉下去就阻断发版——这也是"120 t/s"可复现、可验证的底气。

适合谁、注意什么

  • 把"过时"的 Ada 卡盘活:L40S 这类 Ada Lovelace 架构的卡已不被 vLLM 等框架支持新模型,DwarfStar 能让它们变成公司内部的多用户 LLM 服务器;
  • 该模式目前要求DeepSeek V4 Flash + 偶数张卡;GLM 5.2 走普通的跨卡层放置;DGX Spark 是单卡目标,不要带--cuda-tensor-parallel启动;
  • 显存不够时优先减小会话数或上下文,而不是关微批次;
  • 多会话分组解码与预填充混跑的正确性由 tests/test_cuda_session_batch.c 和 tests/test_cuda_mixed_batch.c 这类模型级测试守护。

更多细节(设备配对规则、启动器默认值、GLM 差异)见 README.md 的 "Tensor Parallelism across CUDA GPUs" 一节,模型下载脚本为 download_model.sh。

【免费下载链接】ds4DeepSeek 4 Flash and PRO local inference engine for Metal, CUDA and ROCm项目地址: https://gitcode.com/GitHub_Trending/ds4/ds4

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 8:03:05

MediaPipe手势识别:21点3D手部追踪怎么跑通

MediaPipe手势识别:21点3D手部追踪怎么跑通 【免费下载链接】mediapipe Cross-platform, customizable ML solutions for live and streaming media. 项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe MediaPipe 是 Google 开源的端侧机器学习框…

作者头像 李华
网站建设 2026/9/4 8:35:42

STM32火灾报警系统全流程实战:从硬件设计到多传感器融合算法

简介:本资源是一套完整的基于STM32的火灾报警系统毕业设计/课程设计实战资料包,面向嵌入式初学者、电子信息类本科生及毕设开发者,解决从硬件选型、PCB设计到嵌入式软件开发与答辩全流程落地难题。压缩包含1445个文件,总大小56.55…

作者头像 李华
网站建设 2026/9/3 14:33:55

Android SDK Platform手动管理指南:从构建失败到离线安装实战

简介:本资源是Android 13(API级别36)官方平台SDK核心组件压缩包,面向Android应用开发者、移动开发学习者及需要适配最新系统特性的工程团队,用于构建、编译、调试和测试兼容Android 13的应用程序。压缩包共2000个文件&…

作者头像 李华
网站建设 2026/9/3 21:38:42

Vue 3与Spring Boot 3构建医院HR系统:架构设计与核心模块实现

简介:这是一套面向Java与前端开发者、高校计算机专业师生及医疗信息化项目实践者的医院人力资源管理系统完整源码,聚焦解决医院人事部门在招聘、考勤、薪酬、绩效、培训与离职等多环节的数字化管理需求。资源采用Vue3SpringBoot3前后端分离架构&#xff…

作者头像 李华
网站建设 2026/9/4 12:40:10

STM32F103驱动HC-SR04超声波测距:从硬件原理到软件滤波的实战优化

简介:本资源是基于STM32F103RCT6微控制器与HC-SR04超声波传感器实现高精度实时测距的完整嵌入式项目,面向嵌入式初学者、课程设计学生及智能硬件开发者,解决非接触式距离检测在机器人避障、智能家居与自动化场景中的基础应用问题。压缩包共77…

作者头像 李华