天天看點

【TPU和GPU,誰将一統AI晶片】摩爾定律之後一萬倍,10萬+熱文引爆激辯

正當alphago 與柯潔等一衆中國頂尖圍棋高手在烏鎮激戰正酣之際,計算機體系結構專家王逵在新智元專欄的文章(《cpu和gpu雙低效,摩爾定律之後一萬倍 ——寫于tpu版alphago重出江湖之際》)在專家社群和文章評論區内中引發了熱烈的讨論。

楊靜:關于tpu,這篇閱讀最高,沒有之一。

包雲崗:這是我看過的tpu相關文章中寫得最好的一篇了,目前沒有“之一”

方昊:在一堆抄來抄去alphago文章中難得一見的一股清流。

kuhasu:小夥子寫的非常清晰!我們對沖基金從8年前就開始使用asic進行高頻交易,而asic在交易領域的實際應用,可以追溯到上世紀九十年代後期。

艾娅軒: 體系結構和ai領域的玩家們,不能錯過的原創,非ai硬體技術細節稿卻深入剖析技術内涵。

ljf:一篇文章看懂一個領域

但對于文章認為tpu代表了未來發展方向這一觀點,很多讀者提出了自己的看法。為此,新智元也采訪了原作者王逵博士。

tpu的生态問題

唐杉:我們在一個晶片項目中各個任務需要的投入(cost),其中最大的部分是software,verification和validation。而architecture設計隻占其中的很小一部分。這個比例和目前大多數晶片廠商的人員配置也是基本相符的。形成這種趨勢,是因為現在的晶片往往隻是一個複雜系統中的一部分。晶片設計廠商(或者方案商)提供給客戶的已經遠遠不止晶片本身,而是一套完整的軟硬體解決方案。nvidia在deep learning上的巨大成功,是歸功于它的晶片底層硬體架構,還是它完善的軟硬體生态呢?當然是後者。google之是以敢于和能夠自己設計tpu晶片,是和tensorflow布局和以及data center方面的經驗分不開的。絕大多數deep learning使用者看到的是tensorflow(或者其它訓練架構)和cuda,而不是底層硬體(隻要硬體别太昂貴)。

孫治平:對于一個ai晶片項目來說,考慮整個軟硬體生态,要比底層硬體架構的設計重要得多,最終給使用者提供一個好用的解決方案,才是王道。

朱晶:做ai asic 拿架構說是競争力的可能還是有不小風險,這玩意兒還得看完整生态。

王逵:我非常同意唐杉博士的觀點,生态才是王道。任何一次晶片架構的革命,都和軟體分不開。當年各種risc架構如同雨後春筍般湧現,很重要的推動力就是unix作業系統和c語言編譯器的成熟,有了它們,作業系統和應用程式才能非常低成本地移植到新cpu上。如今各種深度學習的架構就如同unix,xla這樣的中間層表示就如同c語言。它們有了開源的成熟方案之後,專用晶片的生态問題會得到極大的緩解。

通用和專用的問題

陳怡然:(這篇文章)觀點還是很獨特的。不過我覺得tpu本質上其實就是asic,和以前的dsp專用晶片剛開始的出發點類似。如果說不同,可能面臨的商業應用更廣闊。但最後一定會在通用性和性能之間再次平衡。問題的關鍵不在技術本身,在于找到最佳平衡點。

蔣純 :這個asic更準确應該叫dsa吧

周楓:寫得淺顯易懂,對技術介紹得不錯。但是asic最靠譜的結論不同意,更有可能是asic是跑車,滿足特殊需求,gpu才是支援産業的乘用小車,量最大,通用性最好。規模volume這個東西是決定性的,而優勢都在gpu這邊。看今明年intel出招吧。

yubo : asic快于通用處理器是自然的,代價就是應用太過于局限,就通用和性能之間的平衡還是gpu做得比較到位。

qianlong :大家一緻叫好,我來說點不一樣的。asic不是誰想玩就能玩的,google敢玩是受夠了公司後又挖包括patterson等牛人,有大量資金做支撐。另一個原因是投入産出比,對他們來講可以保證自己做完自己用。但是如果給第三方企業用,疊代成本是企業的命脈。買gpu和買asic做ai投入産出比到底誰更好?ai發展這麼快,鬼知道算法會不會半年後就淘汰?專用的一定比通用的快是一定的,但發展前景不好說,體系結構領域很多款抛棄曆史包袱的cpu都失敗了已經說明了這一點。有企業有勇氣做拓路人值得肯定,真心希望能成功!

