今天小編分享的科技經驗:國產替代狂奔,中國版英偉達何時現身?,歡迎閲讀。
導語:在國產 GPU 突圍的道路上,部分廠商已經走出了自己的路。但鑑于硬體、生态等各方面的差距,這樣必定是一條充滿荊棘的長路。
最近,風頭正盛的英偉達在算力領網域又下一城。
在最新的最新 MLPerf 訓練基準測試中,英偉達的 H100 僅用 11 分鍾就訓練完了 GPT-3。
并且還在所有的八項測試中都創下了新紀錄。
可以説,這是一款專為 AI、HPC 和數據分析而設計的 " 性能怪獸 "。
憑借着 4nm 制程、800 億個晶體管、18432 個 CUDA 核心,以及專用的 Transformer 引擎,H100 将大模型訓練速度提高了 6 倍。
同時,H100 還支持 NVLink Switch 系統,可以實現單節點内和節點間的全方位 GPU 通信,從而支持百億億級(Exascale)的工作負載。
這也是其能在 MLPerf 8 項基準測試中橫掃其他競争者的重要原因。
在算力愈發重要的 AIGC 時代,任何能提高模型訓練、機器學習的硬體技術,都成了各大 AI 企業垂涎欲滴的產物。
然而,目前在 GPU 領網域,大部分國内企業,仍然只能仰賴英偉達一家的技術。
在國内算力愈發捉襟見肘,以及國際風雲變幻的敏感時刻,國内的 GPU 廠商,能否奮力追趕,解決這一 " 卡脖子 " 難題,以至于成為下一個 " 英偉達 " 呢?
種子選手的秘密
在目前國内一票 GPU 的 " 種子選手 " 中,一家名叫壁仞科技的企業引起了人們的注意。
原因很簡單,那就是其產品 BR100 不僅創下了全球算力紀錄,并且宣稱其峰值算力達到了英偉達 A100 的 3 倍,甚至還能對标沒發售的 H100。
然而,稍微了解過國内芯片行業的人都知道,在芯片領網域,國内的炒作太多了,徒有其表的例子也太多了。
那麼,做出這個 " 媲美英偉達 "GPU 的企業,究竟是什麼來頭?其自主研發的 BR100,是否真的像其宣傳的那樣出色?
要回答這個問題,我們不妨先看看壁仞科技的創始班底,技術背景究竟如何。
作為一家通用智能芯片設計研發商的壁仞科技,成立于 2019 年,團隊由國内外芯片和雲計算領網域的專家和研發人員組成。
其創始人張旭博士,不僅擁有清華大學和斯坦福大學的博士學位,還曾是英偉達的高級架構師,負責 Volta 架構的設計和開發。
除此之外, 團隊其他成員的技術身份,也頗為亮眼。
李新榮,聯席 CEO,曾任 AMD 全球副總裁、中國研發中心總經理,負責 AMD 大中華區的研發建設和管理工作。
洪洲,CTO,曾在 NVIDIA、S3、華為等工作操刀 GPU 工程項目,擁有超過 30 年的 GPU 領網域經驗。
焦國方,軟體生态環境主要負責人,曾在高通領導和產品研發了 5 代 Adreno 移動 GPU 系統架構。
這樣的團隊背景,決定了壁仞科技的技術底色。
依據之前在英偉達、AMD、高通、商湯科技等知名企業的研發經驗和技術積累,壁仞科技研發了自主原創的芯片架構——壁立仞。
壁立仞架構基于 SIMT(單指令多線程)模型,針對 AI 場景進行了專用的優化和定制。
其最大的特點,就是可以将多個小芯片拼成一個大芯片,每個小芯片只做一部分功能,然後通過高速互連組合成一個大芯片。
這樣可以提高芯片的良率和可靠性,同時降低成本和功耗,實現更強大的算力和擴展性。
這就是壁仞科技所謂的Chiplet的設計理念。
這種技術的難點在于如何保證芯片之間的高速通信和協作,同時避免信号幹擾和功耗過高。
因此,如何設計合适的芯片分割和組合方案,使得每個芯片都能發揮最大的效能,同時減少電磁幹擾和熱耗散,就成了 Chiplet 能否成功的關鍵。
對此,壁仞科技使用了兩種關鍵的技術2.5DCoWoS 和 BLink,來攻克這一難關。
簡單地説,2.5D CoWoS 技術是一種把多個芯片堆疊在一起的技術,它利用了一個硅基板作為中介層,縮短了芯片之間的距離,從而提高了信号的傳輸速度和質量。
而 BLink 則在中介層上,建立了一個專用的接口,它可以讓多個芯片之間直接傳輸數據,而不需要經過其他的電路或芯片,從而減少了延遲和功耗。
然而,盡管 2.5D CoWoS、BLink 這些技術,讓壁仞科技打造出了算力更強的 BR100,但這些技術,目前在國際上并不罕見,其他 GPU 廠商也有過類似的設計。
例如,Nvidia 的 A100 和 H100 GPU 都采用了 CoWoS 技術,把 GPU 芯片和 HBM 内存堆疊在一起,提高了内存帶寬和計算性能。而 Nvidia 還開發了自己的 NVLink 接口,類似于 BLink 接口,可以讓多個 GPU 之間高速互聯。
此外,AMD 也有自己的 Infinity Fabric 接口,可以實現類似的功能。
那既然這是一種 " 大家都能用 " 的技術,那壁仞科技怎麼就做到讓 BR100 算力達到 A100 三倍的呢?而英偉達真就會坐視着自己被超越了?
其實,這樣的結果,是二者在不同數據格式下的表現所致。
具體來説,BR100 的巨大算力,更多是在矩陣 FP32 數據格式下的表現。
一般來説,數據格式占用的位數越多,它的範圍和精度就越高,但是也會消耗更多的空間和電力。
而矩陣 FP32 其實就是一種特殊的 FP32 數據格式,它只用了 19 位來存儲一個浮點數,這樣做的目的是為了讓矩陣 FP32 能夠兼容 Tensor Core 這種專門用于加速矩陣乘法的硬體單元。
矩陣乘法是深度學習中最常見和最重要的計算操作之一,所以使用矩陣 FP32 可以大幅提升深度學習的性能。
但是,矩陣 FP32 也有一個缺點,就是它的精度比向量 FP32 低,也就是説它能表示的浮點數的範圍和細節程度比向量 FP32 小。
這樣就會導致一些誤差和損失,在某些情況下可能會影響模型的質量和效果。
因此,矩陣 FP32 和英偉達 A100 的向量 FP32 并不等價,因為矩陣 FP32 只适用于矩陣乘法這種特定的計算操作,并不能代表 GPU 的整體性能。
生态之痛
除了技術方面的較量外,軟體生态上的壁壘,也是國產 GPU 無法忽視的一道屏障。
從某種程度上説,這樣的壁壘比某些具體技術的難點,更難以攻克。
在 GPU 領網域,業界流傳着一種説法:"CUDA 是 Nvidia 最深的護城河 "。
這是因為,早在十幾年前,在業内大部分人都認為 GPU 只能處理圖形相關的計算時,英偉達就已經意識到了 GPU 在 AI 領網域的潛力和價值,并開始了相應的布局,在 2006 年推出了通用并行計算架構 CUDA。
在 CUDA 問世前,人們在進行各種計算任務時,用的都是 CPU,而非 GPU。
然而,CPU 雖然具有很強的 " 通用性 ",可以處理各種計算,但是它的速度不夠快,而且核心數量有限。
而相較之下,只能處理圖形計算的 GPU,不僅速度很快快,而且有很多很多的核心。
通過 CUDA,在進行 AI 計算時,人們可以将神經元之間的計算分配到 GPU 的不同核心上,并行地進行運算。這樣就大大提高了神經網絡的訓練和推理的速度、效果。
英偉達看到了 CUDA 的巨大潛力,于是不斷地完善和優化 CUDA 的技術和生态。
例如讓 CUDA 支持 C、C++、Fortran、Python 等多種編程語言,或是提供了針對不同領網域和應用優化的庫和工具,比如影像處理庫、深度學習庫、自動駕駛庫等等。
這樣的優化,為開發者提供了極大的便利,使其不用再學習新的編程語言,或是從頭開始編寫代碼。
于是,越來越多的人用慣了,用舒服了,CUDA 的生态就這麼被搭建起來了。
誠然,在 CUDA 構建自身生态壁壘的過程中,也不是沒有遇到過競争者,但最後這些對手都一一成為了 " 陪跑者 "。
例如,蘋果公司和 Khronos Group 在 2009 年推出的 OpenCL,也有過想成為行業标準的想法,讓人們可以用不同廠商的 CPU、GPU、來做異構計算。
然而,OpenCL 沒有 CUDA 那麼高效和靈活,需要更多的編程技巧和優化工作,這就加大了開發者的負擔。
而英偉達的老對手 AMD,也想要提供一個通用并行計算平台,并推出了相應的產品 ROCm,它跟 CUDA 的架構非常類似,甚至有一個工具叫 hipify,可以把 CUDA 代碼轉換成 ROCm 代碼。
但是 ROCm 只能用在 AMD 的 GPU 上,而且只支持幾款顯卡。
于是,綜合對比下來,更多的開發者還是選擇了 " 通用性 "、" 易用性 " 都更勝一籌的 CUDA。
如今,在軟體生态方面,壁仞科技也推出了自主研發的 BIRENSUPA 軟體平台,試圖通過 " 無縫運行 " 的方式,讓開發者無需修改代碼,就可以在 BR100 系列產品上運行原本基于 CUDA 的應用。
這樣,習慣了使用 CUDA 的用户,如果轉而使用 BR100 系列產品,可以獲得更高的計算性能和更低的功耗成本。
然而,這樣的思路,卻面臨着幾大挑戰,而其中之一,就是 BR100 系列產品在通用計算生态上的支持。
BIRENSUPA 軟體平台
因為,壁仞科技為了提高 BR100 系列產品在 AI 計算方面的性能和能效,也對流處理器進行了一些優化和定制,比如説使用 BF16 替代 FP16 作為主要的數據格式,以及增加了一些針對 AI 的硬體指令和功能。
這樣,BR100 就可能犧牲了部分通用計算能力,導致其在一些非 AI 的應用場景和領網域上表現不佳或者不兼容。
而這也是為什麼,BR100 的主要應用場景,大多是復旦大學、清華大學這類高校的人工智能計算和高性能計算項目。
除此之外,BR100 系列產品,在算力利用率上也存在着風險。
雖然,BR100 的架構是通用的,如果如果壁仞科技願意,也同樣可以将其用于通用類的計算。
但因為 BR100 的内部算力帶寬已經明顯超過 PCIe 和 HBM2e 的帶寬,所以絕大部分數據可能都要在 GPU 内流轉。
這就意味着,雖然 BR100 的算力很強大,它的數據來源和輸出通道,都不夠快,不能及時地給它送來或者拿走數據。
而如果一個軟體生态主要支持通用處理, 它的 GPU 芯片往往就需要有足夠高的外部帶寬,來獲取各種類型的數據。
這是因為,不同類型的應用,往往對帶寬的需求和敏感度都不同。一些大型的應用,可能需要更高的帶寬,才能更好地計算。
最後,也是最具風險的一點,就是雖然壁仞科技宣稱,BR100 要無縫地支持 CUDA 生态,但 CUDA 不是一個開源生态,英偉達在其中埋下了大量專利壁壘。
如果壁仞科技真的打算撬動這塊壁壘,則很可能受到英偉達的在專利上的反擊。
綜上所述,雖然目前在國產 GPU 突圍的道路上,部分廠商已經走出了自己的路,但鑑于硬體、生态等各方面的差距,這樣的道路,必定是一條充滿荊棘的長路。