- +1
詳解AI加速器(二):為什么說現在是AI加速器的黃金時代?
選自 Medium
作者:Adi Fuchs
機器之心編譯
機器之心編輯部
在中,前蘋果工程師、普林斯頓大學博士 Adi Fuchs 解釋了 AI 加速器誕生的動機。在這篇文章中,我們將跟著作者的思路回顧一下處理器的整個發展歷程,看看 AI 加速器為什么能成為行業焦點。

這是本系列博客的第二篇,我們來到了整個系列的關鍵所在。在為新公司或新項目做推介時,風投資本家或高管經常會問一個基本問題:「為什么是現在?」
為了回答這個問題,我們需要簡單回顧一下處理器的發展歷史,看看近些年這一領域發生了哪些重大變化。
處理器是什么?
簡而言之,處理器是計算機系統中負責實際數字計算的部分。它接收用戶輸入數據(用數值表示),并根據用戶的請求生成新的數據,即執行一組用戶希望的算術運算。處理器使用其算術單元來生成計算結果,這意味著運行程序。
20 世紀 80 年代,處理器在個人電腦中被商品化。它們逐漸成為我們日常生活中不可或缺的一部分,筆記本電腦、手機和連接數十億云和數據中心用戶的全球基礎設施計算結構中都有它們的身影。隨著計算密集型應用的日益普及和大量新用戶數據的出現,當代計算系統必須滿足對處理能力不斷增長的需求。因此,我們總是需要更好的處理器。長期以來,「更好」意味著「更快」,但現在也可以是「更高效」,即花同樣的時間,但使用的能源更少,碳足跡更少。
處理器進化史
計算機系統的進化是人類最杰出的工程成就之一。我們花了大約 50 年的時間達到了這樣一種高度:一個人口袋里的普通智能手機擁有的計算能力是阿波羅登月任務中用到的房間大小的計算機的 100 萬倍。這一演變的關鍵在于半導體行業,以及它如何改進處理器的速度、功率和成本。

英特爾 4004:第一款商用微處理器,發布于 1971 年。
處理器是由被稱為「晶體管」的電子元件組成的。晶體管是邏輯開關,用作從原始邏輯函數(如與、或、非)到復雜算術(浮點加法、正弦函數)、存儲器(如 ROM、DRAM)等所有東西的構建模塊。這些年來,晶體管一直在不斷縮小。

1965 年,戈登 · 摩爾發現,集成電路中的晶體管數量每年翻一番(后來更新為每 18-24 個月)。他預計這一趨勢將持續至少十年。雖然有人認為,這與其說是一個「定律」,不如說是一個「行業趨勢」,但它確實持續了大約 50 年,是歷史上持續時間最長的人為趨勢之一。

晶體管縮放的電學特性。
但除了摩爾定律,還有一條不那么有名但同樣重要的定律。它被稱為「登納德縮放比例定律」,由羅伯特 · 登納德在 1974 年提出。雖然摩爾定律預測晶體管將逐年縮小,但登納德問道:「除了能夠在單個芯片上安裝更多晶體管之外,擁有更小的晶體管還有什么實際好處?」他的觀察結果是,當晶體管以 k 為倍數縮小時,電流也會降低。此外,由于電子移動的距離更小,我們最終得到的晶體管快了 k 倍,最重要的是——它的功率下降到 1/k^2。因此,總的來說,我們可以多裝 k^2 個晶體管,邏輯函數將快大約 k 倍,但芯片的功耗不會增加。
處理器發展第一階段:頻率時代(1970-2000 年代)

微處理器頻率速率的演變。
早期,微處理器行業主要集中在 CPU 上,因為 CPU 是當時計算機系統的主力。微處理器廠商充分利用了縮放定律。具體來說,他們的目標是提高 CPU 的頻率,因為更快的晶體管使處理器能夠以更高的速率執行相同的計算(更高的頻率 = 每秒更多的計算)。這是一種有些簡單的看待事物的方式;處理器有很多架構創新,但最終,在早期,頻率對性能有很大貢獻,從英特爾 4004 的 0.5MHz、486 的 50MHz、奔騰的 500MHz 到奔騰 4 系列的 3–4GHz。

