search
金准數據——AI晶元架構的爭論真有意義嗎?

金准數據——AI晶元架構的爭論真有意義嗎?

做了這麼多年晶元,像AI晶元這樣備受關注的情況還是第一次看到。這段時間隨著Volta和TPU2的發布,「GPU好還是TPU好」的爭論又熱了起來,也有很多斷言性的結論。這樣的爭論真的有意義嗎?

我們先看一張圖,它來自RIT的Shaaban教授的計算機體系結構課程,比較各種computing elements。其中,他把GPU,DSP歸為ASP,TPU大概的位置是Co-processor這一類。FPGA則是一種Configurable Hardware。

實際上,今天大家吵的厲害的CPU,GPU,DSP,TPU(第一代採用脈動陣列架構),FPGA這些架構並不新鮮,都是體系結構領域研究多年的內容。除了GPP(General Purpose Processors,通用處理器,或者我們一般意義上說的CPU),這些架構的發明,往往是針對特定應用或者特殊目標的。從這些架構在圖中的分佈可以看出,每個架構都是Trade-off的結果,Computational Efficiency的提高是以犧牲Programmability/Flexibility為代價的。

具體到AI應用,是不是可以說TPU就比GPU好,或者反之呢?

我們不妨再來看另一張圖,它來自International Business Strategies, Inc. (IBS)2014年發布的報告 "Strategies in Optimizing Market Positions for Semiconductor Vendors Based on IP Leverage"。它說明的是在主流的晶元設計中,隨著工藝節點的演進,設計成本變化的趨勢和分佈(不包括生產成本)。

從這裡不難看出,我們在一個晶元項目中各個任務需要的投入(cost)。顯然,其中最大的部分是Software,Verification和Validation。而Architecture設計只佔其中的很小一部分。這個比例和目前大多數晶元廠商的人員配置也是基本相符的。形成這種趨勢,是因為現在的晶元往往只是一個複雜系統中的一部分。晶元設計廠商(或者方案商)提供給客戶的已經遠遠不止晶元本身,而是一套完整的軟硬體解決方案。Nvidia在Deep learning上的巨大成功,是歸功於它的晶元底層硬體架構,還是它完善的軟硬體生態呢?當然是後者。Google之所以敢於和能夠自己設計TPU晶元,是和Tensorflow布局和以及data center方面的經驗分不開的。絕大多數deep learning用戶看到的是Tensorflow(或者其它訓練框架)和CUDA,而不是底層硬體(只要硬體別太昂貴)。

由於目前的計算系統,比如說Deep Learning的系統,是一個相當複雜的軟硬體系統。要公平的對比不同的晶元硬體架構反映到最終應用層面上的優劣,是一件非常困難的事情。從不同的角度或者立場出發,大家可能會看到完全不同的結果。此處想起前段時間的段子,「拳擊跟太極談實戰,太極跟拳擊談歷史;空手道跟太極談實戰,太極跟空手道談武德;柔術跟太極談實戰,太極跟柔術談觀賞;泰拳跟太極談實戰,太極跟泰拳談養生;瑜伽跟太極談養生,太極『來,我們談談實戰。』 」真不是黑太極,不過如果大家可以直接「對戰」,也就沒有打嘴仗的必要了。

決定我們的AI晶元是否成功的因素到底是什麼?僅僅是因為你選擇了Nvidia GPU採用的硬體架構或者是Google TPU的脈動陣列架構嗎?還是你發明了一種新的架構?當然不是。架構的選擇和設計應該服務於整個系統和項目,需要對很多因素做Trade-off和Optimiztion。從技術角度來看,如果把一個晶元應用分成,演算法/軟體,硬體架構,電路實現,幾個從高到低的基本層次。那麼高層次上的優化,對於整個系統的效果往往比低層次高一個數量級。(當然,這是個一般經驗,針對不同類型的項目會有一定差異)很多時候,這種Trade-off甚至都不是技術本身的問題。比如,Google在晶元設計上的實力和Nvidia相比相差很遠,從硬體相對簡單的脈動陣列做起就是個比較自然的選擇。而在Google TPU的論文里也明確提到,由於項目時間比較緊,很多優化也只能放棄(Google TPU 揭密)。