ahe :神經網絡的進化速度非常快,除了tensorflow還有其它的架構都在進化。相信tensorflow不久就會有新的算法更新。專用的asic tpu能相容嗎?

王逵:專用晶片到底能出多大的量?這個量能不能攤平流片的巨大成本?這是最核心的兩個問題。

首先,我内心裡不認為tpu是asic,更合适的詞是dsa(domain-specific-architecture),前者加速某一項功能,後者加速某一類功能。上篇文章篇幅所限,沒有引入dsa的概念。為了能上到足夠大的量,設計dsa必須要避免“半年後就淘汰”,這就是考驗設計功力的地方。

其次,tpu的确隻能在deeplearning這個市場搶gpu的飯碗,但未來這個市場會非常龐大,甚至超過graphic。當年google用mapreduce引爆大資料,并沒有為此做晶片,後來學術圈也出了不少加速大資料分析的dsa,google完全無視;這次ai火爆,它火速做了dsa,為什麼?就是看到了量。

最後, 做晶片的成本沒有大家想的那麼大,晶片設計的方法學始終在進步。

有一位朋友講他十幾年前在矽谷初創公司的經曆,做世界第一款萬兆網交換晶片,每次asic spin,代價都是幾百萬美金,燒了5億美金産品才最終成熟穩定。如今因為eda工具的發展和設計流程的進化,絕大多數成熟的ic設計企業都可以做到一次成功。加上28/22nm工藝還在持續減價中。其實如今做晶片的門檻在逐漸降低。

tpu的技術細節

ep running : cpu和gpu“低效”的症結并不是什麼新聞,為了“通用”“權衡”不得已而為之,專用晶片比cpu高效也人盡皆知,google做了一款人工智能方面的專用加速晶片和博通一直在推出的專用交換晶片沒有什麼本質差別,為啥會感概?通用核心與存儲接口之間的效率問題還是沒有看到被根本解決呀?除了是一款人工智能晶片外,google真正的突破和革命在哪裡?。

jiakai :并沒有解釋出tpu相對gpu有什麼優勢。後者面臨的計算訪存瓶頸問題前者同樣面臨

王逵:其實文中已經提到了怎麼解決訪存瓶頸問題。因為“tensor的流動非正常整且可預期;計算密度很高,即每個資料都會曆經非常多次的計算”,是以“不對其上運作的數十萬個小程式做限制”是低效的。至于說怎麼做才是高效的,有很多論文都在講,科普小文就不展開了。

tpu和fpga

劉丹丹 : fpga注定淪為炮灰,cpu,gpu壟斷地位搖搖欲墜,是不是很多程式員和fpga工程師工作限制越來越大了……

張佺: 優化是市場需求,革新才是發展王道! 感覺現在國内好多人都在折騰fpga,希望大家能有所覺醒吧!

曉冬:反而覺得fpga的時代早晚會來臨。比如無人駕駛,用gpu的話能接受那種功耗嗎?起碼低碳環保主義者不會買單。無人車不是手機,不會用兩年就換代,從功能更新的角度來看asic又遠不如fpga。如果tpu能夠滿足較低的功耗與較高的靈活性,那恐怕不止nvidia、intel、qualcomm,xilinx也會慌吧。

王逵:隻要有足夠的量,fpga就不如dsa&asic。引用我的一位老師的話:fpga确實頻率低、功耗高。量大asic,量小fpga,不着急asic,快速部署fpga,硬體不變asic,硬體重構fpga。而今已經是,有錢asic,沒錢fpga。

但fpga的價值不能被否定,做fpga非常有前途,例如上文提到的,大資料分析的加速。

熱議:體系結構與工藝設計的關系

謝源:cpu和gpu都是通用架構,而tpu則是針對神經網絡的專用架構,不具有通用性。對于工藝進步(technology scaling)與體系架構(computer architecture)對通用處理器發展曆史上所做的貢獻誰更大的分析,詳細可參斯坦福大學mark horowitz教授團隊的文章“cpu db: recording microprocessor history” 文章連結http://queue.acm.org/detail.cfm?id=2181798

