網路巨擘Google日前指出,該公司的Tensor處理器(TPU)在機器學習的測試中,以數量級的效能優勢超越英特爾(Intel)的Xeon處理器和Nvidia的繪圖處理器(GPU)。在一份長達17頁的報告中,Google深入剖析其TPU和測試基準顯示比目前的商用晶片更快至少15倍的速度,並提供更高30倍的效能功耗比(P/W)。

去年五月,Google宣佈其ASIC設計是為了加快各種應用在其資料中心伺服器的推論作業。現在,該公司將在今年6月的一場電腦架構大會中,透過一篇論文首度公開對於此晶片及其效能的深入研究。

這份報告提供了有關加速器與Google多元神經網路工作負載的深度觀察,並建議工程師在此快速成長的領域中投注更多的學習。

曾帶領超過70位工程師團隊設計TPU 的知名硬體工程師Norman P. Jouppi說:「我們希望聘請一些優秀的工程師,並讓他們了解我們正在進行高品質的工作,同時也讓雲端客戶知道我們的實力。」

該計劃的其中一位負責人員是美國加州柏克萊大學(U.C. Berkeley)退休教授David Patterson,他同時也是一位資深的處理器架構師,在日前一場矽谷的工程師聚會中介紹了這份報告。Google還在部落格中發佈Jouppi所撰寫關於此晶片的文章。

如今Google的資料中心仍採用此晶片。不過,關於該晶片使用的範圍與未來計畫加強的部份,Jouppi並不願透露任何細節。

這款40W功率的TPU是一款採用28奈米製程、70MHz時脈運算的晶片,專為加速Google TensorFlow 演算法而設計。其主要的邏輯單元包含65,536個8位元的乘積累加運算單元和24MB快取記憶體,並提供每秒92兆次運算速度。

在2015年採用Google機器學習晶片而進行的測試中,相較於英特爾(Intel)的Haswell伺服器處理器(CPU)和Nvidia的K80繪圖處理器(GPU),採用TPU時的運作速度提高了15到30倍,效能提高了30到80倍。該報告中指出:「TPU的相對增量效能功耗比為41到83——這就是我們為什麼客製化ASIC的原因,它讓TPU比GPU高出25到29倍的的效能功耗比。」

2015年的測試使用了英特爾 22奈米製程的18核心Haswell E5-2699 v3 CPU,其時脈頻率(速度)為2.3GHz,熱設計功耗(TDP)為145W。Nvidia K80 GPU功耗為150W,時脈頻率最高到875MHz。

20170419_TPU_NT01P1 圖1:TPU(星形)在神經網路推論作業的效能超越英特爾Haswell處理器(圓形),以及Nvidia K80(三角形) (來源:Google)

TPU內部揭密

在該報告中提到,TPU所達到的數量級效能優勢,很少有別的廠商能做到,也可能讓TPU成為特定領域架構的原型。預計接下來將會有許多追隨者,而使得標準更為提高。

事實上,TPU的目標不在於提高資料處理量,而是專注於達到7毫秒(ms)的延遲,使專用加速器發揮功效,因此,它捨棄了高吞吐量的多工通用處理器所需的許多元件,而用於執行其他許多任務。

但此ASIC晶片在能耗比的表現上不及英特爾和Nvidia的晶片。在10%的負載狀況下,TPU的最大功率消耗為88%。相形之下,K80在10%負載下消耗66%的功率,而英特爾Haswell的最大功耗為56%。

Google解釋,這是由於僅15個月的設計時程相對較短,使得TPU無法加入許多節能方面的功能。

資料緩衝區約佔TPU的37%,媒體存取控制(MAC)組合佔30%。雖然TPU比起Nvidia GPU的尺寸更小、功耗更低,但其上的MAC數量卻是K80的25倍,晶片上記憶體容量則為其3.5倍。

TPU搭載PCIe Gen3 x16匯流排,並提供256位元的內部資料路徑。主機CPU將加速器視為浮點運算處理器,透過PCIe匯流排傳達指令。