「Under The Hood Of Google』s TPU2 Machine Learning Clusters」,這篇文章對Google TPU2現有的信息做了非常深入的分析,作者從Google提供的僅有的幾張照片中發掘出大量信息(建議大家點擊本文最後的查看原文好好看看)。其中有這樣的描述:

「This tight coupling of TPU2 accelerators to processors is much different than the 4:1 to 6:1 ratios typical for GPU accelerators in deep learning training tasks. The low 2:1 ratio suggests that Google kept the design philosophy used in the original TPU: 「the TPU is closer in spirit to an FPU (floating-point unit) coprocessor than it is to a GPU.」 The processor is still doing a lot of work in Google』s TPU2 architecture, but it is offloading all its matrix math to the TPU2.」

也就是說TPU2和GPU相比,它更像是coprocessor,需要更多的依賴CPU這樣的通用處理器。這也是Google的Trade-off之一。從這篇文章還可以看出,Goolge在Data center領域的經驗,讓它可以用很多板級設計和系統級設計優化來彌補晶元設計能力的欠缺。

另一方面,硬體架構是取得競爭優勢的門檻嗎?

還是那句話,體系結構的研究已經很成熟了,創新很難,想做別人做不了的東西基本不可能。Nvidia最新的GPU中,增加了Tensor Core(Nvidia Volta - 架構看點),而在面向自動駕駛的Xavier SoC中,設計了專門的硬體加速器DLA(Deep Learning Accelerator)(從Nvidia開源深度學習加速器說起)。Google TPU2中為了同時實現training(第一代TPU只支持inference),增加了對浮點數的支持。雖然目前看不到細節,但可以猜想它的架構也相對第一代TPU的簡單的脈動陣列(脈動陣列 - 因Google TPU獲得新生)做了很大改進。可以看出,在口水戰的同時,他們也在相互借鑒對方的優勢。而對於一個成熟團隊來說,硬體架構上的改進並不是很大的困難。更大的風險在於硬體架構的改動對軟硬體生態的影響(又是一個trad-off)。

「Under The Hood Of Google』s TPU2 Machine Learning Clusters」,這篇文章最後這樣說:

「There is not enough information yet about Google』s TPU2 stamp behavior to reliably compare it to merchant accelerator products like Nvidia』s new 「Volta」 generation. The architectures are simply too different to compare without benchmarking both architectures on the same task. Comparing peak FP16 performance is like comparing the performance of two PCs with different processor, memory, storage, and graphics options based solely on the frequency of the processor.」

「That said, we believe the real contest is not at the chip level. The challenge is scaling out compute accelerators to exascale proportions. Nvidia is taking its first steps with NVLink and pursuing greater accelerator independence from the processor. Nvidia is growing its software infrastructure and workload base up from single GPUs to clusters of GPUs.」

Google chose to scale out its original TPU as a coprocessor directly linked to a processor. The TPU2 can also scale out as a direct 2:1 accelerator for processors. However, the TPU2 hyper-mesh programming model doesn』t appear to have a workload that can scale well. Yet. Google is looking for third-party help to find workloads that scale with TPU2 architecture.」

對於Data center的training和inference系統來說,競爭已經不是在單一晶元的層面了,而是看能否擴展到exascale的問題(exaFLOPS,10的18次方)。而和TPU2的同時發布TensorFlow Research Cloud (TFRC),對於發展TPU2的應用和生態,才是更為關鍵的動作。大家可以順便看看這次Google展示的板級和機架的照片。

對於一個AI晶元項目來說,考慮整個軟硬體生態,要比底層硬體架構的設計重要的多。最終給用戶提供一個好用的解決方案,才是王道。

而對於看熱鬧的我們,也許站的遠一點,可以看到更多有價值的東西,爭論也才更有意義。

熱門推薦

本文由 一點資訊 提供 原文連結

一點資訊
寫了5860316篇文章,獲得23299次喜歡
留言回覆
回覆
精彩推薦