2017年4月12日星期三

Google 公布 TPU 細節後,AI 界怎麼看?


作者  | 發布日期 2017 年 04 月 10 日 15:10 分類 Google , GPU , 晶片follow us in feedly
我們對 Google 的 TPU 並不陌生,正是它支撐了 AlphaGo 強大快速的運算力,但 Google 一直未曾披露細節,使 TPU 一直有神祕感。


美國當地時間 4 月 5 日,Google 終於打破沉寂,發表官方部落格,詳細介紹 TPU 各方面。相關論文更配以彩色 TPU 模組框圖、TPU 晶片配置圖、TPU 印製電路等,可謂圖文並茂,稱其為「設計教程」也不為過。不出意料,這之後會湧現一大批仿效者。
論文中還給了 TPU 與其他晶片的效能對比圖,稱「TPU 處理速度比目前 GPU 和 CPU 要快 15 到 30 倍」,有人讚嘆 TPU 的驚人效能,但也有人對此種「比較」表示質疑,因其拿來的比較對象並非市場效能最好的。
這篇論文有哪些亮點?爭議點在哪裡?Google 公布 TPU 細節會對業界產生什麼影響?本文要解答這幾個問題。

Google 為什麼要做 TPU?

這篇論文的主題為:《資料中心的 TPU 效能解析》(In-Datacenter Performance Analysis of a Tensor Processing Unit),共同作者多達 70 人,領銜第一作者是硬體大師 Norman Jouppi。
Jouppi 在接受外媒 Wired 採訪時說,Google 一開始曾經考慮要用 FPGA,但是後來經過實驗發現,這種晶片無法提供理想的速度。
程式化晶片製造費用太高,我們分析認為,FPGA 晶片並不比 GPU 快。
最終,他們將目光放到 ASIC(專屬積體電路,一旦設計製造完成後電路就固定了,無法再改變)上,TPU 就是一種 ASIC。在接受外媒 The Next Platform 採訪時,Jouppi 表示 TPU 可適用現存各種神經網路模型,從影像辨識的 CNN 到語音辨識的 LSTM,都適用。
TPU 跟 CPU 或 GPU 一樣是程式化的。TPU 不是專為某一個神經網路模型設計;TPU 能在多種網路(卷積網路、LSTM 模型和大規模全連線的神經網路模型)上執行 CISC 指令。
Google 已使用 TPU 兩年,應用在各領域工作,包括:Google 影像搜尋(Google Image Search)、Google 照片(Google Photo)、Google 雲視覺 API(Google Cloud Vision API)、Google 翻譯以及 AlphaGo 的圍棋系統中。

TPU 只是一種推理晶片

需要明確說明的是:TPU 是一款推理晶片,並不是用做訓練。根據輝達首席科學家 William J. Dally 的說法,在深度學習領域,主要有 3 種運算方式:
  • 資料中心的訓練(用於訓練模型,電腦往往需要以較高的精確度運算,一般使用 32 位元浮點運算)。
  • 資料中心的推理(在雲端進行即時連續運算,精確度可以適當犧牲,換取更快的速度和更低能耗)。
  • 內嵌式裝置的推理(這類應用的核心是低能耗的 ASICs)。
所以 TPU 針對的,就是第二種運算方式:資料中心的推理。對推理運算而言,重要指標就是快速和低能耗。在 Google 部落格裡,Jouppi 特別強調 TPU 以下效能:
  • 我們產品的人工智慧負載,主要利用神經網路的推理功能,其 TPU 處理速度比目前 GPU 和 CPU 要快 15 到 30 倍。
  • 較之傳統晶片,TPU 也更加節能,功耗效率(TOPS/Watt)提升了 30 到 80 倍。
  • 驅動這些應用神經網路只要求少量程式碼,少得驚人:僅 100~1,500 行。程式碼以 TensorFlow 為基礎。
  • 70 多個作者對這篇文章有貢獻。很多人參與了設計、證實、實施以及配置類似這樣的系統軟硬體。

AI 業界如何看待這篇論文?

亮點:特定場域下的高效率

