专栏名称: 企业存储技术
企业存储、服务器、SSD、灾备等领域技术分享,交流 | @唐僧_huangliang (新浪微博 )
目录
相关文章推荐
51好读  ›  专栏  ›  企业存储技术

解锁DeepSeek-R1 671B FP8推理性能:5,921 token/s @ AMD MI300X

企业存储技术  · 公众号  ·  · 2025-02-27 07:40

正文

本文编译自 https://rocm.blogs.amd.com/artificial-intelligence/DeepSeekR1_Perf/README.html
在 AMD Instinct™ MI300X GPU 上解锁 DeepSeek-R1 推理性能

在本博客中,我们探讨了 DeepSeek-R1 如何在 AMD Instinct™ MI300X GPU 上实现竞争性能,以及与 H200 的性能比较和一个展示实际使用情况的简短演示应用程序。通过利用 MI300X,用户可以在单个节点上以令人印象深刻的效率部署 DeepSeek-R1 和 V3 模型。在短短两周内,使用 SGLang 进行的优化已将推理速度提高了 4 倍,确保了高效的扩展、更低的延迟和优化的吞吐量。MI300X 的高带宽内存 (HBM) 和计算能力支持执行复杂的 AI 工作负载,处理更长的序列和要求苛刻的推理任务。随着 AMD 和 SGLang 社区推动持续优化(包括融合的 MoE 内核、MLA 内核融合和推测解码),MI300X 将提供更强大的 AI 推理体验。

概览

  • DeepSeek-R1 因其深度推理能力而受到广泛关注,在语言建模性能基准测试中可与顶级闭源模型相媲美。

  • AMD Instinct MI300X GPU 可以在单个节点中为新的 DeepSeek-R1 和 V3 模型提供具有竞争力的性能。

  • 与 MI300X 上最初使用时的性能相比,用户使用 SGLang 后性能提升了 4 倍 。未来几周内还将进行更多优化。

  • 思维链 (CoT) 受益于 MI300X GPU 增加的内存带宽和容量优势,使其能够更快、更高效地访问大内存,从而有效地支持现实世界 AI 应用中更长的序列长度。

DeepSeek 模型部署挑战

虽然大规模部署的需求比以往任何时候都强烈,但实现最佳推理性能也带来了重大的技术挑战。Deepseek-R1 是一个大型模型,具有超过 640 GB 的参数。即使以 FP8 精度进行训练,也不可能将其放入 8 个 NVIDIA H100 GPU 的单个节点中。此外,多头潜在注意力 (MLA) 和混合专家 (MoE) 架构需要高度优化的内核,以确保高效扩展和利用自定义优化。最后,调整 FP8 GEMM 内核以支持分块量化对于最大化吞吐量和性能至关重要,因此调整这些内核对于有效执行至关重要。

在 MI300X 上利用 SGLang

SGLang 是一个高性能的开源 LLM 和 VLM 服务框架。它提供高效的运行时、广泛的模型支持和活跃的社区,并在整个行业中得到越来越多的采用。AMD 是 SGLang 的主要贡献者,并一直与社区密切合作,以在 AMD Instinct GPU 上实现和优化 LLM 推理。为了在 MI300X 上提供最佳的开箱即用体验,SGLang 发布了预构建的 docker 镜像和 docker 文件。这些资产可用于生产部署,并可作为根据用例特定要求定制自定义镜像的起点。

服务基准测试的关键要点

以下是 SGLang 在 Instinct MI300X 上进行基准测试的一些关键要点:

  • 在短短两周内,我们使用 671B DeepSeek-R1 FP8 模型(而不是较小的提炼版本)实现了高达 4 倍的推理性能提升,并且所有优化都上传到 SGLang(图 1)。

  • DeepSeek-R1 和 V3 的性能已针对 MI300X 进行了高度优化,以利用其强大的计算能力和大容量 HBM 内存容量。

../../_图像/dsf1.png

图 1:总吞吐量(tks)[ 1 ]

  • 对于需要低延迟的聊天应用程序等在线推理用例,单个 Instinct MI300X 节点(8 个 GPU)上的 SGLang 服务基准测试表现出强大的性能,即使并发请求多达 32 个,也能将每个输出令牌的时间 (TPOT) 保持在 50 毫秒以下。对于离线工作负载,可以使用更大的并发设置来最大化吞吐量。

  • 从图 2 中我们可以看到,对于最大并发数从 1 到 32 的范围,性能主要受内存限制,而对于最大并发数在 32 到 64 之间,性能则转为受计算限制。

../../_图像/dsf2.png

图 2:Deepseek R1 总吞吐量 (tks) 与延迟 (ms) [ 2 ]

如何重现基准

下面您将找到 MI300X 和 H200 的说明。以下说明假定模型已下载。

在 MI300X 上

  1. 下载 Docker 容器:

    
    
    
    
    
        
    docker pull rocm/sglang-staging:20250212

  2. 运行docker容器:

    docker run -d -it --ipc=host --network=host --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mem --group-add render --security-opt seccomp=unconfined -v /home:/workspace rocm/sglang-staging:20250212

    docker exec -it  bash

  3. 运行服务基准测试:

    HSA_NO_SCRATCH_RECLAIM=1 python3 -m sglang.launch_server --model/workspace/models/DeepSeek-R1/ --tp 8 --trust-remote-code

    运行客户端请求

concurrency_values =( 128 64 32 16 8 4 2 1 )

for concurrency in "${ concurrency_values [@] }" ; do

python3 -m sglang.bench_serving \

--dataset-name random \

--random-range-ratio 1 \

--num-prompt 500 \

--random-input 3200 \

--random-output 800 \

--max-concurrency "${ concurrency }"

done

在 H200 上

  1. 下载 Docker 容器:

docker pull lmsysorg/sglang:v0.4.2.post3-cu125

  1. 运行docker容器:







请到「今天看啥」查看全文