上周寫過輝達晶片其實主要應於訓練而非應用人工智能(AI)模型。今周談談他們為何能幾乎獨佔了巿場。人工智能背後就是平行運算。假設家裡的洗衣機最多能洗20件衣服,要洗60件衣服就要分三次。但如果擁有3部洗衣機,就可以同時開動3部洗衣機,只需要一次時間就能洗完60件衣服。換成電腦系統,只要某類運算可以分拆成數份,就可以用幾個晶片一起運算,大量縮短實際所需時間。
這個概念二十餘年前開始落實。在大學,筆者也有香港人師兄研究這類「人狼系統」,當年將十餘部舊電腦連接起來一起工作。當時候還有傳言可以將幾百部遊戲機連接,總運算力可以挑戰當年的超級電腦。擁有大量類似又可以分析的數據,第一個應用作業就是電腦繪圖,所以平行運算首先成就的就是由《反斗奇兵》開始的動畫片。輝達的主要生意一直是繪製圖片,就給了他們二十年處理平行運算的經驗。
到了今天,最普通的白領文書電腦也有四核、八核,就證明了平行運算已經完全融入日常生活之中。但在一變二、二變四幾次之下,今時今日早已變成了好幾十萬個電腦核一起平行運算,才能挑戰人工智能等尖端作業。當然,同時管理幾十萬個電腦核,自然出現了新問題。
回到上面的例子,將60件衣服分成3份,再逐份放入洗衣機,也許需要10分鐘時間。衣服洗好後,又要幾分鐘拿出衣服,洗衣機才能處理下一次洗衣。如果洗衣機數目再增加,就要更多時間分配、運入、拿出衣服。到了最極端的情況,這些工序所需時間跟洗衣機本身操作時間一樣,那麼再加洗衣機也不可能提升速度。
整個現代工業系統都建基於模組制度,任何設計都盡量採用外來組件,以降低自己的設計和生產複雜度。電腦運算核和記憶體也一直是兩塊晶片,靠電路板連接和溝通,因此向運算核輸入和輸出數據這兩個工序,就一直非由運算核生產商自己掌控。到了人工智能年代,這就變成了瓶頸:特斯拉在兩年前第二次AI日就討論到,實際操作時候,運算核有九成時候是在等待新資料或完成資料尚未輸出,未能處理新作業,因此閒置了。
要解決這個問題,自然就要將記憶體和溝通模組也納入整體設計,增加運算核的整體運作率。因此,無論是輝達的H100,還是特斯拉的Dojo,雖然還稱之為晶片,但實際上都是幾呎乘以幾呎的電腦。一個6高,體積大如雪櫃的電腦架,也只能容納兩「塊」這樣的晶片。科技七雄願意高價搶這些晶片,就是因為這一刻就只有H100解決了這個資料輸入輸出的問題。
這個優勢能否繼續,在乎於科技七雄是否願意投資另建爐灶。上周寫過,人工智能分有訓練和應用,而大部分應用都未必需要直接使用H100一類晶片,所以科技七雄也許會寧願花精神到應用系統。蘋果採用谷歌的新晶片,將終端人工智能系統加入旗下手機就是例子。
但是輝達獨佔了H100系統,也主導了整個人工智能發展。如編寫相關程式,幾乎一定要用輝達提供的CUDA語言。久而久之,其他企業就脫離不了輝達提供的生態。所以,一旦出現了有效的競爭者,就算效果稍遜,其他企業亦大有可能以分散供應商為由,願意購買非輝達的晶片了。