對於 Google TPU 論文裡的技術特點,雷鋒網採訪了寒武紀科技 CEO 陳天石,他分別從架構、效能和工程 3 個角度,分析這篇論文涉及的技術問題。
並不意外,這款晶片仍然沿用傳統的脈動陣列機架構,也是當今許多深度學習 DSP 採用的架構。事實上,寒武紀團隊成員早期與 Olivier Temam 教授、Paolo Ienne 教授共同發表於 ISCA2015 的 ShiDianNao 學術論文已經討論過這樣的架構,同時 MIT 於 2016 年前後發表的 Eyeriss 也是類似架構。
效能上看,確實透過裁剪運算器寬度(8 位定點)達到非常高的理論峰值,在大多數卷積作業效率很好。但在部分其他類別的神經網路作業上,效率不是太高。
從工程角度看,Google 透過 TPU 專案對深度學習硬體加速做出了有益的嘗試,令人敬佩;未來 Google 一定會持續更新 TPU 架構。寒武紀商用產品最終並沒有走脈動陣列機的技術路線,而是走一條通用智慧處理器之路。我們十分期待未來繼續與國際工業界和學術界同行同台競技。
雖然寒武紀與 Google 分別在硬體方面選了不同的商用形態,但是雙方都從彼此身上學習。陳天石提到 Google 這篇 TPU 文章,參照了寒武紀團隊成員前期發表的 6 篇學術論文,並有專門段落回顧一系列學術工作。
論文中在提到 DaDianNao / PuDianNao / ShiDianNao 時還專門用英文註釋這幾個名字的含義(Big computer, general computer, vision computer),對我們前期學術工作顯示尊重。非常值得驕傲的是,我們早期與 Olivier Temam 教授共同開展的系列開拓性學術工作,已經成為智慧晶片領域參考次數最多的論文。而 Olivier Temam 教授幾年前就已加入 Google。相信他會把 DianNao 家族的學術思想融入 TPU 後續版本,把 TPU 的事業繼續推向新高度。
雷鋒網也採訪了深鑒科技 CEO 姚頌,業界已經對 TPU 文章裡的設計亮點評論頗豐了,姚頌從另一個角度看待這個問題,他認為「TPU 的最大亮點其實是 TPU 這件事本身」。並列計算有很多種架構,如 GPU、FPGA 等,一個公司選擇某個方向有它的深思熟慮。姚頌認為 Google 做 TPU 這件事情本身,其實是展現出一種「直接面對應用需求」姿態,根據最終應用來進行「自訂計算」,而他所在的深鑒科技選擇的,也是類似 Google 這種「自訂化」發展型態。
大家可以很清楚看到 Google 這樣的公司,從最開始使用 CPU 這樣的通用晶片,過渡到 GPU 與 FPGA,再過渡到專屬的 ASIC,來面對應用的需求。沿著這一條發展曲線,不斷提高效能和用戶體驗的同時,也降低整體執行成本。Google 第一次透過 TPU 這個終極形態走完這條發展路徑,其實為其他公司指出一條未來的發展路徑,這個意義超出了 TPU 本身設計的高效性。

爭議:論文裡 TPU 的比較對象

論文裡,TPU 的比較對象是:英特爾 Haswell E5-2699 v3 和輝達 Tesla K80。有人對比較提出異議,因為 Tesla K80 並不是輝達最強最新的晶片產品。
外國網友 jimmy 表示:
Tesla P4 就比 Tesla K80 的效能高出至少 16 倍。Google 拿 TPU 與 5 年前的晶片架構相比,有點狡猾。
網友 Szilárd P 則表示,拿 TPU 跟 Pascal Tesla 比較很荒謬。因為輝達發表 Pascal Tesla 的時間是在 2016 年 9 月,但當時 Google 這篇論文是為了第 44 屆 ISCA(國際計算機架構會議)準備的,論文提交截止日期是 2016 年 11 月,而輝達 Pascal Tesla 正式出貨時間也要等到 10 月,所以 Google 再重新做實驗測試,是不太實際的。但他同時也表示:
Google 不拿 Maxwell M4/M40 來比較,有點說不過去。因為 GM20x 也是 28nm,而且比 K80 效能更強。
針對這一點,陳天石認為如果純粹考慮技術因素,這種比較是否公平要看從什麼角度看:
Google TPU 採用的脈動陣列機架構,在處理卷積的效率上確有其優勢,在效能功耗比方面會顯著勝過 GPU。同時 TPU 是 2016 年以前的產品,與同期 K80 相比,其實不算太不公平。但若僅考慮技術因素,TPU 使用 8 位元運算器,相比之下強調高精度浮點運算的傳統 GPU 會吃虧。
姚頌則從另一個方面對這種「比較」進行解讀,他認為這或許是 Google 一種「韜光養晦」的策略。他表示 Google 通常有了新一代的技術才會公開上一代技術,論文的比較對象沒有採用最新 GPU 晶片,並不是 Google 有意取巧。
其實 TPU 的設計大概 4 年前就開始了,上線實用也有一段時間,在那個時間點,其實還沒有出現 Tesla M40 這樣的 GPU,也沒有出現最新的 Tesla P40 這樣 Pascal 架構的 GPU。

