大家好,歡迎。我是 ACM 的總裁 Vicki Hanson,今晚能來到這裡我感到非常興奮。ACM 於 1966 年設立了 Turing Award,旨在表彰對計算領域做出具有持久和重大技術貢獻的成就。我們非常榮幸能在第 45 屆國際計算機體系結構研討會上舉辦今年的 ACM A.M. Turing 講座。由於對節能 RISC 架構處理器的基礎性貢獻,2017 年 Turing Award 的兩位獲獎者在行動和物聯網革命中都扮演了關鍵角色。John L. Hennessy,Stanford University 前校長,以及 David A. Patterson,University of California, Berkeley 的榮譽教授兼 ACM 前總裁,構思了使用一組簡單且通用的指令,這些指令所需的電晶體更少,從而減少了計算機必須執行的工作量。

這個概念是革命性的。由 Hennessy 在 Sanford [Stanford] 和 Patterson 在 Berkeley 領導的工作,將導致一種系統性的、定量的設計方法,用於設計更快、功耗更低且精簡指令集的微處理器。Patterson 在 Berkeley 的團隊創造了「RISC」這個術語,並於 1982 年建造了 RISC One 處理器。它後來被 Sun Microsystems 商業化,成為 SPARC 微體系結構。Hennessy 於 1984 年共同創立了 MIPS Computer Systems,以商業化 Stanford 團隊的工作。在過去的二十五年裡,他們的教科書《Computer Architecture, A Quantitative Approach》(現已出版第六版)影響了世代工程師和計算機設計師,他們採納並進一步完善了他們的思想。這本書成為我們建模和分析新處理器體系結構的能力的基礎,從而加速了微處理器設計的進步。如今,每年生產的 160 多億個微處理器中,有 99% 是 RISC 處理器。它們幾乎遍布所有智能手機、平板電腦,以及構成物聯網的數十億嵌入式設備中。

我很榮幸介紹我們 2017 年的 Turing Award 得主:John Hennessy,Alphabet Inc. 董事會主席和 Stanford University Knight-Hennessy Scholars 計畫主任;以及 Dave Patterson,Google 傑出工程師和 RISC-V Foundation 董事會副主席。John 和 Dave,歡迎。

好的。所以,當我和 John 商量怎麼進行時,考慮到我們的職業生涯,如果我們各自獨立演講,似乎會很奇怪。所以我們將以接力的方式進行。第一部分是歷史,我們將在約 20 分鐘內介紹計算機體系結構的歷史,這部分由我來負責。John 將負責第二部分,談論我們領域面臨的挑戰,然後我們將接力,他先講領域特定體系結構,我再講最後一部分。然後有時間進行問答,我們期待著。好的,讓我們回到 50 多年前,1960 年代初期,IBM 面臨一個問題,IBM 有四條互不相容的計算機生產線,所謂不相容,是指指令集不同、軟體堆疊不同、作業系統不同、IO 不同、市場也不同。

因此,IBM 的工程師們有了個想法,他們打算賭上公司,賭上整個公司,認為他們可以擁有一套單一指令集來處理他們將統一的四條獨立生產線。要實現這一點,當時和現在最困難的部分是控制,但 Maurice Wilkes,這位從我們領域獲得第二個 Turing Award 的人,有了一個想法,如何讓建立控制變得更容易,他的想法稱為微程式 (microprogramming)。其洞見是,邏輯是什麼,他當時的技術比 ROM 或 RAM 更貴,但 ROM 比 RAM 便宜且速度更快,所以讓我們將控制指定為唯讀記憶體 (read-only memory),他們將控制記憶體中的每個字稱為微指令 (microinstruction)。所以 IBM 將賭上公司,並使用微程式來實現。

因此,在 1964 年 4 月,他們發布了公司歷史上最重大的公告。這裡有一個四種不同機器的範例,您可以看到數據寬度從 8 bits 到 64 bits,微指令寬度從 50 bits 到 87。所以那時候,微程式碼越寬,硬體就越寬,微指令也就越寬,但解譯所需的微指令數量並不多,所以它比較短,這就叫做水平微程式 (horizontal microprogramming)。左邊那個是 50 bits 寬,但它比較長,因為執行需要更多的時脈週期。所以這叫做垂直微程式 (vertical microprogramming)。他們賭上了公司,贏得了賭注。以今天的幣值計算,小型機器的成本是一百五十萬美元。賭上公司,贏得了賭注。因此,IBM 在大型主機計算行業中佔據主導地位,直到今天,該指令集仍然可用並主導著大型主機。獲得第二個 Turing Award 的計算機體系結構師 Fred Brooks 在這項工作中扮演了重要角色。

Moore's law 出現了,半導體技術也出現了,然後是迷你計算機。現在邏輯、RAM 和 ROM 都在同一種電晶體上,所以它們大約相同,而且 RAM 的速度也相同。但是隨著 Moore's law,我們可以擁有更大的控制儲存,而且由於有了 RAM,它可以讓你有更大的控制儲存,因為你可以修改它。這導致了這些更複雜的指令集。經典的例子是 Digital Equipment 的 VAX 指令集,你可以看到它有 96 bits 寬,但有 5000 個微指令。一個新的想法出現了,因為它是在 RAM 中,叫做 Writable Control Store,基本上你可以修改它,而不是只運行標準指令集,你可以添加微調,使其完全符合你的應用程序。所以 Writable Control Store。因此,微程式在學術界變得非常流行,那是我讀研究生的時候。我的博士論文就在這個領域,我的第一篇論文是在 SIGMICRO 發表的,但你可能不知道 SIGMICRO 實際上是國際微程式研討會。後來它改變了目標,但最初是微程式。毫無疑問,使用可寫控制儲存的最著名機器是 1973 年建造的 Xerox Alto。

這是我們今天使用的所有想法的始祖。它是第一台帶有圖形用戶界面的計算機,第一台帶有 Ethernet 的計算機,而這一切都是用可寫控制儲存中的微程式碼寫的。它可以進行點陣圖排版和 Ethernet 控制。照片中的 Alto 和獲得第三個 Turing Award 的計算機體系結構師 Chuck Thacker,因為他對 Alto 的貢獻而獲獎。

現在,微處理器落後於時代了。微處理器會模仿大型機的設計。MOS Technology 發展迅速,他們只是模仿大型機的做法,他們會進行微處理器戰爭,因為當時所有人仍然用彙編語言編程,他們會說「這是我的新指令,看看我們用了這個」,然後人們就會不斷發明新的指令來互相反擊。毫無疑問,也許是歷史上最雄心勃勃的微處理器,但在 1970 年代肯定是,我想是 432。Gordon Moore,Moore's law 的創始人,是一位有遠見的人。他認為他們已經有了 8-bit 的 8080 微處理器,他相信他們設計的下一個微處理器將會被永遠沿用,直到它不再適用為止。

所以他雇了一批計算機科學博士,把他們送到 Oregon 去發明下一個偉大的指令集,這是一個非常雄心勃勃的專案。在那個時代,他們實現了 32-bit 的功能,它是一個物件導向的體系結構,它有一個用一種奇特的程式語言編寫的定制作業系統,所以想法很大。可惜的是,它們很大,但它們遲到了。所以它沒有裝在一個晶片上,而是分散在幾個晶片上,它有性能問題,而且會延遲數年。所以來自 Oregon 的人不得不告訴 Gordon Moore,「對不起,我們無法按時完成」。所以 Gordon 不得不怎麼辦呢?他不得不啟動一個緊急項目。