20170419_TPU_NT01P2 圖2:大部份的TPU主要用於處理MAC陣列,以及24MB快取記憶體

TPU使用與GPU加速器相同的Tensorflow軟體,開發人員可維持核心驅動器的穩定,必要時調整使用者空間的驅動程式,以因應不斷改變的應用。

Google發現,持續增加的記憶體頻寬對於效能表現的影響最大。平均來說,加速時脈速度的效益不大,而當MAC擴增到512x512矩陣時,加快時脈速度的效能還將微幅下降。

該報告中指出,從2015年的測試以來,英特爾已經推出14奈米CPU,Nvidia也推出16奈米GPU了。然而,TPU也可能將其外部DDR3記憶體升級到像K80所使用的GDDR5記憶體。

報告中指出:「未來的CPU與GPU在執行推論時將會更快速。採用2015版GPU記憶體而重新設計的TPU將會提高兩倍到三倍的速度,而且比K80高出70倍、比Haswell更高200倍的效能功耗比。」

Google宣稱在英特爾CPU上執行8位元運算相當辛苦。報告中提到:「我們原本只有一款CPU執行8位元運算的結果,因為有效地使用其AVX2整數運算指令,效果提升了3.5倍。」

由於其採用資料處理量為導向的架構,即使是改良過的GPU要達到Google的 7nm延遲目標,仍然充滿挑戰。同時,「這款TPU仍有很大的改進空間,所以這不是一個容易達成的目標。」

20170419_TPU_NT01P3 圖3:ASIC晶片支援PCIe Gen 3 x16匯流排,並搭載DDR3記憶體

開發人員掌握多元化訊息

該報告中提到,研究人員受到熱門的ImageNet比賽吸引,已經變得過於投入卷積神經網路(CNN)。現實世界的應用採用更廣泛的神經網路類型,報告並強調,多層感知(MLP)佔Google AI開發工作的61%。「雖然大部份的架構師一直在加速CNN設計,但這部份只佔5%的工作負載。」

「雖然CNN可能很常見於邊緣裝置,但卷積模型的數量還趕不上資料中心的多層感知(MLP)和長短期記憶體(LSTM)。我們希望架構師盡可能地加速MLP和LSTM設計,這種情況類似於當許多架構師專注於浮點運算效能時,大部份的主流工作負載仍由整數運算主導。」

Jouppi說:「我們已經開始與一些大學合作,擴大提供免費模式。」但他並未透露內容細節。

這篇報告回顧了二十多年來神經網路的相關資料,包括其競爭對手——微軟(Microsoft)基於FPGA的Catapult計畫,加速了網路作業。最初的25W Catapult在200MHz時脈上運作3,926個18位元MAC,並且以200MHz 時脈速度執行5MB記憶體。Google表示,以Verilog語言設計的韌體比起使用TensorFlow軟體來說效率更低。

20170419_TPU_NT01P4 圖4:TPU卡可插入伺服器的SATA插槽上

TPU計劃於2013年開始,當時並以FPGA進行了試驗。該報告中提到:「我們捨棄FPGA,因為我們當時發現它和GPU相比,在效能上不具競爭力,而TPU比起GPU在相同速度或甚至更快的速度下,可以達到更低的功耗。」

儘管二十多年來,神經網路終於在最近從商用市場起飛了。

Jouppi說:「我們所有人都被這蓬勃發展的景象嚇到了,當初並未預期到會有如此大的影響力。一直到五、六年以前,我都還一直抱持懷疑態度…而今訂單開始逐月增加中。」

相較於傳統途徑,深度神經網路(DNN)已經讓語音辨識的錯誤率降低了30%,這是二十年來最大的進步。這讓ImageNet影像辨識競賽中的錯誤率從2011年的26%降至3.5%。

該報告結論還提到,「神經網路加速器存在的理由在於效能,而在其演進過程中,如何達到良好的直覺判斷,目前還為時過早。」

(參考原文:TPU Beat Intel, Nvidia, says Google,by Rick Merritt)