天天看點

Hennessy 與 Patterson 雙雙進駐 Google,是計算機科學新時代的曙光

Hennessy 與 Patterson 雙雙進駐 Google,是計算機科學新時代的曙光

John Hennessy(上)與 David Patterson(下)可謂是計算機體系架構領域的傳奇人物,RISC,MIPS,RAID 等多項重大成就

看到經典教科書《計算機體系結構:量化研究方法》的兩位傳奇作者多年後在 Google 再次雙劍合璧,大家一定都會期待接下來會發生什麼。事實上,Alphabet 選擇 Hennessy 做董事會執行主席,看中的估計主要是其豐富的管理經驗(其擔任斯坦福大學校長的經曆就是一個很好的例子);但是 Hennessy 的技術背景一定會對 Alphabet 以及 Google 未來的方向帶來一些自己的印記。

Google 歸根到底是一家計算機科學公司

目前雖然 Google 在人們的眼中是一家網際網路公司,而其 CEO Pichai 則宣布 Google 是一家 AI 公司。然而,Google 的底色其實是計算機科學,多年來一直沒有變過。

什麼是計算機科學(computer science)?大多數人說起 CS,第一個想起的就是寫代碼,刷題,等等。事實上,計算機科學 = 軟體 + 硬體,兩者缺一不可。Google 的代碼和算法确實全球第一,但是它從來也不缺乏硬體色彩。最早 Google 剛創業時,面臨搜尋請求量過大而伺服器數量不夠的問題。當時,網際網路傳統的做法是使用商用伺服器,這種伺服器無論是購買還是維護成本都非常高,以當時 Google 的财力無法大規模部署商用伺服器來解決計算能力問題。這是,Google 天不怕地不怕的工程師選擇了使用低成本的計算機配合合理的運作管理去做伺服器,而最後事實證明這些低成本計算機工作地相當好!于是,就在 Yahoo 等傳統搜尋引擎還在慢慢行動時,Google 靠硬體上的創新以很低的成本解決了搜尋引擎算力問題,在提升使用者體驗的同時快速搶占了市場。在這之後,Google 的 MapReduce 算法名揚天下,一舉解決了大規模計算可擴充性的問題。MapReduce 解決的是如何在大規模硬體上高效率地執行計算,是算法和硬體的完美結合——在這裡,硬體和軟體都是系統不可或缺的一部分,都得到同樣的重視。正因為如此,資料庫算法的教材會教授 MapReduce,而計算機體系結構的教材也會講 MapReduce。

可以說,Google 是真正得到了計算機科學精髓的公司,知道硬體和軟體都是計算機不可或缺的部分,也不可偏廢。是以,Google 會選擇去自己開發晶片來滿足自己的計算需求(如 TPU),而不是像其他網際網路公司那樣把自己限定在軟體層。

摩爾定律成明日黃花,異構計算正在興起

現在其實是計算機科學領域非常重要的轉折時期。為什麼這麼說?因為在這之前的 1980~2010 年,摩爾定律仍然處于其全盛時期,“18 個月處理器性能翻番” 的範式統領着計算機科學界。正因為 CPU 如此強勢,是以在那個時候,軟體更關注如何在通用處理器上完成運算,程式設計中硬體被抽象到根本看不到。

然而,到了今天,摩爾定律遇到了技術和經濟上的雙重瓶頸,處理器性能的增長速度越來越慢,然而社會對于計算能力的需求增速卻并未減緩,甚至在移動應用、大資料、人工智能等新的應用興起後,對于計算能力、計算功耗和計算成本等提出了新的要求。傳統的完全依賴 CPU 的計算機已經無法滿足現有的需求,是以異構計算(heterogeneous computing)則又回到了人們的視線中。與完全依賴于通用 CPU 及其程式設計模型的傳統軟體編寫模式不同,異構計算的整個系統包含了多種基于特定領域架構(domain-specific architecture, DSA)設計的處理單元。每一個 DSA 處理單元都有負責的獨特領域并針對該領域做優化,當計算機系統遇到相關計算時便由相應的 DSA 處理器去負責。相比 CPU 必須覆寫所有的計算類型,由于 DSA 處理單元隻需負責少數幾個領域的計算,是以可以把優化做到極緻,同時計算效率也遠高于傳統 CPU。目前非常流行的 AI 晶片就是 DSA 處理單元的一個例子,相比于傳統的 CPU 可以實作百倍以上的計算能力提升以及萬倍以上的能效比提升,可見 DSA 處理單元的優勢。可以說在 CPU 的潛力挖掘見底的今天,異構計算将會成為下一代計算力提升的新範式。

Google 的新計算機科學

Hennessy 與 Patterson 雙雙進駐 Google,是計算機科學新時代的曙光

Hennessy 和 Patterson 在去年斯坦福的演講中反複強調 DSA 和異構計算的概念

根據以上思路,我們也可以做出一些其他有趣的推理。首先,我們預計未來 Google 會推出更多有特色的硬體,而且 Google 将會在底層晶片上也有更多自己的設計,就象我們在 Pixel2 手機裡看到的 IPU(詳見)。而 AI 更是一個非常适合異構計算發揮的場景——一方面,基于深度學習的 AI 對于計算能力要求很高,是以需要異構計算才能達到算力需求;另一方面,為了把 AI 普及到生活的各個角落,還必須有能夠高效率計算 AI 算法的邊緣計算晶片和硬體。AI + 異構計算将會成為 Google 未來的主題。其次,異構計算中每一個 DSA 處理單元的程式設計模型都會有所不同,這也對程式員的能力提出了新的要求。一個典型的例子是今天常見的 Nvidia GPU 使用的 CUDA,想要完全釋放出 GPU 的計算能力,在程式設計時必須熟悉其硬體程式設計模型。在異構計算時代的程式員必須對于算法和硬體模型融會貫通,才能寫出高品質的代碼。是以,未來程式員還必須要懂硬體!Hennessy 和 Patterson 去年春天斯坦福大學的演講中也提到過,未來程式設計工作會比現在更複雜,因為要考慮硬體才能實作高效代碼。正如 Hennesy 所說,“The easy ride of software is over”。

原文釋出時間為:2018-02-5

本文作者:矽說

本文來自雲栖社群合作夥伴新智元,了解相關資訊可以關注“AI_era”微信公衆号

繼續閱讀