功率密度的演變。
大約在 2000 年,登納德縮放比例定律開始崩潰。具體來說,隨著頻率的提升,電壓停止以相同的速率下降,功率密度速率也是如此。如果這種趨勢持續下去,芯片發熱問題將不容忽視。然而,強大的散熱方案還不成熟。因此,供應商無法繼續依靠提高 CPU 頻率來獲得更高的性能,需要想想其他出路。
處理器發展第二階段:多核時代(2000 年代 - 2010 年代中期)
停滯不前的 CPU 頻率意味著提高單個應用的速度變得非常困難,因為單個應用是以連續指令流的形式編寫的。但是,正如摩爾定律所說的那樣,每過 18 個月,我們芯片中的晶體管就會變為原來的兩倍。因此,這次的解決方案不是加快單個處理器的速度,而是將芯片分成多個相同的處理內核,每個內核執行其指令流。

CPU 和 GPU 核數的演化。
對于 CPU 來說,擁有多個內核是很自然的,因為它已經在并發執行多個獨立的任務,比如你的互聯網瀏覽器、文字處理器和聲音播放器(更準確地說,操作系統在創建這種并發執行的抽象方面做得很好)。因此,一個應用可以在一個內核上運行,而另一個應用可以在另一個內核上運行。通過這種實踐,多核芯片可以在給定的時間內執行更多的任務。然而,為了加快單個程序的速度,程序員需要將其并行化,這意味著將原始程序的指令流分解成多個指令「子流」或「線程」。簡單地說,一組線程可以以任何順序在多個內核上并發運行,沒有任何一個線程會干擾另一個線程的執行。這種實踐被稱為「多線程編程」,是單個程序從多核執行中獲得性能提升的最普遍方式。
多核執行的一種常見形式是在 GPU 中。雖然 CPU 由少量快速和復雜的內核組成,但 GPU 依賴大量更簡單的內核。通常來講,GPU 側重于圖形應用,因為圖形圖像(例如視頻中的圖像)由數千個像素組成,可以通過一系列簡單且預先確定的計算來獨立處理。從概念上來說,每個像素可以被分配一個線程,并執行一個簡單的「迷你程序」來計算其行為(如顏色和亮度級別)。高度的像素級并行使得開發數千個處理內核變得很自然。因此,在下一輪處理器進化中,CPU 和 GPU 供應商沒有加快單個任務的速度,而是利用摩爾定律來增加內核數量,因為他們仍然能夠在單個芯片上獲得和使用更多的晶體管。

不幸的是,到了 2010 年前后,事情變得更加復雜:登納德縮放比例定律走到了盡頭,因為晶體管的電壓接近物理極限,無法繼續縮小。雖然以前可以在保持相同功率預算的情況下增加晶體管數量,但晶體管數量翻倍意味著功耗也翻倍。登納德縮放比例定律的消亡意味著當代芯片將遭遇「利用墻(utilization wall)」。此時,我們的芯片上有多少晶體管并不重要——只要有功耗限制(受芯片冷卻能力的限制),我們就不能利用芯片中超過給定部分的晶體管。芯片的其余部分必須斷電,這種現象也被稱為「暗硅」。
處理器發展第三階段:加速器時代(2010 年代至今)
暗硅本質上是「摩爾定律終結」的大預演——對處理器制造商來說,時代變得具有挑戰性。一方面,計算需求飛速增長:智能手機變得無處不在,而且擁有強大的計算能力,云服務器需要處理越來越多的服務,「最糟糕的是」——人工智能重新登上歷史舞臺,并以驚人的速度吞噬計算資源。另一方面,在這個不幸的時代,暗硅成為晶體管芯片發展的障礙。因此,當我們比以往任何時候都更需要提高處理能力時,這件事卻變得以往任何時候都更加困難。

訓練 SOTA AI 模型所需的計算量。
自從新一代芯片被暗硅束縛以來,計算機行業就開始把精力放到了硬件加速器上。他們的想法是:如果不能再增加晶體管,那就好好利用現有的晶體管吧。具體怎么做呢?答案是:專門化。
傳統的 CPU 被設計成通用的。它們使用相同的硬件結構來運行我們所有應用(操作系統、文字處理器、計算器、互聯網瀏覽器、電子郵件客戶端、媒體播放器等)的代碼。這些硬件結構需要支持大量的邏輯操作,并捕獲許多可能的模式和程序誘發的行為。這相當于硬件可用性很好,但效率相當低。如果我們只專注于某些應用,我們就可以縮小問題領域,進而從芯片中去除大量的結構冗余。