對外:於業界會有什麼影響?會有很多人開始仿效製造嗎?

Google 以論文形式,圖文並茂地將 TPU 的架構、核心部件都說明得清清楚楚,那麼會不會有後來者群起仿效呢?對於這一點,姚頌表示,Google 公布的技術雖然通常不是其最新的研究進展,但也往往非常先進和新穎,肯定會有人仿效,但仿效的話,也只會把自己的起點放在 Google 4 年前的起點罷了。
我想一定會有很多人追著 TPU 的思路設計自己的深度學習晶片,因為 TPU 已經批量在實際業務中應用並展示威力。但是其實,TPU 是 4 年前開始研發的專案,仿效只會把自己的起點放在別人 4 年前的起點。當你做出仿效的產品,很可能 Google 第 3 代 TPU 都已經出來了。並且,TPU 強大的地方不完全在晶片,而是結合 TensorFlow 的軟體生態,這使開發更為簡單──這一點就無法效仿。
業界領先的公司要更看向未來,比如在 TPU 論文中提到「Sparsity will have priority in future designs」,比如 TPU 的硬體與軟體生態一起做,那麼,如何高效支援稀疏性,如何提供讓用戶簡單得到稀疏化神經網路的軟體工具,其實更為重要,這其實也是我們一直在做的。像我們與搜狗合作的語音辨識加速,就是沿著 Sparsity 這條路線更進一步,而本次 TPU 論文也參照了 3 篇深鑒團隊以往論文為未來發展的參照。
而陳天石從架構角度給了另一個看法,他認為與 TPU 類似的方案之前已經存在了。
TPU 在架構面走一條保守但穩健的道路。TPU 架構正式公開前,學術界其實已有一些類似的方案(將脈動陣列機用於處理深度學習)。脈動陣列架構本身是傳統技術,早在 1980 年代初,中科院計算所的夏培肅院士和李國杰院士就曾將脈動陣列架構用於石油勘探。將其用於深度學習,其實是近年來 DSP 和硬體加速領域的舊瓶裝新酒。

總結

從這篇論文裡,Google 的 TPU 細節一覽無遺,然而 TPU 是為了 TensorFlow 自訂的,對一些 AI 晶片廠商來說,或許能從這篇論文裡獲得一些靈感,但一味仿效可能得不償失。
TPU 並不是全能,只是用於資料中心的推理階段。深度學習模型的前期訓練,也還是要依靠高精確度的 GPU。而且 TPU 通用性差,Google 也曾在多種場合表示不會販售 TPU。所以對於輝達一類的通用晶片廠商來說,並沒有直接的競爭威脅。然而,Google 帶頭追求特定領域應用的極致效率,對很多走自訂化路線的 AI 晶片廠商來說,是莫大的鼓舞。
陳天石和姚頌兩位 CEO 各自帶領的 AI 晶片公司,在進行不同種類的 AI 晶片研發和商用工作,寒武紀科技偏通用,深鑒科技偏工業自訂。兩位 CEO 也都彼此惺惺相惜,就像陳天石曾對姚頌說的那樣,這個市場需要多種晶片,有偏通用,也有更專屬更注重特定領域,共同進步的同時未來也一定有機會合作。
如今 AI 晶片產業處在一個「大航海時代」,真正的寶藏,需要更多人開拓。
(本文由 雷鋒網 授權轉載;首圖來源:Google

没有评论:

发表评论