它被稱為 8086,團隊有 52 週的時間。團隊有 52 週的時間來升級一個權宜之計的 16-bit 處理器,包括指令集、體系結構、晶片,一切都在 52 週內。他們花了三週的實際時間,10 人週來設計指令集。他們基本上將 8080 擴展到 16 bits,發布時並沒有引起太多[聽不清楚]。對 Intel 來說,好消息是 IBM 決定選擇 86 的 8-bit 版本,即 8-bit 總線版本。他們喜歡 68000。它的指令集更優雅,更接近 360,但它遲到了。所以他們選擇了 8088。IBM 當時認為他們能賣掉大約 250,000 台 PC,結果他們賣了一億台。

所以 8086 一夜之間取得了成功。由於 IBM 早期發明的二進制兼容性,它與 PC 軟體二進制兼容,因此 8086 有著光明的未來。

現在研究人員開始研究這些微程式控制的機器。這是第四位 Turing Award 獲得者 John Cocke 的照片。當時發生的是從彙編語言編程到高級語言編程的轉變。高級語言很流行,但你不能用它編寫作業系統,UNIX 證明了這一點。UNIX 是用高級語言編寫的,所以我們可以把一切都用高級語言編寫。所以現在重要的不是彙編語言程式員做了什麼,而是編譯器的輸出。John Cocke 和他在 IBM 的團隊,他們建造了這套硬體,這台 ECL 服務器,特別是先進的編譯器技術。他們說,讓我們把我們的編譯器技術應用到這套 IBM 大型主機指令集上,但只使用簡單的指令,也就是 load 和 store 寄存器到寄存器的指令。性能會怎麼樣呢?使用子集後速度提高了三倍,這結果有點令人震驚。然後計算機體系結構師 Joel Emer 和 Doug Clark 對我之前展示的 VAX 體系結構進行了研究,他們發現了什麼呢?

首先,每條指令的平均時脈週期是 10 個,也就是說,那個微程式解譯器平均需要 10 條微指令才能完成任務。然後他們發現的另一件事是,該指令集的 20% 佔了 60% 的程式碼,而且幾乎從未使用過。這讓人驚嘆,我們為什麼要做這個呢?我在 1976 年加入了 Berkeley,然後很奇怪的是,作為一名助理教授,我在三年後在 DEC 度過了一個休假,因為我的論文是關於微程式的,他們需要我幫忙解決微程式的 bug。我離開時感到很驚訝,VAX 指令集體系結構中的 bug 是多麼難以排除。

所以,我一回來就寫了一篇論文,我說,如果微處理器製造商要跟隨迷你計算機和大型機的趨勢,建造更複雜的指令集,他們將會面臨微程式問題,然後我們必須能夠修復微處理器。我將會利用可寫控制儲存來做這件事。那篇論文怎麼了?我從休假回來,做了所有這些工作,但它被拒絕了。我記得審稿人說:「這是一種愚蠢的方式……」…來建造可修復微程式碼的微處理器。所以我想,如果他們要把它做得更複雜,以便修復它…… …但是用這種愚蠢的方式來建造微處理器…… …然後就覺得,為什麼我們要這樣做?

這就是從 CISC 到 RISC 的轉變。所以處理器內部的高速記憶體 SRAM…… …不是用來作為微程式解譯器…… …而是將其作為用戶可見指令的快取。因此,記憶體的內容將根據正在運行的程式而改變。讓我們保持指令集如此簡單…… …你不需要解譯器,你可以基本上實現流水線實作。所以你可以認為它們像微結構一樣簡單,只是寬度不同。順帶一提,CISC,你知道,編譯器只使用…… …少數這些複雜的 CISC 指令。所以你無論如何損失的並不多。在那段時期,由於 Moore's law,晶片越來越大…… …我們可以在單一晶片上實現完整的 32-bit 數據通路…… …以及一個快取,這使得 RISC 更具吸引力。

然後,Greg Chaitin 在寄存器分配方面取得了突破…… …對不起…… …使用了圖形著色技術,使得寄存器體系結構比過去更有效率。所以,大約就在那時,Berkeley 和 Stanford 出現了。我們最初是在一系列…… …研究生課程中進行工作的,四門研究生課程…… …調查了這個體系結構,這就是前面提到的 RISC-1…… …兩個研究生決定在 Hennessy…… …以及他在 Stanford 的學生建造 MIPS One 的同時,建造一個更有效率的版本。所以這些工作都是大約同期完成的。你知道,我們希望早點有這個解釋,但最終…… …通過我認為 Clark 對 VAX 的評估以及我們談到的那個體系結構…… …我們可以將鐵律分解成三件事,正如…… …這裡的 Dileep Bhandarkar…… …在 RISC 工作之後寫的一篇論文中說的那樣,CISC 執行較少的指令,也許是 RISC 的三分之一,但需要更多的時脈週期,所以有大約四倍的優勢。

現在我要回到歷史上…… …你會看到幾件事。首先…… …看起來像 John 和我的人,但頭髮多很多…… …你會看到這些東西,這些精緻的小塑膠片…… …但這就是我們以前做演示的方式,給你們年輕人看。我們以前用這種叫做透明片的東西,最棒的地方是從投影機開始上課,然後就可以開始了。啟動只需要 5 秒鐘。今天,我們需要大約 30 分鐘才能開始。好了,開始了。這是個很長的影片。我們就停在這裡。

好的,那麼發生了什麼?所以我們在 Intel 的同事們…… …能夠組織 500 人的團隊來建造微處理器…… …這比 RISC 團隊能做到的多得多…… …而且他們擁有很棒的技術,他們還有一個想法…… …將 x86 指令翻譯成我們所知的 RISC 微指令。所以 RISC 團隊的任何好想法他們都可以使用…… …因此他們開始佔據主導地位…… …每年生產高達 3.5 億個晶片,這太驚人了…… …而且不僅主導了桌面市場,也主導了服務器市場。

但後 PC 時代,我們就從 2007 年的 iPhone 說起…… …現在不再從 Intel 購買晶片…… …而是獲取知識產權以便在自己設計的 SOC 上整合…… …所以這不同了。當然,在這個市場上,能源價值和單純的性能一樣重要,所以我的意思是…… …很難應付,事實上去年…… …有超過 200 億個晶片…… …裡面裝有 32-bit 處理器。x86 在 2011 年達到巔峰,隨著 PC 銷量下降…… …實際上現在銷量比以前少了。雲端仍然很大,但正如這篇論文估計的,雲端中只有大約 1000 萬台服務器,所以晶片數量並不多。所以今天 99% 的處理器是 RISC。

好的,計算機體系結構歷史的下一步是什麼?這是將取代 RISC 和 CISC 的東西,即 VLIW (Very Long Instruction Word)。如果你可以——VLIW 的倡導者是 Josh Fisher。他實際上是在微程式領域寫的論文。你可以把 VLIW 想成水平微程式碼,對吧…… …它是非常寬的指令,控制著很多數據通路…… …但是所有的工作都由編譯器完成。

是時候讓 Intel 擴展他們的體系結構了…… …他們決定轉向 64 bits,他們已經完成了從 16 到 32 的轉變,現在是從 32 到 64 的時候了…… …他們決定賭上 VLIW…… …他們稱他們的賭注為 EPIC…… 事實上,他們與 Hewlett-Packard 聯手…… …後者也在研究 VLIW,他們一起…… …進行 EPIC 體系結構的研究…… 這是一種帶有二進制兼容性的 VLIW,他們從 1994 年開始,伴隨著相當多的宣傳…… …現在這意味著出於商業原因,你知道…… …他們使用這種緊急指令集已經 20 年了,所以有點道理…… …來建立一個更具技術基礎的東西。還有一個商業優勢是…… …AMD 擁有製造 x86 的權利。但是,對於新的指令集,他們沒有那個權利。

