ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

多卡 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/ds4DwarfStar 是一个专为 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.cuCUDA 侧的矩阵乘内核位于 cuda/ 目录多 GPU 放置逻辑见 ds4_gpu_mgpu.h。120 t/s 的秘密微批次分组解码光把张量切开只解决了单卡放不下/算不快真正的聚合吞吐来自解码微批次micro batching--batched-session 16让ds4-server预分配16 个常驻 KV 会话多用户请求各占一个会话槽位各会话的就绪解码行跨请求分组进同一个 batchQ4_K 路由专家布局拥有原生的分组多会话解码内核一次 kernel 启动处理 16 个会话的解码长 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_ARCHsm_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 q42048 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),仅供参考
返回列表