【拓墣觀點】除了圍棋人機世紀對決,Google 還點燃 AI TPU、GPU 大戰盤算為何?

作者 | 發布日期 2017 年 05 月 25 日 16:55 | 分類 AI 人工智慧 , GPU , 尖端科技 follow us in feedly

時隔一年,AlphaGO 打敗世界排名第一圍棋高手柯潔,再度完勝人類棋士!

AlphaGO 背後致勝關鍵 TPU 同樣吸引世人目光。這次與柯潔的對弈,AlphaGO 跟著升級,導入近日甫在 I/O 大會亮相的第二代 TPU,也再一次引發科技業一波對於「Google 第二代 TPU,究竟會為 Nvidia 帶來多大威脅?」的熱烈討論。



AlphaGO 在 2016 年初打敗南韓圍棋九段高手李在乭一戰成名,時隔幾個月,AlphaGO 的幕後推手 Google 在 I/O 大會首度揭露背後致勝的關鍵──自家機器學習晶片 TPU(Tensor Processing Unit)。然直到今年 6 月 Google 才正式公開設計架構與相關細節,Google 官方稱「TPU 處理速度比當前 GPU、CPU 要快 15~30 倍」,除了引起不少關注,更引發了一波與 Nvidia 的口水戰,甚至讓 Nvidia CEO 黃仁勳親自發文反擊,並貼出 TPU 與自家 GPU 加速器 Tesla P40 性能比較。

(Source:Nvidia

究竟 TPU 能不能像外界所言「打敗」GPU、CPU,我們先來了解 TPU 到底是什麼?

Google 公開 TPU 之時,透露 TPU 為特殊應用積體電路(application-specific integrated circuit,ASIC),專為特定用途而設計、運用以執行單一工作,本質上與通用的 CPU、GPU 有很大不同,而且最終還是會運用到 CPU / GPU 的運算輔助。只能說 TPU 在人工智慧的運用,與 CPU、GPU 有所重疊,而 TPU 將此重疊部分效率做到極大化。

人工智慧的最終目標要讓電腦模擬人腦的智慧,並據此做出決策完成任務。近年來人工智慧有長足進步,機器學習的發展功不可沒。簡單來說,機器學習的原理,是餵給電腦大量的資料,進行學習,進而得出規律,利用這些規律對未知資料預測。

機器學習運算可能需要經過數百萬次的計算,原本針對圖像處理、使用平行運算一次處理大量數據,完成圖形渲染的 GPU,在架構上顯然比快速處理各種通用應用程式的 CPU ,更適合做為機器學習晶片。GPU 為何能在 AI 領域趁勢而起,就是立基於平行運算能力。

這點不只 GPU,Google TPU 選擇的 ASIC,甚或 FPGA 都能做到平行運算,也使得機器學習晶片百花齊放,各家大廠透過不同的途徑發展 AI 晶片。

Google、Nvidia、英特爾、微軟都大動作布局 AI 晶片

大抵而言,可將機器學習分為「訓練」與「推論」兩大面向,「訓練」需要運用大量的運算資源,且需要精確度較高的計算,一般要達到 32 位元的單精度浮點運算、甚至 64 位元的雙精度浮點運算。目前 GPU 仍為市場上最被廣為接受的解決方案。

「推論」的應用則更強調與現實世界的互動,為了優化晶片反應的速度與達到低功耗,允許精度被部分犧牲。如 Google TPU 採用 int8 只使用八位元整數運算,因此 Google 的 TPU 實為用於機器學習的「推論」。Nvidia 也在 2016 年的產品線中推出以 int8 為主的 P4 與 P40的產品。目前理論上,使用 int8 在推論中造成的精度損失,估計約在  2% 以內,也使得 int8 甚至更低位元的解決方案,在市場上快速展開。

然而,不論是在推論時使用 Google 的 TPU、Nvidia 的 GPU、或如手機晶片中加強 DSP 的功能,甚至是採用更原始的比較器達到推論的效果。單以晶片本身運算的能力進行評論,仍有不足之處。如何能使業者在最佳的建置成本下,提供消費者最好的服務品質才是關鍵。在推論應用如此,在學習的過程中也是。

如同於 Google 依照自資料中心在 AI 的使用情境,客製化晶片來提供服務。微軟則是選擇和晶片業者合作打造一個適合自身資料中心屬性的系統架構。除了 GPU 的方案外,微軟也和 Intel 合作,透過 FPGA 作為運算的加速度器,利用 FPGA 可編程的特性,意圖打造可靈活配置資源的資料中心,來滿足其長期以來累積出在不同領域的企業客戶對資料中心多元的應用需求。

(Source:拓墣研究院)

Google 為什麼決定自行打造 TPU

看完上述各家切入市場的策略,再回過頭來看 Google 的布局。Google 之所以決定自行開發 TPU 晶片,其時空背景是在於,Google 發現既有的繪圖處理器或處理器在進行資料搬運時,也就是處理器與繪圖處理器,與記憶體之間的資料搬運工作效率太低。

效率太差所帶來的,恐怕就是拖垮整體系統效能,當然,Google 也可以選擇塞進更多核心的處理器或是繪圖處理器提升效能,但就面臨到耗電量過高的問題。也因此,Google 才決定自行開發設計 TPU,並且在設計 TPU 時,減少計算所需要的精確度來達到省電與每秒執行更多的指令,解決推論系統效率不彰的問題,並且達成最佳化運算、記憶、資訊傳遞三者間關係的目標。

Google 自行打造 TPU 晶片除了是為優化自家演算法及發展 AI 服務外,他過去也明確說明 TPU 晶片將僅限自家所用,並不對外販售。事實上,Google 才在上周的 I/O 大會中明確表示,不同的服務設計需求本來就需要不同硬體架構對應最佳訓練效果,開發者依舊可以透過傳統的 CPU 與 GPU 構成合適的訓練模式。

IC 設計業者未必被取代,經濟規模仍扮演關鍵角色

看完 Google 為什麼會走上自行開發 TPU 晶片的前情提要,回到 Google 與 IC 設計業者的競爭問題。

Google 因為是全球前三大的 CSP 業者,有資金、有軟體與設計技術、有需求,客群以及廣大影響力,一舉一動不只是受到關注,甚至牽動 IC 設計業者的神經。

而現階段由於過去傳統晶片運作效率不佳,連帶使得不同晶片架構有更多的發展機會與空間。Google 因為擁有第一手資料,包含使用者的需求量、使用的演算法等,具有了解相關應用所需的運算型態優勢,因此可以先於 IC 設計業者進行布局。包含 2017 年推出的 Cloud TPU 產品用於機械學習的學習應用中,更進一步加深 Google 與 GPU 業者競爭的氛圍。

然而,Google 自行開發晶片並非意味著就將完全取代原有 IC 設計業者, 若將單一運算效能的優化與系統配置彈性視為一個頻譜的兩端,ASIC、DSP、GPU、FPGA 等解決方案,就是分落在頻譜上不同的位置。不具有像 Google、Apple 等系統業者經濟規模的廠商,考量到自行開發晶片的成本與效益,與 IC 設計廠商合作,選擇能最快將服務推出的解決方案,仍是大部分廠商最好的選擇。


拓墣產業研究院隸屬於集邦科技,是最前端的科技調研組織,以新興科技推廣為己任,如果對更多人工智慧相關主題有興趣,可參考拓墣最新相關資訊:拓墣產業研究院「人工智慧相關報告」。

(首圖來源:Google)