
社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。
根據外媒的報道,他們在短短兩個月時間,在 2,048 個 H800 GPU 叢集上,訓出 6710 億引數的 MoE 語言模型,比頂尖AI效率高出 10 倍。
這項突破不是用 CUDA 實現的,而是透過大量細粒度最佳化以及使用英偉達的類彙編級別的 PTX(並行執行緒執行)程式設計。
DeepSeek 在硬體受限的條件下被逼走出了一條不同於 OpenAI 等狂堆算力的道路,用一系列技術創新來減少模型對算力的需求,同時獲得性能提升。


網友的一些熱評:
「在這個世界上,如果有哪群人會瘋狂到說出『CUDA 太慢了!乾脆直接寫 PTX 吧!』這種話,絕對就是那些前量化交易員了。」




天才極客微調PTX,讓GPU效能極致發揮
英偉達 PTX(並行執行緒執行)是專門為其 GPU 設計的中間指令集架構,位於高階 GPU 程式語言(如 CUDA C/C++ 或其他語言前端)和低階機器程式碼(流處理彙編或 SASS)之間。
PTX 是一種接近底層的指令集架構,將 GPU 呈現為資料平行計算裝置,因此能夠實現暫存器分配、執行緒/執行緒束級別調整等細粒度最佳化,這些是 CUDA C/C++ 等語言無法實現的。
當 PTX 轉換為 SASS 後,就會針對特定代的英偉達 GPU 進行最佳化。

在訓練 V3 模型時,DeepSeek 對英偉達 H800 GPU 進行了重新配置:
在 132 個流處理器多核中,劃分出 20 個用於伺服器間通訊,主要用於資料壓縮和解壓縮,以突破處理器的連線限制、提升事務處理速度。
為了最大化效能,DeepSeek 還透過額外的細粒度執行緒/執行緒束級別調整,實現了先進的流水線演算法。
這些最佳化遠超常規 CUDA 開發水平,但維護難度極高。然而,這種級別的最佳化恰恰充分展現 DeepSeek 團隊的卓越技術實力。

V3 論文中具體提到了關於 PTX 的細節
這是因為,在全球 GPU 短缺和美國限制的雙重壓力下,DeepSeek 等公司不得不尋求創新解決方案。
所幸的是,他們在這方面取得了重大突破。
有開發者認為,「底層 GPU 程式設計才是正確的方向。最佳化得越多,就越能降低成本,或在不增加額外支出的情況下,提高可用於其他方面進步的效能預算」。

這一突破對市場造成了顯著衝擊,部分投資者認為新模型對高效能硬體的需求將會降低,可能會影響英偉達等公司的銷售業績。
然而,包括英特爾前掌門人 Pat Gelsinger 等在內的行業資深人士認為,AI 應用能夠充分利用一切可用的計算能力。
對於 DeepSeek 的這一突破,Gelsinger 將其視為在大眾市場中,為各類低成本裝置植入 AI 能力的新途徑。

PTX與CUDA
那麼,DeepSeek 的出現是否意味著前沿 LLM 的開發,不再需要大規模 GPU 叢集?
谷歌、OpenAI、Meta 和 xAI 在計算資源上的鉅額投資是否最終將付諸東流?AI 開發者們的普遍共識並非如此。
不過可以確定的是,在資料處理和演算法最佳化方面仍有巨大潛力可以挖掘,未來必將湧現出更多創新的最佳化方法。
隨著 DeepSeek 的 V3 模型開源,其技術報告中詳細披露了相關細節。
該報告記錄了 DeepSeek 進行的深度底層最佳化。簡而言之,其最佳化程度可以概括為「他們從底層重新構建了整個系統」。
如上所述,在使用 H800 GPU 訓練 V3 時,DeepSeek 對 GPU 核心計算單元(流處理器多核,簡稱 SM)進行了定製化改造以滿足特定需求。

在全部 132 個 SM 中,他們專門劃分出 20 個用於處理伺服器間通訊任務,而非計算任務。
這種定製化工作是在 PTX(並行執行緒執行)層面進行的,這是英偉達 GPU 的低階指令集。
PTX 執行在接近組合語言的層面,能夠實現暫存器分配和執行緒/執行緒束級別調整等細粒度最佳化。然而,這種精細的控制既複雜又難以維護。
這也是為什麼開發者通常會選擇使用 CUDA 這類高階程式語言,因為它們能為大多數並行程式設計任務提供充分的效能最佳化,無需進行底層最佳化。
但是,當需要將 GPU 資源效能發揮到極致並實現特殊最佳化需求時,開發者就不得不求助於 PTX。
雖然但是,技術壁壘依然還在
對此 ,網友 Ian Cutress 表示:「Deepseek 對於 PTX 的使用,並不會消除 CUDA 的技術壁壘。」

CUDA 是一種高階語言。它使程式碼庫的開發和與英偉達 GPU 的介面變得更簡單,同時還支援快速迭代開發。
CUDA 可以透過微調底層程式碼(即 PTX)來最佳化效能,而且基礎庫都已經完備。目前絕大多數生產級的軟體都是基於 CUDA 構建的。
PTX 更類似於可以直接理解的 GPU 組合語言。它工作在底層,允許進行微觀層面的最佳化。
如果選擇使用 PTX 程式設計,就意味著上文提到的那些已經建好的 CUDA 庫,都不能用了。這是一項極其繁瑣的任務,需要對硬體和執行問題有深厚的專業知識。
但如果開發者充分了解自己在做什麼,確實可以在執行時獲得更好的效能和最佳化效果。

目前,英偉達生態的主流,仍然是使用 CUDA。
那些希望從計算負載中提升額外 10-20% 效能或功耗效率的開發者,比如在雲端部署模型並銷售 token 服務的企業,確實都已經將最佳化從 CUDA 層面深入到了 PTX 層面。他們願意投入時間是因為,從長遠來看這種投入是值得的。
需要注意的是,PTX 通常是針對特定硬體型號最佳化的,除非專門編寫適配邏輯,否則很難在不同硬體間移植。
除此之外,手動調優計算核心也需要極大的毅力、勇氣,還得有保持冷靜的特殊能力,因為程式可能每執行 5000 個週期就會出現一次記憶體訪問錯誤。
當然,對於確實需要使用 PTX 的場景,以及那些收到足夠報酬來處理這些問題的開發者,我們表示充分的理解和尊重。
至於其他開發者,繼續使用 CUDA 或其他基於 CUDA 的高階變體(或 MLIR)才是明智的選擇。
參考資料:
https://www.tomshardware.com/tech-industry/artificial-intelligence/deepseeks-ai-breakthrough-bypasses-industry-standard-cuda-uses-assembly-like-ptx-programming-instead
https://x.com/Jukanlosreve/status/1883304958432624881
https://x.com/IanCutress/status/1884374138787357068

掃描二維碼新增小助手微信
關於我們
