隨著機器學習越來越多地進入社會的每一個角落,相應的訓練任務也成為了云端數(shù)據(jù)中心最關鍵的運算負載之一,同時這也推動了半導體相關芯片市場的蓬勃發(fā)展。在云端訓練芯片領域,雖然一直有不同的挑戰(zhàn)者,但是Nvidia一直保持著龍頭的位置。從2012年深度學習復興,依靠Nvidia GPU的CUDA生態(tài)成功克服訓練效率難題并成功掀起這一代人工智能潮流之后,Nvidia的GPU一直是訓練市場的首選芯片。
上周MLperf公布的最新訓練榜單也再次印證了Nvidia的穩(wěn)固地位。MLPerf是由機器學習業(yè)界的行業(yè)組織ML Commons牽頭做的標準榜單,其中訓練榜單的具體測評方法是ML Commons提供一些業(yè)界最流行的機器學習模型的訓練任務,而不同的機構會自行去使用不同的處理器和AI加速芯片配合相應的軟件框架去搭建系統(tǒng)執(zhí)行這些訓練任務,并且將結果提交到MLPerf來匯總和公布。每過一段時間,該榜單都會更新一次以包括新的芯片以及新的訓練任務。在最新的6月29日公布的MLPerf訓練2.0版本的結果中,Nvidia的領先地位可以從榜單中的兩個地方看出:
首先是使用Nvidia GPU提交結果的數(shù)量。在這次MLPerf的最新訓練榜單中,絕大多數(shù)(90%以上)機構提交的訓練結果都是基于Nvidia的GPU做訓練加速,而如果再仔細看結果,會發(fā)現(xiàn)Nvidia的GPU是和不同的機器學習訓練框架兼容性最好的。例如,Google、Intel和GraphCore都上傳了使用非Nvidia GPU的結果(Google使用TPU v4,Intel使用Habana Gaudi芯片,而Graphcore使用Bow IPU),但是這些競爭芯片對于深度學習框架支持的廣度都不及Nvidia——基本上所有深度學習框架都會支持Nvidia的GPU,但是支持其他芯片的深度學習框架種類則有限。這也從一個角度說明了Nvidia在生態(tài)上的領先。
其次是性能上的比較。值得注意的是,本次絕大多數(shù)機構提交的基于Nvidia GPU的結果都是基于Nvidia A100 GPU,換句話說這已經是兩年前的芯片的結果了(Nvidia官方宣布基于下一代GPU H100的結果將會在下一次MLPerf榜單更新時提交),但是其結果仍然很有競爭力,相較于其他更新的芯片的結果并不遑多讓。例如,相比最新的Google TPUv4,在大規(guī)模語言模型預訓練(BERT)任務上,同樣使用4096張加速卡TPU v4需要的時間是0.179分鐘,而Nvidia A100需要的時間是0.206分鐘,相差并不大。相比Intel Habana Gaudi2,同樣使用8張加速卡Nvidia A100 的BERT訓練結果是17.624分鐘,而Habana Gaudi2需要的時間是17.209分鐘。相比Graphcore Bow IPU,在BERT任務上128張A100的訓練時間是2.655分鐘,而Bow IPU需要4.415分鐘。在一些物體識別任務中,Habana Gaudi2的性能確實強于A100,但是這樣的優(yōu)勢在Nvidia H100發(fā)布后是否還能保持還有很大的不確定性。
Nvidia的軟硬件生態(tài)是關鍵護城河
如前所述,Nvidia目前仍然在機器學習訓練市場可以說是獨孤求敗,并沒有受到強大的挑戰(zhàn)。我們認為,這得益于Nvidia在芯片和軟件方面的全面能力,而這從另一個角度又與人工智能芯片發(fā)展的規(guī)律相得益彰。
首先,人工智能的發(fā)展規(guī)律中,人工智能模型始終和相關的加速硬件一起發(fā)展,也正因為這個原因,有能力掌握軟硬件協(xié)同設計的公司將會有巨大的優(yōu)勢。即使單從芯片設計的角度來看,人工智能加速芯片中的架構設計也是極其重要,從性能提升角度比芯片的半導體工藝要更重要。
縱觀MLPerf公布的榜單,從第一個榜單公布到現(xiàn)在的時間周期內,摩爾定律主導的芯片性能(時鐘頻率)提升約為四倍,但是芯片對機器學習任務的處理能力卻增強了四十倍,由此可見芯片架構以及軟硬件協(xié)同設計恰恰是人工智能加速芯片的核心要素,而半導體工藝提升只是一個輔助因素。在這個領域,Nvidia確實具有巨大的優(yōu)勢,因為Nvidia在擁有強大的芯片架構設計團隊來為人工智能模型設計芯片架構的同時,也擁有很強的軟件團隊來優(yōu)化在芯片上的人工智能模型運行效率,兩者相結合確實威力無窮。
縱觀Nvidia針對機器學習的GPU設計,其軟硬件協(xié)同設計的思路可以說是一以貫之;在深度學習還未成為主流的時候,Nvidia就相當具有前瞻性地大力投入CUDA通用計算(包括軟件架構以及相應的芯片架構支持)讓GPU在曾經CPU一統(tǒng)天下高性能計算領域的打出一片天,而在深度學習成為主流之后,Nvidia的做法并非一味暴力增強算力,而是通過有針對性地優(yōu)化來以最佳的效率提升性能,其中的例子包括支持混合精度訓練和推理,對于INT8的大力支持,在GPU中加入Tensor Core來提升卷積計算能力,以及最新的在H100 GPU中加入Transformer Engine來提升相關模型的性能。這些投入都包括了軟件和芯片架構上的協(xié)同設計,而同時也收到了很好的回報,使得Nvidia能使用最小的代價(芯片面積,功耗)來保持性能的領先。
時至今日,Nvidia的GPU架構已經能在通用性(即對于各種模型算子的支持)和效率(即對于重要模型算子的運行效率)上獲得了很好的平衡,因此即使在“GPU架構并不是最適合機器學習模型加速”的觀點盛行多年后,Nvidia的GPU仍然是機器學習訓練市場的最優(yōu)選擇——因為其他的加速芯片對于某些算子做專用優(yōu)化之后往往通用性無法顧及,而通用型的加速芯片則很難與擁有巨大系統(tǒng)團隊支持的Nvidia設計的GPU性能相抗衡。
在性能領先之外,Nvidia在軟件生態(tài)上也擁有很高的護城河。如前所述,Nvidia的芯片架構能夠在通用性和效率之間實現(xiàn)一個很好的平衡,而在這個基礎上,一套易用且能充分調動芯片架構潛力的軟件生態(tài)則會讓Nvidia在機器學習模型社區(qū)擁有巨大的影響力——這使得模型設計者在設計模型時將會自發(fā)針對Nvidia的GPU做模型優(yōu)化,從而更進一步提高Nvidia的競爭力。Nvidia擁有CUDA這樣成熟而性能良好的底層軟件架構,因此目前幾乎所有的深度學習訓練和推理框架都把對于Nvidia GPU的支持和優(yōu)化作為必備的目標,相比較而言對于其他競爭芯片來說,軟件生態(tài)方面的支持就少得多了(例如對于Google TPU的主要生態(tài)支持來自Google自己的TensorFlow,然而TensorFlow目前在人工智能社區(qū)使用人數(shù)正在慢慢落后于Pytorch,這也成為TPU在生態(tài)上的一個瓶頸),這也成為了Nvidia GPU的一大護城河。
未來的市場格局會如何發(fā)生變化?
目前Nvidia在人工智能訓練市場的領先地位仍然非常穩(wěn)固,但是隨著挑戰(zhàn)者的出現(xiàn),在未來市場格局有可能會出現(xiàn)變化。我們認為,可以把競品分成幾類,而不同的競品也將會有不同的市場格局影響。
第一類是科技公司自研芯片:他們走和Nvidia相似的路線(即軟硬件結合設計),通過調動自身對于人工智能模型的深入理解,來實現(xiàn)有競爭力的芯片。另一方面,這類芯片通常不需要在生態(tài)方面與Nvidia競爭,因為其主要的客戶就是這些科技公司自己,因此從市場格局上來說會部分減少這些公司對于Nvidia的依賴度,但是總體來說并不會對Nvidia直接競爭。典型的例子是Google的TPU系列,Google本身對于人工智能的研發(fā)能力甚至比Nvidia更強,那么通過這樣的積累結合軟硬件協(xié)同設計就能實現(xiàn)性能很強的自研芯片,但是這樣的芯片并不會對外出售也不會在市場上和Nvidia正面競爭,因此對市場格局影響不大。
第二類是在芯片架構設計上做出和Nvidia不同的取舍,從而在某些模型中實現(xiàn)超過Nvidia的性能(包括運行速度,功耗,能效比等),從而和Nvidia實現(xiàn)差異化競爭。Intel Habana和Graphcore都是屬于這類思路,他們的芯片在一些重要模型類型中有相對Nvidia更高的性能或效率,從而隨著這些模型相關算力需求增大,也有更多理由來使用這些芯片。這些芯片將會在模型運行效率的維度(而非通用平均性能)和Nvidia有競爭,但是也不太可能顛覆Nvidia。
第三類是直接復制Nvidia的整個技術鏈條,和Nvidia打白刃戰(zhàn),并通過實打實的全方位性能和性價比等因素來獲得市場。這樣做的公司主要是AMD,目前AMD的MI系列高性能計算GPU雖然還沒有獲得廣泛應用,在這次MLPerf上也沒有相關的結果,但是事實上整體高性能計算和云端計算市場對于這類Nvidia的替代性產品有很強的需求,因為Nvidia成為該領域的單一供應商將會對供應鏈造成風險,同時也降低系統(tǒng)公司的議價能力。AMD在該領域的努力正在慢慢獲得業(yè)界的支持,在主流深度學習框架(例如PyTorch)已經加入了對于AMD系列GPU后端的支持,而相信云端計算廠商也在逐漸增加基于AMD GPU機器學習系統(tǒng)的投入。我們認為,AMD可能會是該領域對于Nvidia的最有力競爭對手,也最有可能獲得較大的市場份額。