通用 CPU vs. 面向特定應用的加速器。
加速器是專門面向特定應用或領域的芯片,也就是說,它們不會運行所有應用(例如不運行操作系統),而是在硬件設計層面就考慮一個很窄的范圍,因為:1)它們的硬件結構僅滿足特定任務的操作;2)硬件和軟件之間的接口更簡單。具體來說,由于加速器在給定的域內運行,加速器程序的代碼應該更緊湊,因為它編碼的數據更少。
舉個例子,假如你要開一家餐廳,但面積、用電預算是有限的。現在你要決定這個餐廳具體做哪些菜,是比薩、素食、漢堡、壽司全做(a)還是只做披薩(b)?
如果選 a,你的餐廳確實能滿足很多口味不同的顧客,但你的廚師就要做很多菜,而且不見得每種都擅長。此外,你可能還需要買多個冰箱來存儲不同的食材,并密切關注哪些食材用完了,哪些變質了,不同的食材還有可能混在一起,管理成本大大提高。
但如果選 b,你就可以雇傭一位頂級的披薩專家,準備少量的配料,再買一臺定制的烤箱來做披薩。你的廚房會非常整潔、高效:一張桌子做面團,一張桌子放醬汁和奶酪,一張桌子放配料。但同時,這種做法也有風險:如果明天沒有人想吃披薩怎么辦?如果大家想吃的披薩用你定制的烤箱做不出來怎么辦?你已經花了很多錢打造這個專門化的廚房,現在是進退兩難:不改造廚房就可能面臨關店,改造又要花一大筆錢,而且改完之后,客戶的口味可能又變了。
回到處理器世界:類比上面的例子,CPU 就相當于選項 a,面向特定領域的加速器就是選項 b,店面大小限制就相當于硅預算。你將如何設計你的芯片?顯然,現實并沒有那么兩極分化,而是有一個類似光譜的過渡區域。在這個光譜中,人們或多或少地用通用性來換取效率。早期的硬件加速器是為一些特定領域設計的,如數字信號處理、網絡處理,或者作為主 CPU 的輔助協處理器。
從 CPU 到主要加速應用領域的第一個轉變是 GPU。一個 CPU 有幾個復雜的處理核心,每個核心都采用各種技巧,比如分支預測器和亂序執行引擎,以盡可能加快單線程作業的速度。GPU 的結構則有所不同。GPU 由許多簡單的內核組成,這些內核具有簡單的控制流并運行簡單的程序。最初,GPU 用于圖形應用,如計算機游戲,因為這些應用包含由數千或數百萬像素組成的圖像,每個像素都可以并行獨立計算。一個 GPU 程序通常由一些核函數組成,稱為「內核(kernel)」。每個內核都包含一系列簡單的計算,并在不同的數據部分(如一個像素或包含幾個像素的 patch)執行數千次。這些屬性使得圖形應用成為硬件加速的目標。它們行為簡單,因此不需要分支預測器形式的復雜指令控制流;它們只需要少量操作,因此不需要復雜的算術單元(比如計算正弦函數或進行 64 位浮點除法的單元)。人們后來發現,這些屬性不僅適用于圖形應用,GPU 的適用性還可以擴展到其他領域,如線性代數或科學應用。如今,加速計算已經不僅僅局限于 GPU。從完全可編程但低效的 CPU 到高效但可編程性有限的 ASIC,加速計算的概念無處不在。

