如何在AMD MI300X 服務器上部署 DeepSeek R1模型?

DeepSeek-R1憑借其深度推理能力備受關注,在語言模型性能基準測試中可與頂級閉源模型匹敵。

AMD Instinct MI300X GPU可在單節點上高效運行新發布的DeepSeek-R1和V3模型。

用戶通過SGLang優化,將MI300X的性能提升至初始版本的4倍,且更多優化將在未來幾周內集成到開源代碼中。

MI300X的高內存帶寬和容量優勢,使Chain of Thought(CoT)推理能更快速、高效地訪問大內存,支持實際應用中更長序列的處理。

在本博文中,我們將探討DeepSeek-R1如何在AMD Instinct? MI300X GPU上實現卓越性能,并與H200進行性能對比。借助MI300X,用戶可在單節點上高效部署DeepSeek-R1和V3模型。僅通過兩周的SGLang優化,推理速度已提升高達4倍,確保了高效擴展、更低延遲及優化吞吐量。MI300X的高帶寬內存(HBM)和強大算力可處理復雜AI任務,支持更長序列和高要求推理。AMD與SGLang社區持續推進優化,包括融合MoE內核、MLA內核融合及推測性解碼,使MI300X的AI推理體驗更加強大。

目前,企業除了可以從AMD官方預定MI300X以外,還可以通過云平臺來使用MI300X,例如DigitalOcean 最新推出的基于MI300X的GPU 裸金屬服務器(具體詳情可咨詢卓普云)。

DeepSeek模型部署挑戰

盡管大規模部署需求日益迫切,但實現最優推理性能仍面臨技術挑戰。DeepSeek-R1是一個超大規模模型(參數量超640 GB),即使以FP8精度訓練,也無法在8卡NVIDIA H100單節點中部署。此外,其多頭潛在注意力(MLA)和專家混合(MoE)架構需要高度優化的內核以實現高效擴展和定制化優化。最后,適配支持塊量化FP8 GEMM內核對最大化吞吐量和性能至關重要,因此內核調優是高效執行的關鍵。

在MI300X上使用SGLang

SGLang是面向LLM和VLM的高性能開源推理框架,提供高效運行時、廣泛模型支持及活躍社區,正被行業廣泛采用。AMD作為SGLang的核心貢獻者,與社區緊密合作,優化AMD Instinct GPU上的LLM推理。為提供最佳MI300X開箱即用體驗,SGLang已發布預構建Docker鏡像和文件,既可用于生產部署,也可作為定制化用例的起點。

基準測試關鍵結論

以下是SGLang在Instinct MI300X上的推理基準測試要點:

  • 僅兩周內,通過優化FP8精度的6710億參數DeepSeek-R1模型(非精簡版),推理性能提升高達4倍,所有優化已集成到SGLang(圖1)。
  • DeepSeek-R1和V3模型在MI300X上經過高度優化,充分利用其強大算力和大容量HBM內存。

對于需低延遲的在線推理場景(如聊天應用),單節點8卡MI300X在32并發請求下仍可保持每輸出token時間(TPOT)低于50ms。離線任務則可通過更大并發設置提升吞吐量。

圖2顯示,當最大并發從1增至32時,性能主要受限于內存;而32至64并發區間則轉為計算瓶頸。

如何復現基準測試

以下是MI300X和H200的測試步驟(假設模型已下載):

在MI300X上