在過去幾十年曆史上,工藝的進步和體系結構的貢獻是基本相同的。是以前面有人提“體系結構的性能提升很有限,你可以通過工藝改進輕輕松松獲得一倍以上的性能提升”,是不對的。而且工藝進步和架構創新是互相影響互相作用的。tpu架構的設計者,norm jouppi,早在1991年就明确在一篇經典文章“computer technology and architecture: an evolving interaction” 中指出了這兩者的關系。(文章連結http://dl.acm.org/citation.cfm?id=125812 ) 。而體系結構的創新也和新應用互相作用互相影響。比如這一波ai的熱潮,很重要的一個因素是cpu/gpu的計算能力的極大提升。同時ai的應用,也推動了針對神經網絡的專用架構的研究,包括tpu這樣的新架構。是以,新工藝,新應用,和新的體系結構,是互相作用互相影響的。兩周前我在chinasys的一個keynote, “technology-drive and application-driven architecture innovation”,就詳細解釋了這樣一個觀點。(連結:http://www.ece.ucsb.edu/~yuanxie/chinasys2017.pdf) 

陳天石:沒有合适的結構和軟硬體間合理的映射,堆再多mac也是空的,效率上不去。這就類似于說,蓋出新的舉世無雙的建築,到底是設計師圖紙重要還是磚塊重要。其實兩者是不能割裂的。沒有這些大師和研發人員,通用處理器根本做不出來。這些漂亮的工作,都是體系結構的貢獻。我不認為有了磚就一定有好的結構。建築為例,不同的設計師做的東西就是不同的。在體系結構領域,通用和專用的讨論每隔一段時間就會交替地熱起來,類似正弦曲線。如果摩爾定理接近終結,正弦曲線可能在專用這塊拉到頂了。所謂應用驅動,并不改變體系結構學科的重要性,改變的僅僅是重視通用還是重視專用。這都是體系結構學科内部細分方向的事情。宏觀看,體系結構在每個時刻都非常重要。

cetc趙華龍hust phd:我不太同意文章中的部分觀點,并非摩爾定律的終結帶來的體系結構的盛宴,當下體系結構的盛宴是由于新的計算業務形式的大規模流行導緻的,是新的ml計算業務模式的風靡才出現了你方唱罷我登場的體系結構大讨論。這與摩爾定律的延續沒有明顯因果關系。

如果不考慮計算業務的實際需求,大可以在機關面積内全部內建計算部件,那樣的理論計算能力更會指數級增長,可是那樣的”倚天長劍"沒有辦法在實際應用裡發揮效力,甚至都無法有效運輸資料給計算部件。是以才會是通用處理器諾大一個cpu,一大堆半導體邏輯都圍着一個alu轉,都為它服務拼命想把它喂飽的現實情況。其實體系結構本身取決于我們實際需要的計算業務模式,神經網絡這類新型計算業務要求的流行與普及才催生了這樣的體系結構出現或新生,如果人類還未曾發現這樣的計算業務對我們有大益處,那也不會有這樣的體系結構,或者說我們不知道建構出這樣的計算能力組織形式有什麼用,那麼度量它的計算能力完成了多少gflops就更沒意義了。而現在有了需求——神經網絡類計算,那這種體系結構及其帶來的gflops計算能力就有了實際意義,就開始出現了所謂類似“一萬倍的增長”,但這種計算能力的所謂增長并非我們在原先的環境下新的發現而出現的增長,而是新的需求使我們的環境發生了變化,才使這樣組織和計量出來的計算能力有了意義。總之,摩爾定律是否延續不與本次盛宴構成因果關系,摩爾定律本身隻能算盛宴的基礎,而且目前來看還遠未被終結。

王逵:我個人的看法是,應用需求總是會不斷湧現的,沒有ai,還會有别的,誰知道是啥,但總會有的。就像比爾蓋茨說的,永遠不要低估軟體的力量。人類的創造力對算力的需求,是不會随着摩爾定律而停息的。當摩爾定律還适用的時候,對于架構,軟體是懶惰的,不想适應新的架構,因為有工藝的免費午餐。但摩爾定律結束了,軟體就不得不考慮适應新的架構,走軟硬結合的路子,才能繼續滿足創造力對算力的需求。

繼續閱讀