所以他們不被允許製造。因此 AMD 被迫只能將 x86 擴展到 64 bits,而這種新的體系結構將要佔領世界。當 Intel 和 HP 在 90 年代聯手時,許多人說這就是未來,許多公司相信了他們。哇,不管喜不喜歡,這都會發生…… …所以他們就放棄了正在做的事情,放棄了 RISC 體系結構…… …開始擁抱 EPIC。結果如何?史詩般的失敗 (EPIC failure)。

好了,所以…… …編譯器怎麼了,你知道,在浮點程式碼中可能運作良好,但在整數程式碼中卻沒有真正運作良好。指標造成了問題,特別是程式碼大小的問題,這是 VLIW,對吧,所以程式…… …會變得更大一點,指令很長…… …這是一個問題。不可預測的分支是一個…… …問題,特別是對於這些整數程式碼…… …然後是不可預測的快取失誤。所以這三點中的兩點使得編譯變得非常困難…… …而且程式碼變得非常大。亂序執行技術對於快取延遲的處理比 VLIW 好得多。所以亂序執行技術或多或少地包含了它,但是最重要的事情是編譯器…… …VLIW 的賭注就在於此,我想編譯器可以處理…… …所有這些複雜性,安排所有這些寬指令。

事實證明,正如 Don Knuth 和其他 Turing Award 得主所說的那樣,寫不出來。現在,鑑於 Itanium 和 EPIC 的所有宣傳。當它開始失效時,人們注意到了…… …所以有些風趣的人沒有稱它為 Itanium…… …而是重新命名為 Itanic。所以你就可以看到它沉向未來。

這就是我們在計算機體系結構中做的事情,對吧。我們進行這些爭論,然後公司雙方都投入數十億美元賭博,然後我們讓他們設計…… …並解決問題,在這種情況下,它失敗了。

所以在交給我的同事之前,我總結一下我的部分…… …今天指令集上的共識,它不是 CISC。沒有人…… 提出這種微程式解譯器指令集的建議已經超過 30 年了。VLIW 對於通用用途不起作用,原因我們已經說過一些。然而…… …你知道,它在更嵌入式的 RDSP(數位信號處理器)領域找到了位置,因為…… …你知道,它的分支更容易處理,它…… …沒有快取,程式碼更小。所以它有點…… —VLIW 在那裡起作用了,但對於通用用途不行。所以剩下的是什麼?RISC。誰能想到,35 年後,它仍然是最好的想法。好的,就這樣,我將接力給 John,他將接管。

好的,現在來講一些截然不同的東西。好的,所以我們現在要談論的是…… …目前的一些挑戰。我知道你們大多數人都…… …熟悉這些事情。技術在不斷變化,我們正處在一個充滿變化的時代。Dennard scaling 的終結意味著功耗…… …和能源成為關鍵的設計約束。……而 Moore's law 的終結,不是完全的終結…… …正如 Gordon Moore 曾對我說的…… 所有指數曲線都會有終結的時候。對。所以我們正處於 Moore's law 的放緩階段…… …但我們也面臨著類似的…… …挑戰,圍繞著我們的體系結構思想。

因為我們的體系結構思想…… …隨著我們不斷地推進,效率越來越低。……無論是關於多核心的阿姆達爾定律的思想…… …還是利用指令級並行性的概念。我們越來越多地突破極限…… …而隨著這些基本體系結構思想的低效率…… …越來越大…… …我們正處於 Dennard scaling 的終結和 Moore's law 的終結的事實使得情況變得越來越困難。

那麼處理器方面發生了什麼?最初,我們注意到早期的 CISC 處理器每年性能提升約 22%。然後,我們進入了一個令人難以置信的高速階段…… …每年性能大幅提升 50%…… …然後由於 ILP[聽不清楚],我們似乎失去了動力。Dennard scaling 的終結到來了。我們轉向了多核心。它運作得相當好,然後事情變得更慢了…… …最後,如果你看看過去兩年…… …我們基本上看到處理器性能每年只提升 3%。一個戲劇性階段的結束…… …我們需要重新思考我們正在做的事情,我們必須以不同的方式處理問題…… 如果你分解並開始研究事物,你可以看到…… …DRAM 的 Moore's law 的轉變。當然,DRAM 是一種非常特殊的技術…… …它們依賴於溝槽電容設計…… …所以它的衰退速度基本上比傳統的要快,但即使你看看 Intel 處理器中的處理器數量…… …晶片數量,電晶體數量…… …你也可以開始看到 Moore's law 的終結,對吧。首先是稍微放緩,然後我們再次加速…… …但如果你看看自 2000 年以來的曲線…… …我們正在下降。所以我們現在——如果我們一直保持在那條曲線上…… …我們今天典型的微處理器將擁有十倍的電晶體數量。

所以我們已經顯著地偏離了那條曲線…… …這讓我們所有人都開始思考…… …我們接下來要做什麼?…當然,Dennard scaling 也是類似的…… …問題,甚至更嚴重…… 我想所有做晶片設計的人都會說…… …能源現在是第一要務。功耗是設計時的第一要務。所以,隨著技術不斷進步…… …我們有了這條曲線…… …這是功耗曲線,正朝著另一個方向發展…… …而你看看這條曲線在 2008 年之後是如何真正起飛的…… …它只會不斷地上升。當然,那是功耗…… …它如何轉化為能源…… …取決於我們使用電晶體的效率如何。

不幸的是,我們使用電晶體的技術…… …變得越來越低效率。想想快取,這是我們都喜歡的東西…… …計算領域真正偉大的想法之一,好的。但是,當然,你把快取做得越大,它在加速程式運行方面的效率就越低。這就是我們的挑戰,我們必須找到新的方法來思考如何更有效地利用我們擁有的能力。在安全方面,我們也處於相當糟糕的狀態,正如我們在午餐時的小組討論中所聽到的。我簡單地說,安全是…… …如果飛機故障的頻率和電腦故障一樣頻繁…… …除了住在南加州的人,沒有人會來參加這個會議。你們都會在家,因為你們永遠不會搭飛機,對吧。如果汽車也那樣故障,我們就永遠不會坐車,對吧。我們有一個大問題。

現在我們有些人夠老,還記得曾經非常重視安全。在 70 年代,有很多偉大的專案,有 Multics,當時對此有很多關注。我們發明了域、環,甚至能力 (capabilities)…… 一些剛剛回到計算機體系結構的想法。在 1971 年進行了試驗。發生了什麼?這些想法沒有被很好地使用。我們當時也還沒有開發出…… …體系結構技術來讓它們快速運行。比如轉換後備緩衝區 (translation lookaside buffers),它使得虛擬內存成為可能。想像一下沒有它的虛擬內存…… …每一個內存訪問,每一個內存訪問都需要兩次對主存的訪問。所以我們沒有高性能的方法來實現它。這些技術似乎沒有幫助。它們有大量的開銷。它們被放棄了。

同時,我們認為…… 形式化驗證將解決我們所有的問題。我們將驗證我們所有的軟體。事實上,我記得基於內核和微內核作業系統的興起。內核——控制安全事務的作業系統…… …應該只有 1000 或 2000 行程式碼。現在沒有哪個內核少於一百萬行程式碼。所以我們基本上沒有像我們想像的那樣正確地解決安全問題。幾乎所有的軟體都有 bug。所有購買新軟體的人,都會收到一份 15 頁的披露說明,基本上說如果這個軟體無法工作,那是你的事。對嗎?它就是這麼說的,你們都勾選了那個框然後拿到了軟體。

