Google為了進一步強化機器學習能力,已私下研發專用的張量處理器(Tensor Processing Unit, TPU)數年,並在2016年首度亮相,但當時並未透露太多細節。近期Google終於再提供更深入的資訊,公布一份長達17頁的測試報告,指出自家研發的TPU效能已達到繪圖處理器(GPU)及中央處理器(CPU)的15及30倍,在機器學習測試中更優於英特爾(Intel)的Xeon處理器以及NVIDIA的GPU。
Google表示,此款TPU採用28奈米製程,工作頻率為700MHz。原先設計目的在於加速自家的TensorFlow演算法,主要的邏輯單元內含65,536組八位元的乘積累加(Multiply-accumulate)單元以及一組24MByte的快取,每秒可進行92兆次運算(Tera-operations/second)。
Google TPU的負載以高級TensorFlow框架編寫,可支援多層感知(Multilayer Perceptron, MLP)、卷積神經網路(Convolutional Neural Network, CNN)和長短期記憶(Long-Short Term Memory, LSTM)等人工智慧技術,這些技術占資料中心95%的神經網路推理計算需求。
平均而言,相較於使用Intel Haswell CPU與NVIDIA K80 GPU的系統,Google的TPU大約快上15~30倍,每瓦效能比(Performance/watt)更可達到30~80倍以上。此外,如果在TPU中使用GPU的GDDR5記憶體,處理速度還能再翻三倍,速度/功率比(TOPS/Watt)能達到GPU的70倍以及CPU的200倍。
資料緩衝區(Data Buffer)佔了此款TPU的37%,而媒體存取控制(Media Access Control, MAC)則佔了其中的30%。相較於NVIDIA的GPU,Google TPU的尺寸較小,卻多出25倍的MAC,晶片內建的記憶體也比K80多出3.5倍。
Google TPU使用PCIe Gen3x16匯流排,以及256Bytes內部資料路徑。主CPU將加速器作為浮點處理器(Floating Point Processor),透過PCIe匯流排下達指令。此款TPU也運用和GPU加速器相同的Tensorflow軟體。研發人員固定一組核心驅動程式,並依照需求調整使用者空間(User Space)驅動程式,以容納不斷變化的應用程式。
Google TPU目標不在於更高吞吐量(Throughput),因而捨棄傳統多功能處理器的許多元素,聚焦於將延遲時間壓低在7毫秒之下。不過,Google自行研發的TPU也不是毫無缺點,其運算效能雖然優於英特爾和NVIDIA的處理器,但在輕載時的省電性能卻不太理想。舉例來說,同樣在10%的負載條件之下,NVIDIA K80 GPU的功耗是其最大功耗的66%,英特爾的Haswell處理器則是56%,但Google TPU卻仍高達88%。Google也回應,由於只有短短15個月的設計時程,因此並未能將低功耗納入此晶片設計的重點。
此次公布的報告指出,此款TPU所帶來的數量級效能突破相當罕見,可望成為特定領域架構的原型,為未來新研發的處理器樹立更高標準。但目前該TPU只使用於Google的資料中心,尚未進一步公布未來運用細節或是改善方向。