歡迎關注“創(chuàng)事記”的微信訂閱號:sinachuangshiji
文/夏乙 問耕
來源:量子位(ID:QbitAI)
我們錯了。
今天凌晨,Google I/O 2018大會最后一日,前不久剛剛獲得年度圖靈獎的Alphabet新任董事長John Hennessy登上舞臺。
原本以為這是一次例行公事的演講。只是簡單講講責任、做做科普等等。沒想到,曾經(jīng)的斯坦福校長Hennessy毫不打官腔。(他比上一版Alphabet董事長有趣太多)
聽完之后,我們久久不能平靜。
Hennessy一開場就花了大量的時間,仔細講解了計算領域的發(fā)展、現(xiàn)狀和困境,以及未來可能的突破方向等。句句干貨。
當然亦有激動人心的情懷抒發(fā)。
比如,這位已經(jīng)65歲的宗師泰斗說:你們可能不信,我搭建自己的第一臺電腦,已經(jīng)是幾乎50年前的事了。
Hennessy說這五十年來,他親眼目睹著不可思議的IT產(chǎn)業(yè),上演一波又一波的革命,互聯(lián)網(wǎng)、芯片、智能手機、電腦……展現(xiàn)著各自的魔力。但仍有一件事,他認為將會真正改變我們的生活。
“那就是機器學習和人工智能領域的突破。”
“人們投入這個領域的研究已經(jīng)50年了。終于,終于,我們?nèi)〉昧送黄。為了實現(xiàn)這個突破,我們所需要的基本計算能力,是之前設想的100萬倍。但最終我們還是做到了!
他說:這是一場革命,將會改變世界。
然后更震撼的一幕上演。
相信很多人已經(jīng)見識過Google Duplex。就是前兩天在Google I/O 2018大會首日,Google CEO展示的那個對話AI。
能夠在真實的環(huán)境下,打電話給美發(fā)店、餐館預約服務和座位。全程流暢交流,完美應對不知情的人類接線員?纯聪旅孢@段視頻,再感受下Google的AI黑科技。
Google Duplex一出,所有人都炸了。效果拔群的好。坊間觀眾們緩過神來一想:Google演示的這個AI,難不成就是通過了圖靈測試?
沒錯,Alphabet董事長John Hennessy今天終于親口承認:“在預約領域,這個AI已經(jīng)通過了圖靈測試!
“這是一個非凡的突破!
他進一步補充說,雖然這個AI不是在所有情境下取得突破,但仍然指明了未來的道路。
1950年,圖靈發(fā)表了一篇劃時代的論文,預言人類能創(chuàng)造出具備真正智能的機器。他還提出了著名的圖靈測試:如果一臺機器能與人類展開對話(通過電傳設備)而不被識別出身份,那么這臺機器就具有智能。
通過圖靈測試,意味著機器可以思考。
△ 圖靈當年的驚世論文
了不起,再次為Google打Call(以及希望可以是AI接聽)。
在演講中,John Hennessy還問全場:有一件事,現(xiàn)在還能按照摩爾定律的速度快速增長,你們猜是什么?
答案是:機器學習論文的數(shù)量。
說完這個,全場都大笑起來。(感謝Jeff Dean、Dave Patterson、Cliff Young等貢獻的數(shù)據(jù)。)
他還講解了TPU的內(nèi)部結(jié)構(gòu)。下面有詳細闡述。
那么,今天我們滿懷敬意和激動發(fā)出這篇推送。我們覺得可以把這篇稱為:《Alphabet董事長在山景城科技座談會上的講話》。
Hennessy講話脫水全文如下,還沒出版單行本。
講話脫水全文
今天我要講一講,未來40年我們在計算領域?qū)⒚媾R的最大挑戰(zhàn)是什么,但這同時也是一個巨大的機遇,讓我們重新思考該如何構(gòu)建計算機。
現(xiàn)在流行談摩爾定律的終結(jié),高登·摩爾自己曾經(jīng)跟我說過:所有指數(shù)都會終結(jié),只是遲早的問題。摩爾定律所遇到的正是這樣的自然規(guī)律。
摩爾定律終結(jié)意味著什么?
我們先來看看DRAM(動態(tài)隨機存取存儲器)的情況。很多年來,DRAM都在以每年50%的速度增長,比摩爾定律說的增速還要快一點。
但后來,就進入了平緩期。過去7年里究竟發(fā)生了什么?DRAM是一種比較特殊的技術(shù),它需要深槽電容,因此也需要一種特殊的裝配技術(shù)。
那么在處理器領域又發(fā)生了什么呢?處理器發(fā)展的減緩和DRAM是相似的。紅線是摩爾定律的預測,藍線是一個普通英特爾處理器上的晶體管數(shù)量。這兩條線一開始只是略微分叉,但到2015、2016年,差距就很大了。
我們必須記住,這里還有個成本因素。生產(chǎn)線越來越貴了,芯片成本降得卻沒有那么快,因此每個晶體管的成本實際上在上升。我們?nèi)タ紤]架構(gòu)的時候就會看到這些問題的影響。
在摩爾定律的減速之外,還有一個更大的問題,登納德縮放定律(Dennard Scaling)的終結(jié)。
Bob Dennard是IBM員工,第一個晶體管DRAM的發(fā)明者,他多年之前曾經(jīng)預測:每平方毫米的硅片需要的能量將保持恒定,因為電壓電平、電流容量會下降。
這意味著什么呢?如果能量保持恒定,晶體管數(shù)卻在指數(shù)型增長,那么每個晶體管的能量,實際上是在下降的,也就是說,從能耗的角度來看,計算的成本越來越便宜。
實際上登納德縮放定律怎么樣了呢?我們來看一下上圖,紅線是技術(shù)按標準摩爾定律曲線的發(fā)展,藍線代表單位面積能耗的變化。
現(xiàn)在的處理器會調(diào)慢時鐘頻率、關閉核心,因為如果不這么干它就會燒起來。我從來都沒想到竟然會看見這樣一天,處理器給自己減速來防止過熱,但是現(xiàn)在這種情況已經(jīng)發(fā)生了。
實際上,登納德縮放定律到2007年已經(jīng)停止了,帶來了芯片行業(yè)的劇變。忽然之間,關鍵限制因素不再是晶體管的數(shù)量,而是能耗。這就要求你完全重新思考架構(gòu)、思考如何構(gòu)建機器。
這意味著晶體管在計算中的低效、架構(gòu)上的低效比以往危害更大。
我們平時所用的、隨身帶著的各種設備,都離不開電池,忽然之間能量就成了關鍵資源。還有比手機沒電了更糟糕的事嗎?再想想即將到來的IoT時代,設備永遠開著機,還指望依靠能量采集技術(shù)一塊電池用10年。
我們越來越需要設備永遠保持開機。比如說裝了Google Assistant的東西,你可能不需要它的屏幕總亮著,但是需要CPU一直在工作。因此,我們需要越來越多地考慮能源效率。
讓很多人驚訝的是,在大型云計算數(shù)據(jù)中心里,能量效率也是個巨大的問題。
這是Google數(shù)據(jù)中心的典型成本構(gòu)成。紅色的那一塊是耗能加上冷卻的成本,幾乎和花在服務器上的成本持平。因此,能源效率是一個非常關鍵的問題,而登納德縮放定律的終結(jié)意味著已經(jīng)沒有免費的午餐了,你也可以看出它的影響。
上圖展示了40年來處理器性能的變化。最初幾年,我們每年能夠看到22%的進步;80年代中期RISC發(fā)明之后,每年的進步速度達到了大約50%;接下來,就是登納德縮放定律的終結(jié),芯片界所有人都轉(zhuǎn)向了多核。多核有什么用呢?硬件設計者用它把能量效率的皮球踢給了軟件設計者;現(xiàn)在我們進入了一個平臺期,平均每年的性能增長只有3%左右,要20年才能翻倍。這是通用處理器性能增長的終結(jié)。
為什么會這樣?
大量并行執(zhí)行指令是不可行的,比如說在英特爾酷睿i7里,25%指令的執(zhí)行結(jié)果都被扔掉了,但是,執(zhí)行這些指令依然需要消耗能量。這也是為什么單處理器性能曲線終止了。
但是多核處理器也面臨著類似的問題。寫一個大型的復雜軟件,就必然有序列性的部分。
假設,你將來用一個64核的處理器,但它運行的代碼中有1%是序列性的,于是,它的運算速度就只相當于一個40核的處理器,但是你卻要為64核的能量買單。
我們要跨越這個能量效率的障礙,就要重新思考如何設計機器。
我們還有什么方法,能讓系統(tǒng)更加經(jīng)濟?
以軟件為中心的方法行得通嗎?現(xiàn)代腳本語言對于使用它們的程序員來說很高效,但是在執(zhí)行上效率很低。
以硬件為中心的方法呢?我和Patterson把它稱為“特定領域架構(gòu)”,這類架構(gòu)不是通用的,但能非常好地處理一些領域的應用。
根據(jù)上面提到的挑戰(zhàn),我們來看一下有哪些機會。
這個表格出自Charles Leiserson和他MIT同事們的論文“There’s Plenty of Room at the Top”。他們以矩陣乘法為例,在英特爾酷睿處理器上運行這種算法并優(yōu)化它。用C語言重寫、加上并行循環(huán)、加上內(nèi)存優(yōu)化都會帶來速度的提升,最后他們用Intel AVX instructions重寫了程序,和Python相比提速了6萬多倍。
雖然只是一個很簡單的算法,但是這體現(xiàn)了軟件優(yōu)化能夠帶來的潛力。
那么特定領域架構(gòu)(DSA)呢?我們實際上要做的是要在硬件的能效上獲得突破!疤囟I域”指的是讓一個處理器能實現(xiàn)一定范圍內(nèi)的用途,它們在運行的時候能夠運用這個特定領域的知識,因此更加高效,比如專門用于運行神經(jīng)網(wǎng)絡的處理器,做的是機器學習相關的事情。
DSA不是魔法,把架構(gòu)限制在某個領域并不會自動讓計算更快,我們需要做一些架構(gòu)上的改變才能更高效。重要的有這樣幾點:
首先我們更有效地實現(xiàn)了并行,從現(xiàn)在多核處理器的多重指令多重數(shù)據(jù)變成了單指令多重數(shù)據(jù),因此每個核心不必再單獨從不同緩存中讀取指令流,而是用一組功能單位存儲一組指令。這是犧牲一些靈活性來換取的巨大的效率進步。我們用的更像是VLiW,讓編譯器來決定一組運算是不是要并行,將工作從運行時轉(zhuǎn)移到編譯時。
我們還脫離了緩存。緩存是個好東西,但是當空間局部性和時間局部性比較低的時候,它不僅沒用,還會拖慢程序。于是,我們就把它轉(zhuǎn)移到了用戶控制的本地存儲中。這里所做的取舍就是必須有人將他們的應用銀蛇到用戶控制的存儲結(jié)構(gòu)中。
另外,我們還去除了不必要的精度,轉(zhuǎn)向低精度的浮點運算。
與這些相配合,我們還需要特定領域語言。用Python或C寫的代碼,無法提取出特定領域架構(gòu)所需要映射到信息。
因此,我們需要重新思考改如何為這些機器編程,它們要用到高級運算,比如向量乘法、向量矩陣乘法或者系數(shù)矩陣的組織等,有了這些運算才能獲得編譯到架構(gòu)中的高級信息。
設計特定領域語言的關鍵是要保持足夠的機器獨立性,不能換一臺機器就要重寫程序。應該有一個編譯器能針對一種特定領域語言,既能映射到云端運行的架構(gòu),也能映射到手機上運行的架構(gòu),這是一種挑戰(zhàn)。TensorFlow、OpenGL等正往這個方向發(fā)展,但這是一個船新的空間,我們剛剛開始理解,也剛剛開始理解該如何針對它來設計。
為深度神經(jīng)網(wǎng)絡設計一種特定領域架構(gòu),你們覺得應該什么樣?
這張圖是TPU內(nèi)部的架構(gòu),我想說明的是,這上面占滿硅片區(qū)域的不是控制,也不是緩存,而是與計算直接相關的東西。
也正因為如此,這個處理器每個clock可以完成256×256次,也就是64000次8位矩陣乘法,因此它可以輕松拿下推理任務。你不能用它來運行通用的C語言代碼,而是要用它運行神經(jīng)網(wǎng)絡的推理。
我們來看一看每瓦能耗實現(xiàn)的性能,TPU是通用處理器的30多倍,甚至比GPU強很多。這就體現(xiàn)了為特定領域來定制架構(gòu)非常關鍵。
這是一個新時代,但在某種意義上來講也回到了過去。在計算機發(fā)展早期,應用領域的專家、研究軟件環(huán)境、做編譯器的人和做架構(gòu)的人會組成一個垂直的團隊。
而現(xiàn)在,我們也需要這樣的綜合團隊,理解如何從應用來發(fā)展特定領域語言、發(fā)展特定領域架構(gòu),來思考如何重構(gòu)機器。
對于行業(yè)發(fā)展來說,這是巨大的機遇,也是一種新挑戰(zhàn)。我相信有足夠多像這樣有趣的應用領域,我們可以通過為領域定制機器,取得巨大的性能優(yōu)勢。
我想,如果能實現(xiàn)這種進步,就會為人們騰出時間,來擔心信息安全問題,這也正是一個我們應該關注的重要問題。
One More Thing
演講結(jié)束后,John Hennessy老師還在現(xiàn)場,進行了20多分鐘的答疑。
這次答疑涉及的領域包括:量子計算、神經(jīng)網(wǎng)絡,安全、計算架構(gòu)的演變、行業(yè)未來發(fā)展、教育等等諸多領域。Hennessy都給出了誠懇而明確的回答。
這里先講幾個花絮。
現(xiàn)場有個提問者說:我上的處理器架構(gòu)課程,用的就是你寫的教材。
Hennessy立刻回答:“I hope it didn’t hurt you。”
又是一次全場大笑。
還有一個提問涉及比特幣這類加密貨幣。
Hennessy回答:“確實,我能構(gòu)建一個專門進行比特幣挖礦的架構(gòu)!彼f加密貨幣很重要,但還有一些問題需要解決。