深度神經網絡的處理替代方案。來源:微軟。
如今,隨著越來越多表現出「良好」特性的應用程序成為加速的目標,加速器越來越受關注:視頻編解碼器、數據庫處理器、加密貨幣礦機、分子動力學,當然還有人工智能。
是什么讓 AI 成為加速目標?
商業可行性
設計芯片是一個費力、耗資的事情——你需要聘請行業專家、使用昂貴的工具進行芯片設計和驗證、開發原型以及制造芯片。如果你想使用尖端的制程(例如現在的 5nm CMOS),耗資將達到數千萬美元,不論成功或失敗。幸運的是,對于人工智能來說,花錢不是問題。AI 的潛在收益是巨大的,AI 平臺有望在不久的將來產生數萬億美元的收入。如果你的想法足夠好,你應該能夠很容易地為這項工作找到資金。
AI 是一個「可加速」的應用領域
AI 程序具有使其適用于硬件加速的所有屬性。首先最重要的是,它們是大規模并行的:大部分計算都花在張量運算上,如卷積或自注意力算子。如果可能,還可以增加 batch size,以便硬件一次處理多個樣本,提高硬件利用率并進一步推動并行性。硬件處理器驅動其快速運行能力的主要因素是并行計算。其次,AI 計算僅限于少數運算種類:主要是線性代數核的乘法和加法、一些非線性算子,例如模擬突觸激活的 ReLU,以及基于 softmax 的分類的指數運算。狹窄的問題空間使我們能夠簡化計算硬件,專注于某些運算符。
最后,由于 AI 程序可以表示為計算圖,因此我們可以在編譯時知道控制流,就像具有已知迭代次數的 for 循環一樣,通信和數據重用模式也相當受限,因此可以表征我們需要哪些網絡拓撲在不同計算單元和軟件定義的暫存存儲器之間通信數據,以控制數據的存儲和編排方式。
AI 算法是以硬件友好的方式構建的
不久之前,如果你想在計算架構領域進行創新,你可能會說:「我有一個新的架構改進的想法,它可以顯著地提高一些東西,但是——我需要做的就是稍微改變編程界面并讓程序員使用這個功能。」在那個時候這種想法會行不通。程序員的 API 是不可觸及的,而且用破壞程序「干凈」語義流的低級細節來加重程序員的負擔是很難的。
此外,將底層架構細節與面向程序員的代碼混合在一起并不是一個好習慣。首先它是不可移植的,因為某些架構特征在芯片代際之間發生變化。其次它可能會被錯誤地編程,因為大多數程序員對底層硬件沒有深入的了解。
雖然你可以說 GPU 和多核 CPU 已經因為多線程(有時甚至是——內存墻)偏離了傳統的編程模型,但由于單線程性能早已不是指數級增長,我們只能將希望訴諸于多線程編程,因為這是我們唯一的選擇。多線程編程仍然很難掌握,需要大量的教育。幸運的是,當人們編寫 AI 程序時,他們會使用神經層和其他定義明確的塊來構建計算圖。
高級程序代碼(例如 TensorFlow 或 PyTorch 中的代碼)已經在以一種可以標記并行塊并構建數據流圖的方式編寫。因此理論上,你可以構建豐富的軟件庫和足夠精細的編譯器工具鏈來理解程序的語義并將其有效地降為硬件表示,而無需開發應用程序的程序員做任何參與,讓數據科學家做他們的事情,他們可以不在乎任務在哪些硬件上運行。在實踐中,編譯器完全成熟還需要時間。
幾乎沒有其他選擇
人工智能無處不在,大型數據中心、智能手機、傳感器,機器人和自動駕駛汽車中都有它的身影。每個系統都有不同的現實限制:人們肯定不愿意自動駕駛汽車因為算力太小而無法檢測障礙物,也不能接受因為效率低而在訓練超大規模預訓練模型時每天多花數千美元,AI 的硬件不存在一個芯片適用所有場景的說法,計算需求巨大,每一點效率都意味著花費大量的時間、精力和成本。如果沒有適當的加速硬件來滿足你的 AI 需求,對 AI 進行實驗和發現的能力將受到限制。
原文鏈接:
https://medium.com/@adi.fu7/ai-accelerators-part-ii-transistors-and-pizza-or-why-do-we-need-accelerators-75738642fdaa? THE END
轉載請聯系本公眾號獲得授權
投稿或尋求報道:content@jiqizhixin.com
原標題:《詳解AI加速器(二):為什么說現在是AI加速器的黃金時代?》
本文為澎湃號作者或機構在澎湃新聞上傳并發布,僅代表該作者或機構觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。





- 報料熱線: 021-962866
- 報料郵箱: news@thepaper.cn
互聯網新聞信息服務許可證:31120170006
增值電信業務經營許可證:滬B2-2017116
? 2014-2025 上海東方報業有限公司