所以我們硬體社群,體系結構社群…… …必須站出來,與作業系統社群攜手合作…… …與那些考慮安全的人一起…… …真正解決這個問題。如果我們不這樣做…… …我們將會有一個越來越不滿意我們的用戶社群。

這裡面有很多漏洞。如果你看看它,這裡只是個簡單的例子,Intel 處理器有一個管理引擎…… …它在任何內核作業系統程式碼運行之前運行一系列程式碼…… …並設定機器。誰讀這些程式碼並確保它做正確的事情?我們沒有人讀這些程式碼。所以我們在…… …大型指令集方面有真正的問題,人們可以測試隨機的…… …操作碼,在指令集定義中找到漏洞…… …有很多問題我們必須解決,而且我們必須重新思考。

當然,我們還有 Spectre 電腦…… …體系結構的問題,正如我們在午餐時指出的那樣。這將需要我們重新思考我們對指令集體系結構的定義…… …因為我們從來沒有考慮過基於時間的攻擊。現在,我夠老,還記得在 1970 年代第一次發現基於時間的攻擊。當時在 tops 10 和 tops 20 上有一個基於時間的攻擊,那是當時在 DEC System 10s 和 20s 上運行的作業系統…… …然後我們就忘了它…… …並認為這是一個作業系統問題…… …純粹是一個軟體問題。

現在這是一個體系結構問題。這是一個已經存在 20 年的體系結構問題,而我們甚至沒有真正意識到。所以我們必須重新思考我們對安全的定義,我們的角色是什麼,體系結構社群的角色是什麼…… …我們如何協作工作,我認為…… …正如我們午餐時指出的,未來將會有更多的微體系結構攻擊,更多基於時間的側通道攻擊即將到來。這將不是一個容易的問題,這意味著真正重新思考…… …我們如何思考安全。好的,所以現在是思考這個問題的新時代…… …我們將不得不重新定義我們的計算機體系結構概念。

所以我們在這裡…… …聽起來像是一場正在上演的悲劇。Moore's law 放緩,不再有 Dennard scaling…… …體系結構安全性一團糟…… 我們該怎麼辦?我一直持有一種觀點,John Gardner 曾說過一句很棒的話。他說,我們面臨的是一系列看似不可能的…… …挑戰,偽裝成巨大挑戰的機會…… 這就是我們現在的處境。我們有巨大的機會。

那麼,這些機會是什麼?想想軟體…… …Maurice Wilkes 大約 25 年前對我說,我說 Maurice…… …如果 Moore's law 放緩了怎麼辦?…他說,那我們就必須更仔細地思考…… …如何編寫我們的軟體,並更注重效率。所以我們有以軟體為中心的機會,對吧。我們都用這些現代腳本語言編寫程式。它們是解釋型的。它們是動態型別的。它們鼓勵重用。它們提供了很多能力…… …但它們運行得很糟糕。它們效率非常低,對程式設計師來說很棒,但對執行來說很糟糕。

以硬體為中心的方法,我認為 Dave 和我都相信唯一的出路,而且…… …我認為體系結構領域的很多人都持有這種觀點。它是更領域特定 (domain specific) 的東西…… …所以不要試圖建造一個什麼都做得好的通用處理器。建造一個在執行某些任務時效率驚人的處理器…… …並弄清楚如何利用這些技術來建造異構體系結構。當然,也有組合,硬體和軟體是相輔相成的。我們不僅要考慮領域特定體系結構…… …還要同時考慮用於編寫它們的語言。

