【新智元導讀】DeepSeek模型開發竟繞過了CUDA?最新爆料稱,DeepSeek團隊走了一條不尋常的路——針對輝達GPU低級彙編語言PTX進行最佳化實現最大性能。業界人士紛紛表示,CUDA護城河不存在了?
原本DeepSeek低成本訓出的R1,就已經讓整個矽谷和華爾街為之虎軀一震。
而現在又曝出,打造這款超級AI,竟連CUDA也不需要了?
根據外媒的報導,他們在短短兩個月時間,在2,048個H800 GPU叢集上,訓出6710億參數的MoE語言模型,比頂尖AI效率高出10倍。
這項突破不是用CUDA實現的,而是通過大量細粒度最佳化以及使用輝達的類彙編等級的PTX(平行執行緒執行)程式設計。
這則消息一出,再次掀翻AI圈,網友對其策略紛紛表示震驚:
「在這個世界上,如果有那群人會瘋狂到說出『CUDA太慢了!乾脆直接寫PTX吧!』這種話,絕對就是那些前量化交易員了。」
還有人表示,如果DeepSeek開源了CUDA替代品,這將意味著什麼?
PTX是一種接近底層的指令集架構,將GPU呈現為資料平行計算裝置,因此能夠實現暫存器分配、執行緒/執行緒束等級調整等細粒度最佳化,這些是CUDA C/C++等語言無法實現的。
當PTX轉換為SASS後,就會針對特定代的輝達GPU進行最佳化。
在訓練V3模型時,DeepSeek對輝達H800 GPU進行了重新組態:
在132個流處理器多核中,劃分出20個用於伺服器間通訊,主要用於資料壓縮和解壓縮,以突破處理器的連接限制、提升事務處理速度。
為了最大化性能,DeepSeek還通過額外的細粒度執行緒/執行緒束等級調整,實現了先進的流水線演算法。
這些最佳化遠超常規CUDA開發水平,但維護難度極高。然而,這種等級的最佳化恰恰充分展現DeepSeek團隊的卓越技術實力。
這是因為,在全球GPU短缺和美國限制的雙重壓力下,DeepSeek等公司不得不尋求創新解決方案。
所幸的是,他們在這方面取得了重大突破。
有開發者認為,「底層GPU程式設計才是正確的方向。最佳化得越多,就越能降低成本,或在不增加額外支出的情況下,提高可用於其他方面進步的性能預算」。
這一突破對市場造成了顯著衝擊,部分投資者認為新模型對高性能硬體的需求將會降低,可能會影響輝達等公司的銷售業績。
然而,包括英特爾前掌門人Pat Gelsinger等在內的行業資深人士認為,AI應用能夠充分利用一切可用的計算能力。
對於DeepSeek的這一突破,Gelsinger將其視為在大眾市場中,為各類低成本裝置植入AI能力的新途徑。
Google、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)才是明智的選擇。 (新智元)