1、下載Docker鏡像:

    docker pull rocm/sglang-staging:20250212  

    2、運行容器:

    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 <container_id> bash  

    3、啟動推理服務:

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

    4、運行客戶端請求:

    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  

      2、運行容器:

      docker run -d -it --rm --gpus all --shm-size 32g -p 30000:30000 -v /home:/workspace --ipc=host lmsysorg/sglang:v0.4.2.post4-cu125  
      docker exec -it <container_id> bash  

      3、使用與MI300X相同的命令運行基準測試:

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

        完成以上步驟后,就可以在MI300X服務器上實時運行DeepSeek-R1的聊天應用了。

        未來方向

        未來AMD與SGLang將推出更多優化,包括:

        • 融合MoE內核優化
        • MLA內核融合
        • 集群通信增強
        • 數據并行(DP)與專家并行(EP)
        • 前向計算與解碼分離
        • 投機性解碼

        這些改進將進一步釋放MI300X的潛力,為AI推理帶來更強大的性能。另外,如果希望機遇MI300X部署進行AI產品開發,歡迎了解DigitalOcean GPU Droplet服務器,?具體詳情可咨詢DigitalOcean中國區獨家戰略合作伙伴卓普云。?

        本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
        如若轉載,請注明出處:http://www.pswp.cn/bicheng/76461.shtml
        繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76461.shtml
        英文地址,請注明出處:http://en.pswp.cn/bicheng/76461.shtml

        如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

        相關文章

        簡化DB操作:Golang 通用倉庫模式

        介紹 本代碼包提供一個用于數據庫操作的通用倉庫 (GenericRepository)&#xff0c;利用 Golang 和 GORM (Go ORM) 實現。該倉庫設計用于簡化數據庫的 CRUD (創建、讀取、更新、刪除) 操作&#xff0c;支持批處理、沖突處理、分頁查詢等高級功能。 主要功能 創建記錄 (Create…

        JavaWeb 課堂筆記 —— 08 請求響應

        本系列為筆者學習JavaWeb的課堂筆記&#xff0c;視頻資源為B站黑馬程序員出品的《黑馬程序員JavaWeb開發教程&#xff0c;實現javaweb企業開發全流程&#xff08;涵蓋SpringMyBatisSpringMVCSpringBoot等&#xff09;》&#xff0c;章節分布參考視頻教程&#xff0c;為同樣學習…

        雙引擎驅動:解密音視頻體驗的QoS技術底座與QoE感官革命

        QoS 定義&#xff1a;QoS&#xff08;Quality of Service&#xff0c;服務質量&#xff09;衡量音視頻傳輸技術層面的性能表現&#xff0c;聚焦網絡傳輸和系統處理能力&#xff0c;通過客觀指標量化服務質量。核心指標 碼率/帶寬&#xff1a;數據傳輸速率上限&#xff0c;直接…

        Stable Diffusion + Contronet,調參實現LPIPS最優(帶生成效果+指標對比)——項目學習記錄

        目錄 前言 一、數據集&#xff1a;圖像文本&#xff0c;部分選取于DeepFashion 二、優化一&#xff0c;img2img 三、優化二&#xff0c;微調sd參數 四、優化三&#xff0c;dreamshaper優化 五、優化四&#xff0c;sdv1.5contronet 六、問題探索歷程 1. 從 SDXL 到輕量化模…

        SQL 不走索引的常見情況

        在 SQL 查詢中&#xff0c;即使表上有索引&#xff0c;某些情況下數據庫優化器也可能決定不使用索引。以下是常見的不走索引的情況&#xff1a; 1. 使用否定操作符 NOT IN ! 或 <> NOT EXISTS NOT LIKE 2. 對索引列使用函數或運算 -- 不走索引 SELECT * FROM user…

        數據庫主從延遲全解析:原因、影響與解決之道

        目錄 一、引言&#xff1a;理解數據庫主從架構 二、數據庫主從延遲的定義與測量 2.1 主從延遲的技術定義 2.2 如何測量主從延遲 2.3 主從延遲對系統的影響 三、主從延遲的常見原因分析 3.1 網絡延遲因素 3.1.1 網絡質量與帶寬限制 3.1.2 地理位置分布造成的延遲 3.2 …

        分治-歸并系列一>翻轉對

        目錄 題目&#xff1a;解析&#xff1a;策略一&#xff1a; 代碼&#xff1a;策略二&#xff1a; 代碼&#xff1a; 題目&#xff1a; 鏈接: link 這題和逆序對區別點就是&#xff0c;要找到前一個元素是后一個元素的2倍 先找到目標值再&#xff0c;繼續堆排序 解析&#xff1…

        從0到1打造一套適合自己接單的腳手架05自動化創建表

        上一篇我們是手動創建的表&#xff0c;感覺不方便&#xff0c;后續如果要做成產品在部署的時候一個個的創建表太麻煩了&#xff0c;我們讓ai來自動創建表&#xff0c;輸入如下提示詞 現在這種單獨去navicate執行也不方便&#xff0c;我希望是有一個目錄里存放的表結構的語句&a…

        minio改成https+域名訪問

        思路有兩個&#xff1a; 方式一&#xff1a;通過nginx反向代理&#xff0c;將https配置在nginx&#xff0c;內部的MinIO還是使用HTTP&#xff1b;方式二&#xff1a;MinIO服務端直接配置成HTTPS&#xff1b; 注意&#xff1a; 私鑰需要命名為&#xff1a;private.key 公鑰需要…

        VS Code構建C/C++開發環境(Windows with MinGW and CMake)

        文章目錄 目的編譯工具鏈基礎開發與調試基于CMake開發與調試關于settings.json總結 目的 在Windows上進行C/C開發目前最最常用的IDE就是微軟的 Visual Studio &#xff0c;只是對我來說早些年的VS實在是太卡了&#xff0c;留下了不好的印象。后來沒怎么用過&#xff0c;現在下…

        一組可能的機器學習問題列表

        線性回歸與多項式擬合的關系最小二乘法在機器學習中的應用梯度下降是如何實現的貝葉斯分類器的應用場景高斯分布與判定在哪里用到模型的評估有哪些參數誤差中的偏差和方差定義訓練集分組的快捷方式如何度量模型性能查準率查全率的定義roc,aux的含義正則化是什么意思k均值用來解…

        linux下io操作詳細解析

        在 Linux 系統下&#xff0c;IO&#xff08;輸入/輸出&#xff09;操作是程序與外部設備&#xff08;如文件、網絡等&#xff09;交互的重要方式。Linux 提供了豐富的系統調用和庫函數來支持各種 IO 操作。以下是對 Linux 下 IO 操作的詳細解析&#xff0c;包括文件 IO、網絡 I…

        wsl2+ubuntu22.04安裝blender教程(詳細教程)

        本章教程介紹,如何在Windows操作系統上通過wsl2+ubuntu安裝blender并運行教程。Blender 是一款免費、開源的 ??3D 創作套件??,廣泛應用于建模、動畫、渲染、視頻編輯、特效制作等領域。它由全球開發者社區共同維護,支持跨平臺(Windows、macOS、Linux),功能強大且完全…

        目標檢測YOLO實戰應用案例100講- 基于卷積神經網絡的小目標檢測算法研究與應用

        目錄 知識儲備 基于改進YOLOv5的小目標檢測算法 一、環境配置(Python 3.8+) 二、核心代碼實現 1. 改進模型定義(models/yolov5s_tiny.py ) 2. 小目標數據增強(datasets/tiny_aug.py ) 3. 訓練腳本(train.py ) 三、關鍵改進點說明 四、實驗配置建議 前言 傳統…

        智能DNS解析:解決高防IP地區訪問異常的實戰指南

        摘要&#xff1a;針對高防IP在部分地區無法訪問的問題&#xff0c;本文設計基于智能DNS的流量調度方案&#xff0c;提供GeoDNS配置與故障切換代碼示例。 一、問題背景 運營商誤攔截或線路波動可能導致高防IP在福建、江蘇等地訪問異常。傳統切換方案成本高&#xff0c;智能DNS可…

        根據 PID 找到對應的 Docker 容器

        引言 在日常運維與調試過程中&#xff0c;我們常常需要查找某個進程所屬的 Docker 容器。當系統出現問題或資源異常時&#xff0c;根據進程的 PID 找到其所屬容器可以幫助我們迅速定位問題。本文將介紹如何利用 Linux 的 cgroup 機制&#xff0c;以及 Docker 提供的工具來完成…

        NO.88十六屆藍橋杯備戰|動態規劃-多重背包|擺花(C++)

        多重背包 多重背包問題有兩種解法&#xff1a; 按照背包問題的常規分析?式&#xff0c;仿照完全背包&#xff0c;第三維枚舉使?的個數&#xff1b;利??進制可以表??定范圍內整數的性質&#xff0c;轉化成01 背包問題。 ?建議&#xff1a;并不是所有的多重背包問題都能…

        【遠程工具】0 std::process::Command 介紹

        std::process::Command 是 Rust 標準庫中用于創建和配置子進程的主要類型。它允許你啟動新的進程、設置其參數和環境變量、重定向輸入/輸出等。 基本用法 use std::process::Command;let output Command::new("echo").arg("Hello, world!").output().ex…

        【圖書管理系統】深入解析基于 MyBatis 數據持久化操作:全棧開發圖書管理系統獲取圖書列表接口(后端:計算圖書頁數、查詢當前頁展示的書籍)

        圖書列表 實現服務器代碼(計算圖書總數量查詢當前頁需要展示的書籍) 后端響應時&#xff0c;需要響應給前端的數據 records&#xff1a;第 pageNum 頁要展示的圖書有哪些&#xff08;存儲到List集合中&#xff09;total&#xff1a;計算一共有多少本書&#xff08;用于告訴前…

        如何在idea中快速搭建一個Spring Boot項目?

        文章目錄 前言1、創建項目名稱2、勾選需要的依賴3、在setting中檢查maven4、編寫數據源5、開啟熱啟動&#xff08;熱部署&#xff09;結語 前言 Spring Boot 憑借其便捷的開發特性&#xff0c;極大提升了開發效率&#xff0c;為 Java 開發工作帶來諸多便利。許多大伙伴希望快速…