這裡有一張很棒的圖表,來自一篇名為《頂層有足夠空間》(There's Plenty Room at the Top) 的論文…… …由 Leiserson 和他在 MIT 的一群同事撰寫…… …它看了一個簡單的例子,承認這是一個簡單的例子,矩陣乘法。所以我們用 Python 版本…… …用 C 語言重新編寫的版本會快多少呢?快了 47 倍,47 倍。我在進入計算機體系結構之前曾從事編譯器工作。提高兩倍的速度在編譯器領域會讓你成為明星。如果你只拿到這 47 倍的一半,你將會有 23 倍的速度。你將會成為英雄,你會贏得 Turing Award。然後你把它拿到 18 核的 Intel 上…… …你找到並行迴圈,因為我們的軟體系統無法自動找到它們…… …這會給你額外的 8 倍速度。然後你進行記憶體優化…… …使得快取對於大矩陣確實有效…… …這通常不會發生。這會給你額外的 20 倍速度…… …最後…… …你利用領域特定硬體…… …使用 Intel AVX 指令,你使用向量…… …這會給你額外的 10 倍性能提升。

最終版本比初始版本快 62000 倍。要從 Moore's law 和硬體中獲得這麼多性能,需要做很多工作。

所以這是一個巨大的機會。領域特定體系結構通過…… …根據領域的特性調整體系結構來實現更高的效率。……而通過領域特定,我們的意思是包括…… …可程式設計基礎設施,對吧。一台…… 處理器體系結構的機器…… …可以執行某一特定領域特徵的一系列應用程式…… …而不僅僅是一個硬連線的應用程式。用於機器學習的神經網路、用於圖形處理的 GPU、可程式設計網路交換機都是很好的例子。所以,如果你認識 Dave 和我,你知道…… …我們喜歡看到對這些技術為什麼更快的定量解釋…… …我認為這很重要,因為這不是什麼黑魔法。

它們之所以有效,是因為它們更有效地利用了並行性…… …SIMD 比 MIMD 靈活性差,但當它起作用時,效率更高…… …毫無疑問,對吧。VLIW…… …相對於推測性的亂序執行,當 VLIW 結構起作用時,效率更高。

那麼,這些領域特定語言 (DSL) 如何呢?我認為關鍵點在於,如果沒有領域特定的支持,僅從 C 或 Python 開始並提取高效映射到硬體所需的知識水平,實在太困難了。這簡直太困難了。我們編譯器社群中的很多人都研究過這個問題,它就是太難了。所以你需要一個更高級別的語言,它談論矩陣、向量或其他高級結構,並在該高級別上指定操作。這仍然意味著存在有趣的編譯器挑戰,因為我們希望領域特定程式仍然相對獨立於體系結構。因此,我們需要在將領域特定程式映射到特定體系結構時面臨有趣的編譯器挑戰,而且體系結構可能因版本而異。

所以我認為這裡有很多很棒的研究機會,讓 Python 程式運行得像 C 一樣快,如果你能做到這一點,你將會成為英雄。想想這真是似曾相識,因為我們在 RISC 時代嘗試做的事情就是讓高級語言在當時的體系結構上高效運行。這是相同的挑戰,類似的挑戰。領域特定應用程式,正確的目標是什麼,正確的語言是什麼,你如何考慮編譯器技術,你如何構建可以從一代移植到下一代的領域特定語言和應用程式,這樣我們就不需要不斷重寫軟體。

那麼,你可以從事什麼問題呢?嗯,有一個領域的論文數量增長速度與 Moore's law 一樣快,你可以在這張圖上看到,那就是機器學習。所以這是一個顯而易見的領域,它計算密集,提供了許多有趣的內容,而且應用程式數量正在呈跳躍式增長。所以為什麼不從事機器學習呢?

所以,當然,Tensor Processing Unit 是 Google 嘗試做到這一點的一個例子,他們部署了這些機器,我認為從 Google 人的角度來看,他們的看法是,如果我們不部署這項技術,我們將無法負擔運行大量機器學習應用程式的費用,它們在計算上會太昂貴。體系結構看起來截然不同,對吧。所以與其構建大型快取並占用體系結構的大部分用於控制,不如構建專門用於應用程式使用的記憶體,因為記憶體訪問是巨大的功耗消耗者。你需要非常努力地考慮將記憶體訪問放在晶片上而不是晶片外。你需要考慮構建大量的計算帶寬來匹配你正在運行的應用程式類型。在進行神經網路推理的情況下,它會進行大量的矩陣乘法,對吧,所以你構建了一個脈動陣列 (systolic array)。這是一個沉寂已久的想法,在它誕生 30 年後又重新煥發了活力。

如果你看看性能,你可以獲得令人驚嘆的性能提升,以每瓦性能來衡量。當然,挑戰之一是,我們在這裡將面臨哪些應用程式,哪些基準測試,就像我們在早期所做的那樣,我們發明了 SPEC 作為標準化和比較不同體系結構的方法,我們也必須考慮如何為機器學習和其他領域環境做到這一點。

我們在體系結構社群中學到的一件事是,如果我們有一套好的基準測試,它是一套合理的基準測試,而且不能被篡改,它就能激勵每個人思考如何展現他們的想法並用它來進行測試。

總結一下,有很多機會,但是需要一種新的計算機體系結構方法。我們需要計算機體系結構的復興。我們不應該只有那些只了解垂直堆疊一小部分的專家,我們需要思考如何建立團隊,將了解應用程式的人、了解語言和領域特定語言及相關編譯器技術的人,與了解體系結構和底層實現體系結構的人結合在一起。對我來說,這是一種回到過去,回到計算機公司是垂直整合而不是水平分解的時代,我認為這為學術界和工業界的計算機科學家提供了令人興奮的機會。謝謝大家的聆聽,謝謝所有組織這次精彩會議的人,也謝謝所有多年來與我們合作的同事,Dave 將結束演講。

是的,我忘了謝謝大家,所以 John 代我說了,但是的,我們不久前得知獲獎的消息,ACM 的 Pat Ryan 聯繫了籌備委員會,說你們覺得怎麼樣,能不能擠進一場 Turing Award 講座,然後他們做到了,所以我們非常感激。

好的,這是問答環節之前的最後一部分,你們知道,John 和我都期待著。我一直很羨慕我的作業系統和編譯器領域的同事們,他們可以從事工業級別的工作並做出貢獻,而且全世界都可以使用他們的成果,因為人們使用開源作業系統。那麼,我們為什麼不能在體系結構領域做到這一點呢?好的,讓我給你們講講 RISC-V,它叫做 RISC-V,V 的意思是它是 Berkeley 的第五個 RISC 專案。基本上,在 Berkeley,Krste Asanovic 當時正引領著方向,我們需要一個新的指令集。候選指令集的問題不僅在於它們複雜,而且我們根本不被允許使用它們。Intel 是我們的贊助商之一,但他們不讓我們使用 x86,因為它受控制。所以 Krste 決定,他要和研究生們一起從頭設計一個指令集。

所以,讓我們從頭開始,這是一個有點激進的想法,但只需要三個月,好的,然後主要的碩士生是 Andrew Waterman 和 Yunsup Lee,Andrew 也在這裡。我也見到他並和他談過,所以,嗯,雖然我們花了四年時間,但他們在那段時間建造了很多晶片,我幫了一些忙,但主要是 Krste、Andrew 和 Yunsup 完成的。然後發生了一件奇怪的事情,你知道,如果你在學術界,你總是會聽到關於你所做的事情的抱怨。所以,但我們開始收到關於我們內部修改 RISC-V 指令集細節的抱怨,從秋季到春季,對吧。所以,好的,你們對什麼都抱怨,為什麼你們關心我們在 Berkeley 為我們的課程修改指令集?我們在與人們交談中發現,大家對一個開放指令集有很強烈的需求。他們研究了許多指令集。他們發現了 RISC-V,並開始使用它。他們打算自己使用它。所以,一旦我們聽說並理解了對開放指令集的需求,我們覺得這是一個很棒的想法,讓我們來促成這件事。

那麼 RISC-V 有什麼不同呢?它真的很簡單,比其他指令集簡單得多。手冊大約有 200 頁,其中大部分是 Andrew 寫的,Andrew 和 Krste 寫了大部分,你知道,x86 是它的 10 倍。這是一個從頭開始的設計,你知道,如果你在 25 年後開始,看看 MIPS 和 SPARC 體系結構過去犯的所有錯誤,不要重蹈覆轍,不要把微體系結構綁死,從事後看這很容易做到。這是一個模組化的指令集,有一個所有軟體都能運行的標準基礎,然後有一些可選的擴展,你可以根據你的應用程序選擇是否包含。因為我們知道領域特定體系結構將會很重要,所以預留了大量的操作碼空間,有些體系結構在更大的地址域上有所損失,但最大的優勢是它是由社群設計的。

基礎標準擴充已經完成,不會再改變,如果你想添加擴充,那是需要整個社群的努力,我們先召集專家。通常,計算機體系結構領域發生的事情是,作為一家公司,你會宣布一套新的指令,然後所有軟體人員都會告訴你哪裡有問題。我們則是預先進行這些對話。這是一個基金會將維護它。你知道,大學會失去關注度,不再感興趣,所以這將由一個非營利基金會來運營,你知道,它就像作業系統和編譯器一樣,技術進步是出於技術原因,而不是營銷原因。

所以實際上有一些不同的指令集,一個 32-bit 的和一個 64-bit 的,甚至還有一個用於嵌入式設備的。標準擴展可以選擇包含乘法和除法,甚至還有原子指令,單精度和雙精度浮點數,壓縮指令,然後是向量指令,它比經典的 SIMD 指令更優雅,這是由基金會支持的簡單指令格式。

因此,創始成員越來越多,而且正在快速增長,事實上幾年內就超過了 100 家。NVIDIA 在一個研討會上宣布,他們將用 RISC-V 取代他們的微控制器,這我知道每年生產 2000 或 4000 萬個。Western Digital 在一個研討會上宣布,他們將把它們放入硬碟中,這樣他們將把計算能力帶到硬碟上,每年生產數十億個。周四在 Stanford 的實踐講座上,Changhong 和 Anyka 的兩個人來找我,他們宣布,宣布他們將採用 RISC-V,從明年開始每年將出貨 3000 萬個。所以,它真的開始流行起來了。

關於標準小組、擴充或部分,我認為這裡有人參與了這些部分的工作,但你知道,它之所以好,是因為它是開放的,你可以召集所有專家一起進行這些對話,就像在將其納入指令集之前的標準委員會一樣。而 RISC-V 僅僅是一個例子。NVIDIA 值得稱讚的是,它提供了一個開放的、正如 John 剛才談到的、領域特定加速器,而且一切都是開放的,軟體堆疊是開放的。指令集架構是開放的,實作是開放的,它是一個可擴展的設計,你可以使用它,它可以用作主機的 RISC-V 核心,也可以不用,這取決於你,這是開放架構的另一個例子。

然後,你們知道,促成今天上午或午餐討論的是安全問題,這很喜歡開放式體系結構這個想法,他們不相信透過 obscurity 實現安全。他們相信開放性。所以有些擔憂的公司、國家擔心後門,這是一個嚴重的擔憂。這篇參考的論文通過修改一行 Verilog 代碼來插入一個後門,他們可以接管一台機器。所以他們希望開放的實作,這樣你就可以查看,而且最重要的是,你知道,從我所了解的午餐討論中,安全問題將成為計算機體系結構的一個巨大挑戰。我們需要所有願意的人為此努力,目前專有架構,你必須為 Intel 或 ARM 這樣的專有公司工作。在這裡,每個人都可以為它們工作,包括學術界,他們有很多價值可以貢獻,我認為這令人興奮的機會在於,鑑於 FPGA 和開源實作以及開源軟體堆疊的巨大進步,你可以進行新穎的體系結構設計並將它們上線。你可以連接到網際網路,並且可能遭受攻擊,或者你可以懸賞尋找攻擊。

所以你真的在對面有一個活躍的對手,而不僅僅是,你知道,防禦這個東西。即使它以 100 MHz 的速度運行,也足以運行真實的軟體,你可以有用戶,而且因為它是 FPGA,你可以以數週而不是數年為單位進行迭代,使用標準硬體。所以我的猜測是,正如我與桌談的人所說的,RISC-V 可能會成為典範。如果我們與體系結構師和安全專家合作進行共同設計以推進它,人們可能會使用 RISC-V。這可能首先發生在那裡。現在其他人可以使用這些想法,這可能首先發生在 RISC-V 中。

所以總結一下開放體系結構的總結,它是免費的,真的免費。任何人都可以使用它。沒有合同之類的,就像 LINUX 一樣。它一開始就更簡單,而且不會有市場營銷的原因來擴展它。當我與商業公司的人交談時,我問他們為什麼要這樣做,他們說,你知道,銷售一個新指令比銷售一個更好的實作更容易。在低端市場,這會產生很大的影響。我對他們想要多小的晶片感到驚訝。在高端市場,你知道,體系結構的重要性不像在低端市場那麼大,但它可以——沒有理由它不能在高階應用程式中發揮作用。我們可以支持 DSA,我們為此預留了操作碼空間。我認為隨著越來越多的人建造處理器,市場競爭將會更激烈,這可能意味著更快的創新。正如我所說,我認為安全專家將會團結在 RISC-V 周圍。

而我們的謙卑目標是統治世界。我們想不出任何理由,為什麼,你知道,單一指令集體系結構在小端不能做得很好,以及為什麼不能,你知道,它們都是 RISC 處理器。所以希望它能成為處理器界的 Linux。

所以演講的最後一部分,好的,是敏捷硬體開發。大約 15 年前,軟體工程領域取得了突破,不再認為軟體透過精心規劃和階段(稱為瀑布模型)會更好,而這是一場反抗,反抗的理念是我們要敏捷開發。我們要進行短週期開發。我們要建立不完整的、可運行的原型,交給客戶看看他們接下來需要什麼,然後進行快速迭代。這已經成為軟體工程領域的一場革命。其中一個模型叫做 Scrum 組織,它源於橄欖球,你有一個小團隊,他們會完成工作,他們會進行衝刺 (sprints),在衝刺中你建立原型,然後暫停看看接下來做什麼,然後在衝刺中努力工作。

好消息是現代 CAD 軟體使我們能夠使用一些軟體開發技術,因此小團隊可以利用抽象和重用來完成一些工作。這裡是來自 Berkeley 的一個例子,關於三種不同的設計,最左邊一列是 RISC-V 的例子,所以是三級流水線,32-bit 設計;中間是一個經典的 5 級流水線,64-bit 設計;右邊是一個亂序執行機器,64-bit 設計。獨特程式碼行數,總程式碼不到一半是獨特的,在 rocket 設計中可以在它們之間共享。幾乎沒有獨特程式碼,所以數量巨大,你知道,它是,你知道,提高抽象層級減少了程式碼行數,但最重要的是實現程式碼重用。

現在,似乎沒什麼,你知道,當你在做硬體的時候,你怎麼能做到一個月一次的迭代呢?嗯,這個團隊演化出來的是這種迭代模型。首先,如果你可以進行創新,就在那裡做,就像軟體一樣。但是,你不能運行那麼多時脈週期,你不能運行數十億或數萬億個時脈週期。如果你去 FPGA,你就可以。所以如果你想看看它是如何真正運作的,你就修改 FPGA。過去幾年來發生的好事是,雲端中有 FPGA 實例。你甚至不需要購買硬體來使用 FPGA,你只需要去雲端使用它。別人會幫你設定好並維護,你就可以使用它,這次會議上也有這樣的例子。

但是,你知道,如果我們真的要考慮能源,真的要關心成本,我們必須達到布局階段,對吧,這就是下一個迭代。一旦想法在模擬器和 FPGA 中奏效,並實際進行布局,現在布局流程會給你一些估計。你還需要做更多的工作才能真正準備好流片 (tape out),我們稱之為流片 (tape in),但這已經相當不錯了。現在,我們可以停在這裡。我們可以停在這裡,因為你可以非常準確地估計面積、功耗和時脈頻率等等。那麼為什麼不停在這裡呢?因為我們是硬體人。我們比軟體人擁有的最大區別優勢是他們被困在網路空間裡,你知道,程式就在那裡,它從來都不是物理的。我們建造東西。我們能得到物理的東西回來,當晶片回來時,那種興奮感——它會工作嗎?它會工作多快?功耗是多少等等。它回來了。

所以建造晶片的理由是獎勵,是所有參與者,研究生或公司,收到晶片回來時的興奮感。

現在這一定很貴。不,它並不貴。我們一直都有便宜的測試晶片。所以你可以在 28 奈米製程上,花 14,000 美元買到 100 個 1 毫米 x 1 毫米,也就是 10 平方毫米的晶片。為什麼現在這令人興奮?因為按照 Moore's law,在我們現在所處的節點,10 平方毫米就是數百萬個電晶體。你可以在一個微小的測試晶片中放入一個 RISC-V 核心和一個 NVIDIA DLA,而且只需要 14,000 美元。所以每個人都負擔得起。當然,如果你想建造一個非常大的晶片,那將是最後一步,而且肯定會更貴,但今天每個人都能負擔得起建造晶片。

例如,在 Berkeley,由 Krste Asanovic 領導,他們在五年內建造了 10 個晶片。所以採用這種敏捷模式,對吧,你不需要像我那樣等待幾年,然後驗證一下,看看會發生什麼。他們只是進行下一次迭代,流片。所以從這個計畫畢業的研究生們對晶片能夠運作感到非常自信,因為他們建造了很多晶片,而且每個都越來越好,敏捷模式更優越。

所以在我們開始問答之前總結一下,John 和我都認為我們正在進入一個新的黃金時代。如果 Dennard scaling 和 Moore's law 的終結意味著體系結構師可以創新,如果你想讓事情做得更好很多。它不會發生在微體系結構層面。安全性顯然也需要創新,如果只有軟體解決方案,系統將不會變得更安全。領域特定語言提高了抽象層級,使程式設計師更容易編程,也使體系結構師更容易創新。領域特定體系結構正在獲得 20 或 40 倍的提升,而不是 5 或 10%。開放式體系結構和開放實作降低了參與的門檻,你可以像你的編譯器和作業系統同事一樣,對這些設備進行增強,而且每個人都可以參與其中。雲端 FPGA 讓每個人建造東西變得更容易,看起來就像定制硬體一樣。而這種敏捷開發意味著我們所有人都能負擔得起製作晶片。

正如 John 所說,就像我們年輕時在 1980 年代做體系結構師的時代一樣,現在是做體系結構師的絕佳時機,無論是在學術界還是工業界。接下來我們將進行問答。

Dave,這是我聽過最快的演講了。我以為 John 會打斷我,但沒有——所以謝謝你的演講。我想回到 John 說的,從腳本語言獲得 62000 倍的速度提升是非常容易的。實際上,像 Google V8 編譯器這樣的系統效率極高。它有數百萬行程式碼…… …如果你看看性能損失在哪裡…… …沒有銀彈。它遍布各處。有類型系統。有多層編譯器。有內聯快取…… …垃圾回收。所以,還有快取不起作用。沒有人說這會容易。

我想他說的是,潛力有 62000 倍。是的,你不必全部拿到。如果你拿到 1000 倍,你就是英雄,對吧,而且…… …你只需要拿到可用資源的 1/160。我想你是對的,它分散在各處。這將會——我認為有趣的問題是如何將編譯器方法與…… …也許是新型的硬體支持結合起來,這將幫助你將兩者重新整合。記住,你們有些人夠老,還記得[聽不清楚]…… …機器和 SPUR 之類的時代。我們那時候有很多想法。嗯,現在我們有了顯著的程式設計槓桿。與編譯器技術相匹配的正確體系結構思想是什麼?不要將兩者分開,不要將體系結構師放在這裡…… …我正在遠離體系結構師——編譯器師。……但它們是混合在一起的,你會讓編譯器師,讓他們混合在一起。

是的,我同意。最後指出,這項開發已經花費了數百萬工程師小時……

我們是研究人員,對吧,你知道…… …當我們大概三十多歲的時候,有人可能已經告訴我們了…… …對吧,就像你不能建造微處理器。那需要,你知道,數百名 Intel 工程師,你做不到。這是一個機會。我們別無選擇,對吧。如果 Moore's law 還在持續…… …微處理器每 18 個月翻一番,我不知道是否還會有人研究這個,但是,我們也必須做點什麼,這是一個機會。

你應該想想整個 VLSI 時代實際發生了什麼…… …學術界建立了一套設計工具。當時沒有設計工具。我記得…… …去 Zilog 看他們設計 Z80…… …牆上貼著一塊 mylar 片…… …大約 20 英尺 x 20 英尺…… …他們就是這樣進行設計的。如果我們採用那種設計方法…… …我們永遠也設計不出任何東西。研究生們都會全部退學。他們至今仍然會是研究生。

我是來自 Duke 的 Ling [聽不清楚] 學生。我正在研究領域特定體系結構。所以對於這裡的領域特定計算領域的人來說,我認為我們有兩種方法…… …一種是我們運行一個新的領域應用程式,然後觀察傳統計算機[聽不清楚]的表現。所以我們可以找到在哪裡[聽不清楚]並改進它。所以[聽不清楚]… …他們首先發現… …計算機[聽不清楚]… …加速器,然後他們發現… …指令集加速器[聽不清楚]… …所以他們提出了[聽不清楚]。這是[聽不清楚]… …而領域特定計算的另一種方法是… …這就像一種[聽不清楚]設計方法。所以在這種方法中,我們直接從軟體[聽不清楚]… …硬體體系結構提出一個解決方案。所以一個例子是—— 好的,問題是什麼?[聽不清楚]剛才說了問題是什麼?所以問題——問題在這裡。

所以對於這裡的領域特定計算領域的人…… …我們有兩種方法,您對這兩種方法有什麼看法或建議嗎?謝謝。

我認為這兩種方法都有其優點。我認為說一種方法會主導整個領域可能是不對的。……歸根結底,各個領域基準測試的優勢將證明哪種方法更有效…… …這是我的觀點。

好的。一個定量的方法。非常好的演講。我是 Jason Mars,來自 Michigan。所以我們現在正處於一個專業化的時代,對吧。所以你可以把它想成是一種極端的 CISC…… …我們正在真正針對特定的複雜用例進行專業化…… …而且,你知道,你們是 RISC 觀點的鐵桿擁護者,所以我想知道…… …我們可以從你們的經驗中學到什麼教訓?既然之前經歷過 CISC 與 RISC 的戰爭…… …我們可以從中學到什麼 RISC 的教訓?…因為整個社群一直非常關注專業化、加速等等。

把硬體和軟體放在一起。不要把硬體和軟體分開,以整合的方式思考問題。我認為這是最重要的事。我的意思是…… …RISC 之所以出現,離不開對編譯器技術應該是什麼樣子的洞見,對吧,這是關鍵的洞見。所以這裡也是一樣的。不要將它們分開,而是在這個邊界上進行優化,並思考它們如何契合在一起。

正如我們所說的,你知道,這是意外之喜,對吧…… …正在創造領域特定語言,以提高程式設計師在這些領域的效率…… …這與所有這些都無關。但是,對我們來說好消息是什麼?提高抽象層級可能會讓程式更容易編寫,也提高了我們可以在哪裡進行創新,對吧。所以……。

……是的,就像 John 說的,垂直整合的人——所以這意味著更多來自我們的工作。回想 SPEC 時代,我不認為人們甚至知道…… …你知道,我不知道這是程式四。我要研究它,讓它跑得更快。現在…… …因為如果你研究 SPEC 程式,你什麼也贏不了,因為你不被允許改變它。這是一個完全不同的世界,對吧。你將會——我們在這裡看到的機會是…… 我認為這就是為什麼它發生在[聽不清楚]公司。這些公司在許多不同層面都擁有技能…… …而且他們正在找到,你知道,巨大的機會。

謝謝你。首先,非常感謝您的貢獻,我們非常感謝。所以我的問題是關於領域特定體系結構的。我知道目前整個體系結構社群正在討論…… …領域特定體系結構是解決我們許多問題的方案。在過去幾年大部分時間裡,我一直從事行動計算機體系結構方面的工作,您手上的這個設備不僅有 CPU 和 GPU。這些公司在領域特定體系結構方面已經做了十多年了。所以我很好奇…… 當我們表面上看,我們已經從 CPU、GPU 到今天的 TPU…… …而這些設備的整合度是這個數字的 10 倍以上(指 CPU+GPU 以外的晶片數量)。那麼您如何看待在這個領域中的領域特定體系結構?並且說,它是新的還是舊的?我們可以從中借鑒什麼教訓?

我盡量說短一點,我通常說得很長…… …但基本上區別在於可程式性…… …對吧,就像我參與了——Google 在我休假期間進行的一個專案,叫做 Pixel Virtual Core…… …有一個硬體叫做 ISP,它們全部都用硬體實現。那是一條固定的硬體線。這個想法是讓它更可程式設計,而且他們…… …實際上他們將領域特定語言叫做[聽不清楚]綁定在那裡,但我認為這就是區別。當然有…… …很多專用加速器非常節能,它們基本上只做一兩件事。所以我們能否同時保留軟體和加速?對,這就是正確的。

所以 Vivek [聽不清楚],Dave 和 John,我想借鑒你們在教育領域 40 年的經驗,思考這 40 年來計算機科學是如何教授的。而且,你知道,當您尋找這個黃金時代的機會時,您是否看到本科生和研究生在準備方面存在不足之處,以應對這個時代?

顯然是安全性。我的意思是,我們顯然沒有…… …充分教導學生有關…… …安全性的重要性,如何思考它。如果您翻閱 20 或 30 年前的教科書,您可能會發現比一些現代教科書中關於安全的內容更多。我們需要解決這個問題。這顯然是…… …顯然是關鍵。我認為無論好壞,我們的領域已經如此戲劇性地擴展,以至於本科生甚至…… …研究生都無法掌握所有內容,對吧。當我是研究生時,我基本上可以參加任何博士論文答辯並理解正在發生的事情。我可以參加任何求職演講並理解正在發生的事情。

今天說你能做到這一點,那是不可能的。這個領域已經突飛猛進…… …所以我們必須接受,我們必須教我們的學生一些基本的…… …演算法、計算、複雜性,但我們也必須教他們一些重要的系統概念。……對,並行性、安全性等等…… …而且我們必須意識到,我們將不得不教他們成為終身學習者…… …因為他們將不得不重新學習和重新投入…… …因為我們的領域將繼續擴展和蓬勃發展。

我認為另一件事是因為數據科學的興奮…… 我認為統計學…… 現在取決於學校,他們可能會學到很多統計學,也可能不會,但我認為計算機科學與統計學的距離越來越近,反之亦然,這將是一件重要的事情。所以,你知道,我想你會看看你的課程設計。

Sarita [聽不清楚],來自 University of Illinois,謝謝。所以您剛才談到正在進入計算機體系結構的黃金時代,您也談到硬體和軟體人員合作的重要性,對吧。我想這個團隊明白這一點,對吧。我們明白我們必須與軟體人員合作。我們實際上已經習慣於這樣做了。但反過來就不清楚了,對吧。通常在文化上,我認為…… …軟體人員不太理解硬體,這不是計算機科學系的文化一部分,所以我的問題是…… …我們可以做些什麼來推動這種改變?

所以首先你要告訴他們的是…… …各位,三十年來我們一直在給你們搭便車。當你們編寫糟糕的軟體時,我們讓它變得更快…… …對吧,這已經結束了,你知道。你知道…… …在 Berkeley 大約 2003 年,我去參加教師午餐會…… …你知道,我準備做一個演講。未來是[聽不清楚]。單核處理器不會再變得更快了。我不知道我的同事中有多少人相信我當我說,你知道,他們都,每個人都有意見,但我認為,聽著,我們的責任是告訴他們這結束了。免費搭便車的日子結束了。沒有魔法,沒有——騎兵不會從山頭趕來。未來的機會將是硬體、軟體共同設計,而且體系結構師將扮演這個重要的角色。如果…… …你想讓事物變得更快、功耗更低,那麼…… …這就是唯一的出路了,你知道…… …而且我認為這是我們的——我認為這實際上是…… …你們所有人的工作,去向你們的同事和那些能理解的教師解釋,他們將會佔據優勢,對吧,因為我們是對的,對吧。不會再有其他事情發生了。我們從來不錯。我們——體系結構社群,你知道,我們知道…… …硬體裡發生了什麼諸如此類的事情…… …而且那就是,你知道,你可能會得到當然,嗯,不會是量子計算機,不,量子計算機是一件非常令人興奮的事情,它不是明天就能實現的,好的,而且它明天也不會發生。它和核融合的時間表差不多。

所以我理解,但是您正在進行直播,現在所有人都聽著您說——所以那是我的——

你可以剪下我們的影片片段。

Mark [聽不清楚],Microsoft。所以很明顯,這對體系結構師和微體系結構師來說是一個復興,他們正在為 AI 構建非常創新的晶片。其中一些需要,你知道,數千甚至數萬個核心。但我不太看到的是編譯器領域的復興…… …你知道,[聽不清楚]變得更加垂直,但是…… …我們需要編譯到簡單 RISC ISA 的日子已經一去不復返了,現在是為這些巨大的分佈式機器編譯。那麼您認為我們是否在為這個領域培養人才?

嗯,我認為這是一個機會。我的觀點是…… …我們在編譯器上撞牆了——我們已經把編譯器技術推到了極限。如果我們談論從較低層級的高級語言編譯,例如 C、Fortran 等等。我們已經把那項技術推到了極限,我們再也推不動了,我的意思是,許多研究這方面的人…… …已經放棄了像…… …重新組織記憶體來提高記憶體性能之類的事情,我們已經做到了極限。對於簡單的程式,你可以做到,矩陣乘法,我可以自動完成…… …但是對於一個大型應用程式或者像…… …矩陣一樣複雜的東西,別提了,系統會崩潰。所以現在我們——有機會…… …重新參與並革新整個領域,使其重新煥發活力…… …我認為這是一個令人興奮的機會,而且我認為如果這些…… …研究人員能與硬體人員、體系結構師緊密合作,他們將會獲得最大的效益。

而且,你知道,[聽不清楚]用於領域特定語言是有希望的,對吧,矩陣是——是基本類型,對吧,這讓編譯更容易。Google 有一個專案叫做 XLA,它正在嘗試從這個非常高級別進行優化,這對我來說是新的——嗯,我相信這對編譯器來說是一個新的挑戰——這是一種不同的方法。這是一種不同的方法。所以,是的,我們也可以,你知道…… …我們可能不會完成所有的工作…… …John 和我。我們能做的是創造機會,而這顯然是一個機會,而且,你知道,我們正在從一個時代轉變過來,我們只發布微小的…… …論文,帶來微小的改進,對吧,我們現在討論的是這些巨大的數字,你知道,就像——John,我喜歡 John 說的。

而且你在這個領域工作—— 未來的 Turing Award 得主。

說得對。只有一個要求,你的頭髮要比 Dave 多。

我是[聽不清楚]學生,你知道,你說我們正處於體系結構的黃金時代…… …我們可以為神經網路開發領域特定語言…… …你認為你的網路會如何影響我們的社群,例如透過你的網路也許——

讓我來回答這個問題,神經網絡實際上能如何——所以 Cliff Young 在一個叫做[聽不清楚]的研討會上做了一個主題演講,關於如何利用機器學習來設計計算機,對吧…… …我認為這是一個非常有趣的想法,對吧。機器學習中有一種叫做自動機器學習 (auto machine learning) 的技術,你可以用機器學習來設計模型。所以,你知道,這正在革新,機器學習正在革新許多領域…… …如果我們在這裡使用它會很有趣,比如分支預測器是否應該基於機器學習原理,或者基於機器學習的預測器?這更像是一個問題,我們能多好地——我們能多好地利用機器學習來設計機器?這又是另一個,你知道,令人興奮的、潛在的革命性想法…… 我推薦大家聽聽 Cliff 的主題演講。

大家好,我是來自 Hallway 的 Lee。我從事異構加速器方面的工作。我只是想從系統層面來看,就像…… …您擁有了所有這些領域特定的硬體…… …所以現在我們正在討論在雲端上運行應用程式,在所有這些視圖中。我們需要一些東西來整合所有這些硬體,您對此有什麼看法?因為我認為,我的意見是,對於[聽不清楚],軟體方面存在很多、更大的差距…… …硬體方面也存在。

是的,有一個很大的差距。硬體和軟體都存在很大的差距。我的意思是,我認為這就是為什麼現在是個令人興奮的時代。有很多機會可以重新思考…… …我們如何編程,我們如何組織我們的體系結構…… …這提供了——這就是為什麼我們認為這是一個新的黃金時代…… …對吧。我們已經經歷了這個高速發展。我們已經沿著這條曲線發展到了極限,我們已經把所有的想法都推到了極致。那些想法已經完成了。是時候重新思考問題了。這意味著有一個巨大的機會可以——

也許我們應該說清楚我們說的黃金時代是什麼意思…… 所以我們是研究人員,對吧…… …對於那些賺了很多錢的公司來說,可能很可怕的,不是我們正在談論的那種“哦,錢就在地上”的情況。而是像“哇,我們不知道該怎麼辦”的情況。所以像我們這樣的人有機會引領方向。當公司清楚地看到他們可以繼續做同樣的事情並賺很多錢時,你知道,這對公司來說是很令人安慰的…… …但對研究人員來說就不那麼令人興奮了。

所以現在對於體系結構研究人員來說,這是一個充滿機會的環境,可以為…… …社會做出巨大的貢獻。

好的。他們告訴我們招待會快開始了。所以我們得感謝大家所有很棒的問題。Vicki 想結束。謝謝。

我只想讓大家再給他們熱烈的掌聲。謝謝你們帶來如此精彩的演講。