0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

服務于特定領域的AI芯片架構成為計算的未來

mK5P_AItists ? 來源:未知 ? 作者:胡薇 ? 2018-09-25 14:15 ? 次閱讀

摩爾定律的終結將使服務于特定領域的架構成為計算的未來。一個開創(chuàng)性的例子就是谷歌在 2015 年推出的張量處理單元(TPU),目前已經在為超過十億人提供服務。TPU 使深度神經網絡(DNN)的計算速度提高了 15-30 倍,能耗效率比類似技術下的當代 CPUGPU 高出了 30-80 倍。

核心觀點

雖然 TPU 是一種專用集成電路,但它運行的程序來自 TensorFlow 框架下的神經網絡,驅動了谷歌數(shù)據(jù)中心的許多重要應用,包括圖像識別、翻譯、搜索和游戲。

通過專門為神經網絡重新分配芯片計算資源,TPU 在真實數(shù)據(jù)中心負載環(huán)境下效率要比通用類型的計算機高 30-80 倍,目前已為全球 10 億人提供日常服務。

神經網絡的推理階段通常會有嚴格的響應時間要求,這降低了通用計算機所使用技術的有效性;通用計算機通常運行得較快,但某些情況下也會較慢。

所有指數(shù)增長都將有結尾

1965 年,據(jù)英特爾創(chuàng)始人之一的 Gordon Moore 預測,芯片中的晶體管數(shù)量每一兩年都會增加一倍。盡管 2017 年 1 月的 ACM 通訊封面呼吁道:“擔心我會終結簡直是杞人憂天”,摩爾定律確實還是壽終正寢了。2014 年推出的 DRAM 芯片包含了 80 億個晶體管,而在人們的預測中即使到了 2019 年,帶有 160 億個晶體管的 DRAM 芯片也不會大規(guī)模生產,但根據(jù)摩爾定律的預測,四年里晶體管數(shù)量應該變成四倍多。2010 年款的英特爾至強 E5 處理器擁有 23 億個晶體管,而 2016 年的至強 E5 也只有 72 億個晶體管,或者說比摩爾定律預計的數(shù)值低 2.5 倍——顯然,縱使半導體行業(yè)還在進步,但其腳步已十分緩慢。

Dennard Scaling 是一個鮮為人知,但同樣重要的觀察結果。Robert Dennard 在 1974 年認為,晶體管不斷變小,但芯片的功率密度不變。如果晶體管尺寸線性縮小兩倍,那么同樣面積上芯片中晶體管的數(shù)量就會變?yōu)?4 倍。同時,如果電流和電壓都降低了二分之一,它所使用的功率將下降 4 倍,在相同的頻率下提供相同的功率。Dennard Scaling 在被發(fā)現(xiàn)的 30 年后結束,其原因并不是因為晶體管的尺寸不再縮小,而是因為電流和電壓不能在繼續(xù)下降的同時保持可靠性了。

計算架構師們一直篤定摩爾定律和 Dennard Scaling,并通過復雜的處理器設計和內存層次結構,將資源轉化為性能,這些設計利用了不同的處理指令的之間的并行性,但架構師們并沒有什么編程的知識。ε=(′ο`*))) 唉,于是架構師們最終還是再也找不到新的辦法可以利用指令級別的并行性。Dennard Scaling在 2004 年終結了,禍不單行的是繼續(xù)提升指令級別并行性的方法也開始缺席,這迫使業(yè)界只能從單核高耗能處理器轉換到多核高效率處理器。

今天我們仍然遵守吉恩·阿姆達爾(IBM 著名工程師,阿姆達爾定律的提出者)在 1967 年提出的定律,該定律認為不斷增加處理器數(shù)量會導致性能提升的遞減。阿姆達爾定律說,并行計算的理論加速受到任務順序部分的限制;如果任務的 1/8 是串行的,則最大加速也只比原始性能高 8 倍——即使任務的其余部分很容易并行,并且架構師增加了 100 個處理器也是如此。

下圖顯示了過去四十年以來,上述三大定律對處理器性能的影響。按照目前的速度,標準處理器的性能在 2038 年以前都不會再次翻倍。

圖 1. 依照Hennessy和Patterson的理論,我們繪制了過去40年中,32位和64位處理器內核每年最高的SPECCPUint性能;面向吞吐量的SPECCPUint_rate反映了類似的情況,即使其平穩(wěn)期延遲了幾年

晶體管看來沒什么進步空間了(這反映了摩爾定律的結束),而每平方毫米芯片面積的功耗正在增加(畢竟 Dennard Scaling 也結束了),但人們對于芯片的功率預算卻并沒有增加(因為電子的移動、機械和發(fā)熱限制),芯片設計師們已經在充分發(fā)揮多核心的能力了(但這也受到阿姆達爾定律的限制),架構師們現(xiàn)在普遍認為,能顯著改進性能、價格、能源三者平衡的唯一途徑就是特定領域的架構——它們只適用于處理幾種特定的任務,但效率非常高。

在云端的大型數(shù)據(jù)集和大量計算機之間的協(xié)作使得機器學習近年來有了很大的進步,特別是在深度神經網絡(DNN)方面。與一些其他領域不同,DNN 的應用方式很廣泛。DNN 的突破性進展包括將語音識別的單詞錯誤率相比老方法降低了 30%,這是近 20 年來最大的單次提升;自 2011 年以來,將圖像識別的錯誤率從 26% 降低至 3.5%;在圍棋上擊敗了人類世界冠軍;改進了搜索排名等等。單個 DNN 架構或許應用范圍很窄,但這種方法仍然催生出了大量實際應用。

神經網絡類似于人腦中神經的功能,基于簡單的人工神經元,它們是輸入的加權和的非線性函數(shù),例如 max(0,value)。這些人工神經元被分為許多不同的層,其中一層的輸出就會作為下一層的輸入。深度神經網絡中的“深層”代表有多個層,由于云上有極大的數(shù)據(jù)集,只需換用更大、更多的層就可以構建出更準確的模型,它也就可以獲取更高階抽象的模式或是概念,而 GPU 可以提供足夠的計算能力幫我們開發(fā) DNN。

DNN 運行的兩個階段被稱為訓練(或學習)和推理(或預測),分別指代開發(fā)與生產。訓練一個 DNN 可能需要數(shù)天,但訓練好的 DNN 進行推理只需要幾毫秒。針對不同的應用,開發(fā)者需要選擇神經網絡的類型和層數(shù),而訓練過程會決定網絡中的權重。幾乎所有的訓練都是浮點運算,這就是 GPU 在深度學習時代如此受歡迎的原因之一。

被稱為“量化”的轉換將浮點型轉為整型,整型通常只有 8 位——這種程度通常足以滿足推理的要求了。與 IEEE 754 16 位浮點乘法相比,8 位整型乘法只需要 1/6 的能耗,需要的空間也只需要 1/6,而轉換為整型加法也能帶來 13 倍能耗和 38 倍空間的提升。

下表展示了兩個例子,共三類、六個 DNN 實例的運行效率——這代表了谷歌數(shù)據(jù)中心 2016 年 95% 的深度神經網絡推理工作負載,我們把它們作為 benchmark。它們在 TensorFlow 中的代碼都非常短,只有 100-1500 行。這些例子是主服務器上運行較大應用程序中的小組件,這些大應用可能會由數(shù)千到數(shù)百萬行 C++代碼構成。應用程序通常面向用戶,這就對響應時間帶來了嚴格的要求。

表 1. 2016年7月,谷歌TPU上的DNN工作負載。共六種DNN應用(三種DNN類型),代表95%的TPU工作負載

如表 1 所示,每個模型需要 500 萬至 1 億個權重,即便只是訪問這些權重都需要花費大量時間和能耗。為了降低訪問成本,在訓練或者推理中會針對一批完全不相干的輸入樣本都使用同樣的權重,這種做法可以提高性能。

TPU 起源、架構及實現(xiàn)

早在 2006 年,谷歌就開始考慮在其數(shù)據(jù)中心部署 GPU(圖形處理器),或者 FPGA (field programmable gate array,現(xiàn)場可編程門陣列),或者專用集成電路(ASIC)。當時的結論是,能在專門的硬件上運行的應用并不多,它們使用谷歌大型數(shù)據(jù)中心的富余計算能力即可,基本可以看做是免費的,另外也很難不怎么花錢就帶來很大改進。情況在 2013 年出現(xiàn)了變化,當時谷歌用戶每天使用語音識別 DNN 語音搜索三分鐘,使得谷歌數(shù)據(jù)中心的計算需求增加了一倍,而如果使用傳統(tǒng)的 CPU 將非常昂貴。因此,谷歌啟動了一項優(yōu)先級別非常高的項目,快速生產一款定制芯片用于推理,并購買現(xiàn)成的 GPU 用于訓練。谷歌的目標是將性價比提高 10 倍。為了完成這項任務,谷歌在其數(shù)據(jù)中心設計、驗證、構建并部署了 TPU,而這一過程僅僅用了 15 個月。

為了降低部署推遲的風險,谷歌工程師將 TPU 設計成 I/O 總線上的協(xié)處理器,并允許它像 GPU 一樣插入現(xiàn)有服務器,而不是使 TPU 與 CPU 緊密集成。此外,為了簡化硬件設計和調試,主機服務器將指令發(fā)送給 TPU 令其執(zhí)行,而不是讓 TPU 去自行獲取。因此,TPU 在理念上更接近浮點單元(FPU)協(xié)處理器,而不是 GPU。

谷歌工程師將 TPU 看做一個系統(tǒng)進行優(yōu)化。為了減少與主機 CPU 的交互,TPU 運行整個推理模型,但提供了與 2015 年及以后的 DNN 相匹配的靈活性,而不局限于 2013 年的 DNN。

TPU 指令通過 PCI-e Gen3x16 總線從主機被發(fā)送到指令緩沖器中。內部計算模塊通常通過 256 字節(jié)寬度的路徑連接在一起。對于右側的芯片布局圖,從右上角開始,矩陣乘法單元是 TPU 的核心,256×256 MAC 可以對有符號或無符號的整型執(zhí)行 8 位乘法和加法運算。得到的 16 位的結果會存入矩陣計算單元下方的共 4MB 空間的 32 位累加器中。這四個 MiB 代表含有 4,096 個 256 元素的 32 位累加器。矩陣計算單元每周期產生一個 256 元素的部分和。

圖 2. TPU架構示意圖及芯片布局圖

矩陣單元的權重通過片內「權重 FIFO」來分級,該 FIFO 從我們稱之為「權重存儲器」的片外 8GB DRAM 中讀??;對于推理,權重僅作讀?。?GB 空間可以支持同時激活多個模型。權重 FIFO 有四層深。中間結果保存在 24MiB 的片上「統(tǒng)一緩沖器」中,可以作為矩陣計算單元的輸入??删幊?DMA 控制器會z z哎CPU 主機存儲器和統(tǒng)一緩沖器間傳送數(shù)據(jù)。為了能在谷歌的規(guī)模上可靠地部署,內存儲器和外存儲器包含內置錯誤檢查與糾正硬件。

TPU 微架構的原理是保持矩陣計算單元一直在工作中。為了實現(xiàn)這一目標,讀取權重的指令遵循解耦訪問/執(zhí)行原理,它可以在發(fā)送權重的地址之后、但從權重存儲器中取出權重之前完成一條指令。如果輸入激活或權重數(shù)據(jù)沒有準備好,矩陣計算單元將停止。

由于讀取大型靜態(tài)隨機存取存儲器(Static Random-Access Memory,SRAM)消耗的能源比數(shù)學運算多得多,矩陣單元使用「脈動執(zhí)行」通過減少統(tǒng)一緩沖器的讀寫來節(jié)約能量。來自不同方向的數(shù)據(jù)以規(guī)律的間隔到達陣列中的單元,然后進行組合計算。一個含有 65,536 個元素的向量-矩陣乘法運算作為對角波前在矩陣中移動。這些權重被預加載,并隨著新數(shù)據(jù)塊的第一個數(shù)據(jù)一起隨著前進波生效??刂坪蛿?shù)據(jù)被流水線化,給程序員一種錯覺,仿佛 256 個輸入是一次讀取的,并立即更新 256 個累加器中每個累加器的一個位置。從正確性的角度來看,軟件不了解矩陣單元的脈動特性,但為了提高性能,必須考慮單元的延遲。

TPU 軟件棧必須與為 CPU 和 GPU 開發(fā)的軟件棧兼容,這樣應用可以快速移植到 TPU 上。在 TPU 上運行的應用部分通常用 TensorFlow 編寫,并編譯成可以在 GPU 或 TPU 上運行的 API

CPU、GPU、TPU 平臺

多數(shù)體系架構研究的論文基于運行小型、易于移植的基準測試模擬,這些基準測試可以預測潛在的性能(如果實現(xiàn)的話)。本文與上述論文不同,是對 2015 年以來數(shù)據(jù)中心運行真實、大型生產工作負載的機器進行回顧性評估,其中一些機器的日常用戶超過 10 億。表 1 中列出的六種應用代表了 2016 年 TPU 數(shù)據(jù)中心 95% 的使用。

由于測量的是生產環(huán)境的負載,要比較的基準平臺必須可以在 Google 數(shù)據(jù)中心部署,因為生產環(huán)境的計算負載也就只能在這里運算。谷歌數(shù)據(jù)中心的很多服務器和谷歌規(guī)模對應用程序可靠性的要求意味著機器必須至少檢查內存錯誤。由于英偉達 Maxwell GPU 和最近的 Pascal P40 GPU 不檢查內部存儲中的錯誤,以谷歌的規(guī)模部署這些處理器、同時還滿足谷歌應用程序的嚴格可靠性要求是做不到的。

表 2 顯示了部署在谷歌數(shù)據(jù)中心的服務器,可以將其與 TPU 進行比較。傳統(tǒng)的 CPU 服務器以英特爾的 18 核雙插槽 Haswell 處理器為代表,該平臺也是 GPU 或 TPU 的主機服務器。谷歌工程師在服務器中使用了四個 TPU 芯片。

表 2. 基準測試的服務使用Haswell CPU、K80 GPU及TPU

很多計算機架構師沒有考慮到從產品發(fā)布到芯片、主板、軟件可以服務于數(shù)據(jù)中心的用戶之間的時間差。表3指出,2014 年至 2017 年間,商業(yè)云公司的 GPU 時間差為 5 至 25 個月。因此,當時適合與 2015 年投入使用的 TPU 的做對比的 GPU 顯然是英偉達 K80,后者處于相同的半導體工藝中,并在 TPU 部署前六個月發(fā)布。

表 3.2015年到2017年,英偉達GPU從發(fā)布到云端部署的時間差距,這4代GPU分別為Kepler、Maxwell、Pascal和Volta架構

每個 K80 卡包含兩塊硅片,并提供內部存儲器和 DRAM 的錯誤檢測和糾錯功能。這種服務器中最多可安裝 8 個 K80 硅片,這也是我們基準測試的配置。CPU 和 GPU 都使用大型芯片:大約 600 mm2的芯片面積,大約是英特爾 Core i7 的三倍。

性能:Roofline、響應時間、吞吐量

為了說明這六種應用在三類處理器上的性能,我們使用了高性能計算機群(HPC)的 Roofline 性能模型。這一簡單的視覺模型雖然不完美,但揭示了性能瓶頸出現(xiàn)的原因。該模型背后的假設是應用需求的計算無法完全裝入片上緩存,因此它們要么計算受限,要么內存帶寬受限。對于 HPC,y 軸表示每秒浮點運算性能(單位是 FLOPS),因此峰值計算率形成了 roofline 圖的“平緩”區(qū)。x 軸表示運算密度(operational intensity),單位是 FLOPS/byte。內存帶寬表示每秒多少比特,形成了 roofline 的“傾斜”部分,因為 (FLOPS/sec)/ (FLOPS/Byte) = Bytes/sec。沒有充足的運算密度時,程序受限于內存帶寬,性能只能在 roofline 的“傾斜”部分之下。

一個應用的每秒實際計算量與其天花板計算量之間的距離代表了保持運算密度不變時性能提升的潛力;提升運算密度的優(yōu)化(如緩存分塊)可能帶來更大的性能提升。

為了在 TPU 上使用 Roofline 模型,當DNN應用被量化時,我們首先將浮點運算替換成整數(shù)運算。由于 DNN 應用的權重通常無法裝入片上內存,因此第二個改變就是將運算密度重新定義為每讀取 1 字節(jié)的權重值時的整數(shù)乘積累加運算操作數(shù)目,如表1所示。

圖 3 展示了單個 TPU、CPU 和 GPU 硅片以 Roofline 模型評估的性能指標,圖中是指數(shù)坐標。TPU 的 Roofline 模型“傾斜”部分較長,從計算密度角度考慮,這意味著性能更多地受限于內存帶寬,而不是計算能力峰值。六個應用中有五個都接近天花板,MLP 和 LSTM 受限于內存,CNN 受限于計算。

圖 3:TPU、CPU和GPU在 Roofline 模型上的性能表現(xiàn)。五角星表示TPU,三角形表示英偉達Tesla K80 GPU,圓表示英特爾酷睿處理器(Haswell);所有TPU五角星都與其他兩種芯片的 Roofline 模型持平或在后者之上

如圖 3 所示,在 Haswell 以及 K80 上,這六個 DNN 應用距離 Roofline 天花板的距離都大于 TPU 上的距離。響應時間是原因所在。這些應用中的很多個是面向終端用戶服務的一部分。研究表明,即使響應時間的些微增加都會導致用戶使用該服務的頻率降低。訓練可能沒有苛刻的響應時間 deadline,但推理通常有,或者說相比于選擇更大吞吐量,推理任務更偏好低延遲。

例如,按照應用開發(fā)者的要求,MLP0 應用要求在 99% 的時間內響應時間不大于 7ms。(每秒完成推理的數(shù)目要求和 7ms 的延遲要求中包括服務器主機時間和加速器時間)即便對響應時間的限制放寬一些,Haswell 和 K80 運行時也分別只能達到 MLP0 應用最高吞吐量的 42% 和 37%。這些限制也會影響到TPU,它會以 80% 的吞吐量來運行,更加接近 TPU 的 MLP0 最大吞吐量。與 CPU 和 GPU 相比,單線程 TPU 沒有復雜的微架構特征,也就不需要為平均狀況而消耗晶體管和功率來提高性能,它直接適用于 99% 的狀況,即 TPU 沒有緩存、分支預測、亂序執(zhí)行、多處理、推測預讀、地址合并、多線程、上下文切等等。極簡是領域專用處理器的優(yōu)勢。

表 4 顯示了每個芯片的相對推理性能底線,包括兩個加速器 vs. CPU 的主機服務器開銷,展示了這六個 DNN 應用相對性能的加權平均值,表明 K80 芯片速度是 Haswell 的 1.9 倍,TPU 芯片速度是 Haswell 的 29.2 倍,TPU 芯片速度也就是 GPU 的 15.3 倍。

表 4:在 DNN 工作負載下 K80 GPU 芯片和 TPU 芯片與 CPU 的性能比。加權平均值使用了表 1 中六個 app 的實際混合

性價比、全周期成本(TCO)、性能/功耗

大批量購買計算機時會更多地考慮性價比而非性能。數(shù)據(jù)中心最好的成本指標是全周期成本(TCO)。一個組織(如谷歌)購買數(shù)千張芯片時所支付的實際價格取決于與相關企業(yè)的談判溝通。由于涉及商業(yè)機密,我們無法公開此類價格信息或數(shù)據(jù)。但是,功率與 TCO 相關,我們可以公開每臺服務器的功耗數(shù),因此這里我們使用性能/功耗比代替性能/TCO 比。這部分我們對比了整個服務器而不是單個芯片。

圖 4 顯示了 K80 GPU 和 TPU 相對于 Haswell CPU 的平均性能/功耗比。我們給出了兩種不同的性能/功耗比計算。我們展示了兩種不同的性能/功耗計算方法。第一種“total”包括計算 GPU 和 TPU 的性能/功耗時主機 CPU 服務器所消耗的功率;第二種“incremental”從 GPU 和 TPU 中減去了主機 CPU 服務器所消耗的功率。

圖 4:GPU 服務器與 CPU 服務器的性能/功耗對比(藍色條)、TPU 服務器與 CPU 服務器的功耗對比(紅色條)、TPU 服務器與 GPU 服務器的功耗對比(橙色條)。TPU' 是使用 K80 的 GDDR5 內存將 TPU 進行改進后的芯片

對于總性能/瓦特,K80 服務器是 Haswell 的2.1倍。 對于增量性能/瓦特,當忽略 Haswell 服務器電源時,K80 服務器是 Haswell 的 2.9 倍。TPU 服務器的總性能/瓦特比 Haswell 要高出34倍,TPU 服務器的性能/功率也就是 K80 服務器的 16 倍。 對于 TPU 來說,相比 CPU 的相對增量性能/瓦特以谷歌設計 ASIC 的水平已經做到了 83 倍,同時也就是 GPU 的性能/瓦特的29倍。

對替代性 TPU 設計的評估

和 FPU 類似,TPU 協(xié)同處理器比較容易評估,因此我們?yōu)榱鶄€應用創(chuàng)建了一個性能模型。模型模擬的結果和硬件實際性能的平均差距小于 10%。

我們使用性能模型評估了另一款假想的 TPU 芯片,記為 TPU'(使用同樣的半導體技術再多花 15 個月我們就能設計出這款芯片)。更激進的邏輯合成和模塊設計可以把時鐘頻率再提高 50%;為 GDDR5 內存設計接口電路(就像 K80 那樣)可以將權重讀取的內存帶寬提高四倍,將 roofline 從斜到平的拐點從 1350 降到 250。

單獨將時鐘頻率提高到 1,050 MHz 而不改善內存的話,性能提升非常有限。如果我們把時鐘頻率保持在 700MHz,但改用 GDDR5 作為內存,則加權平均值飛躍至 3.9倍。同時做這兩種措施其實并不會改變性能,因此假設的 TPU' 只具備更快的內存就夠了。

DDR3 權重內存替換成與 K80 相同 GDDR5 內存需要將內存通道的數(shù)量翻一倍,即 4 個通道。這一改進會需要將芯片面積擴大約 10%。GDDR5 還需要將 TPU 系統(tǒng)的功率預算從 861W 提高到 900W 左右,因為每臺服務器都有四個 TPU。

從圖4可看出,TPU'的總體每硅片性能/功耗是 Haswell 的 86 倍,K80 的 41 倍。其 incremental 指標是 Haswell 的 196 倍,K80 的 68 倍。

討論

這部分按照 Hennessy 和 Patterson 的謬誤-陷阱-反駁格式來展開:

謬誤:數(shù)據(jù)中心的 DNN 推斷應用將吞吐量和響應時間處于同等重要的地位。

我們驚訝于谷歌 TPU 開發(fā)者對響應時間有這么高的要求,2014 年有人透露說的是:對于 TPU 來說,批量大小應該足夠大,以到達 TPU 的計算性能峰值,對延遲的要求不用那么苛刻。一個起到推動作用的應用是離線圖像處理,谷歌開發(fā)者的直覺是,如果交互式服務也需要 TPU,則大部分服務需要累積足夠大的批量然后才交給 TPU 計算。即使 2014 年谷歌關注響應時間(LSTM1)的應用開發(fā)者稱,2014 年的限制是 10ms,而真正向 TPU 移植時 10ms 將被減少至 7ms。很多此類服務對 TPU 的意料之外的要求,以及它們對快速響應時間的影響和偏好,改變了這個等式。應用編寫者通常會選擇降低延遲,而不是累積更大的批量。幸運的是,TPU 具備一個簡單、可重復的執(zhí)行模型,來滿足交互式服務的低響應時間以及高峰值吞吐量要求,即便是計算相對較小的批量時也比當前 CPU 和 GPU 具備更好的性能。

謬誤:K80 GPU 架構很適合進行 DNN 推理。

我們發(fā)現(xiàn) TPU 在性能、能耗和成本方面優(yōu)于 K80 GPU 有五個方面的原因。1、TPU 只有一個處理器,而 K80 有 13 個,單線程當然更容易滿足嚴格的延遲目標。2、TPU 具備一個非常大的二維乘法單元,GPU 有 13 個小的一維乘法單元。DNN 的矩陣相乘密度適合二維陣列中的算術邏輯運算單元。3、二維陣列還能通過避免訪問寄存器來促成脈動式的芯片實現(xiàn),節(jié)約能源。4、TPU 的量化應用使用 8 位整型,而不是 GPU 的 32 位浮點;K80 并不支持 8 位整型。使用更小的數(shù)據(jù),改善的不僅是計算能耗,還能四倍化權重 FIFO 的有效容量和權重內存的有效帶寬。(盡管推理時使用的是 8 位整型,但訓練這些應用時會保證和使用浮點一樣的準確率)5、TPU 忽略 GPU 需要而 DNN 不需要的特征,從而縮小 TPU 芯片、節(jié)約能耗、為其他改進留下空間。TPU 芯片的大小幾乎是 K80 的一半,通常運行所需能量是后者的三分之一,而它的內存卻是后者的 3.5 倍。這五個因素導致 TPU 在能耗和性能方面優(yōu)于 K80 GPU 30 倍。

陷阱:在設計領域專用架構時不顧架構歷史。

不適用通用計算的想法可能適合領域專用架構。對于 TPU 而言,三個重要的架構特征可以追溯到 1980 年代早期:脈動陣列(systolic array)、解耦訪問/執(zhí)行(decoupled access/execute)和復雜的指令集。第一個特征減少了大型矩陣相乘單元的面積和能耗;第二個特征在矩陣相乘單元運算期間并行獲取權重;第三個特征更好地利用 PCIe bus 的有限帶寬來發(fā)送指令。因此,對計算機架構歷史比較了解的領域專用架構設計師具備競爭優(yōu)勢。

謬誤:如果谷歌對 CPU 的使用更加高效,它得到的結果將可以媲美 TPU。

由于有效使用 CPU 的高級向量擴展(AVX2)對整型計算做高效的支持需要大量工作,最初在 CPU 上只有一個 DNN 有 8 位整型的性能測試結果,它的性能提升大約是 3.5 倍。所有的 CPU 性能評估都基于浮點的計算性能來展示會更明確(也不會占太多圖表空間),也就沒有給這個整型計算結果繪制單獨的 Roofline 圖。如果所有 DNN 都能夠得到類似的加速,TPU 帶來的性能/功耗比提升將分別從 41 倍和 83 倍降為 12 倍和 24 倍。

謬誤:如果谷歌使用合適的新版本,GPU 結果將與 TPU 差不多。

表 3 報告了發(fā)布 GPU 和客戶何時可以在云中使用 GPU 的區(qū)別。與較新的 GPU 進行公平比較將包括新的 TPU,而對于額外增加的 10W 功耗,我們只需使用 K80 的 GDDR5 內存就可以將 28 納米、0.7GHz、40W TPU 的性能提高三倍。把 TPU 移動到 16 納米工藝將進一步提高其性能/功耗。16 納米英偉達 Pascal P40 GPU 的峰值性能是第一代TPU 的一半,但它 250 瓦的能耗卻是原來的很多倍。如前所述,缺乏錯誤檢測意味著 Google 無法再去數(shù)據(jù)中心部署 P40,因此無法在它們身上運行生產工作負載來確定其實際相對性能。

相關研究

兩篇介紹 DNN ASIC 的研究文章至少可以追溯到 20 世紀 90 年代初。如 2016 年的 ACM 通訊中所述,DianNao 家族有四種 DNN 架構,通過對 DNN 應用程序中的內存訪問模式提供有效的架構支持,可以最大限度地減少片上和外部 DRAM 的內存訪問。最初的 DianNao 使用 64 個 16 位整數(shù)乘法累加單元的陣列。

谷歌 TPU 3.0 于今年 5 月推出,其功能是 TPU 2.0 的八倍,性能高達 100petaflops,芯片使用液體冷卻為 DNN 設計特定領域架構仍然是計算機架構師的熱門話題,其中一個焦點是稀疏矩陣的計算架構,這是在 2015 年 TPU 首次部署之后提出的。

Efficient Inference Engine(高效推理機)中有一步單獨的初始掃描,它會過濾去掉非常小的值,將權重數(shù)量減少到 1/10 左右,然后使用哈夫曼編碼進一步縮小數(shù)據(jù)以提高推理的性能。Cnvlutin 略去了激活輸入為零時的乘法運算,這種計算出現(xiàn)的幾率可以達到 44%,部分原因是非線性變換函數(shù) ReLU 會把輸入的負值轉換為零;這種略去計算的做法使平均性能提高了 1.4 倍。

Eyeriss 是一種新穎的低功耗數(shù)據(jù)流架構,通過游程編碼利用數(shù)據(jù)中的零來減少內存占用,并通過避免輸入為零時的計算來節(jié)省能耗。Minerva 是一種跨算法、結構和電路學科的協(xié)同設計系統(tǒng),通過量化數(shù)據(jù)以及對較小的激活函數(shù)剪枝的方式把功耗降低到原來的 1/8。這種系統(tǒng)在 2017 年展出的成果是 SCNN——一種稀疏和壓縮卷積神經網絡的加速器。權重和激活函數(shù)都被壓縮在 DRAM 和內部緩沖器中,從而減少了數(shù)據(jù)傳輸所需的時間和能量,并允許芯片存儲更大的模型。

2016 年以來的另一個趨勢,是用于訓練的特定領域架構。例如,ScaleDeep 就是為 DNN 訓練和推理設計的高性能服務器的一次嘗試,它包含數(shù)千個處理器。其中的每塊芯片都以 3:1 的比例包含計算專用模塊和存儲專用模塊,性能優(yōu)于 GPU 6-28 倍。它支持 16 位或 32 位浮點計算。芯片通過與 DNN 通信模式匹配的高性能互連拓撲連接。和 SCNN 一樣,這種拓撲只在 CNN 上評估。2016 年,CNN 僅占谷歌數(shù)據(jù)中心 TPU 工作量的 5%。計算機架構師期待對其它類型的 DNN 和硬件實現(xiàn)進行 ScaleDeep 評估。

DNN 似乎是 FPGA 作為數(shù)據(jù)中心計算平臺的一個良好用例。實際部署的一個例子是 Catapult。盡管 Catapult 是在 2014 年公開發(fā)布的,但它與 TPU 是同一個時代的,因為 2015 年在微軟數(shù)據(jù)中心部署了 28 納米 Stratix V FPGA,與谷歌部署 TPU 差不多在同一時間。Catapult 運行 CNN 比普通服務器快 2.3 倍。也許 Catapult 和 TPU 最顯著的區(qū)別在于,為了獲得最佳性能,用戶必須使用低級硬件設計語言 Verilog 為 FPGA 編寫長程序,而不是使用高級 TensorFlow 框架編寫短程序;也就是說,“可再編程性”(re-programmability)來自于 TPU 的軟件,而不是最快 FPGA 的固件。

總結

盡管 TPU 在 I/O 總線上,并且內存帶寬相對有限限制了它發(fā)揮全部效能(六個 DNN 應用程序中有四個受限于內存),但一個很大的數(shù)即便拆到很細,拆到每個周期 65536 次乘法累加計算,仍然是一個相對較大的數(shù)字,如 roofline 性能模型所示。這個結果表明,Amdahl 定律的其實有一個非常有價值的推論——大量廉價資源的低效利用仍然可以提供頗具性價比的高性能。

我們了解到,推理應用具有嚴格的響應時間限制,因為它們通常是面向用戶的應用;因此,為 DNN 設計計算芯片的設計師們需要保證滿足 99% 情況下的時間限制要求。

TPU 芯片利用其在 MAC 和片上內存的優(yōu)勢運行使用特定領域 TensorFlow 框架編寫的短程序,該 TensorFlow 框架比 K80 GPU 芯片快 15 倍,因此能獲得 29 倍的性能/功耗優(yōu)勢,這與性能/總擁有成本相關。與 Haswell CPU 芯片相比,對應的比率分別為 29 和 83 倍。

有五個架構因素可以解釋這種性能差距:

處理器。TPU只有一個處理器,而K80有13個,CPU有18個;單線程使系統(tǒng)更容易保持在固定的延遲限制內。

大型二維乘法單元。TPU有一個非常大的二維乘法單元,而CPU和GPU分別只有18個和13個較小的一維乘法單元;二維硬件在矩陣乘法中有很好的性能。

脈動陣列。二維組織支持脈動陣列,減少寄存器訪問和能量消耗。

8位整型。TPU的應用使用 8 位整型而不是 32 位浮點運算來提高計算和內存效率。

棄掉的特征。TPU放棄了 CPU 和 GPU 需要但是 DNN 用不到的功能,這使得 TPU 更便宜,同時可以節(jié)約資源,并允許晶體管被重新用于特定領域的板載內存。

雖然未來的 CPU 和 GPU 在運行推理時速度更快,但是使用 circa-2015 型 GPU 內存重新設計的 TPU 將比原來快三倍,并使其性能/功耗優(yōu)勢分別為 K80 和 Haswell 的 70 倍和 200 倍。

至少在過去十年中,計算機架構研究人員發(fā)布的創(chuàng)新成果都是來自模擬計算的,這些成果使用了有限的基準,對于通用處理器的改進也只有 10% 或更少,而我們現(xiàn)在報告的性能提升是原來的十倍不止,這是應用于真實生產應用的真實硬件中部署的特定領域架構的收益。

商業(yè)產品之間的數(shù)量級差異在計算機架構中很少見,而這甚至可能導致 TPU 成為該領域未來工作的典范。我們預計,其他人也會跟進這個方向,并將門檻提得更高。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • TPU
    TPU
    +關注

    關注

    0

    文章

    141

    瀏覽量

    20746
  • AI芯片
    +關注

    關注

    17

    文章

    1889

    瀏覽量

    35095

原文標題:為什么 AI 芯片時代必然到來——從TPU開始的幾十倍性能之旅

文章出處:【微信號:AItists,微信公眾號:人工智能學家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Samtec AI漫談 | 人工智能領域特定架構

    特定領域架構是一種設計理念 特定領域架構是一種設計理念,可讓
    發(fā)表于 11-27 14:04 ?411次閱讀
    Samtec <b class='flag-5'>AI</b>漫談 | 人工智能<b class='flag-5'>領域</b><b class='flag-5'>特定</b><b class='flag-5'>架構</b>

    《算力芯片 高性能 CPUGPUNPU 微架構分析》第3篇閱讀心得:GPU革命:從圖形引擎到AI加速器的蛻變

    CPU、GPU的演進歷程,AI專用芯片或將引領未來計算平臺的新方向。正如愛因斯坦所說:\"想象力比知識更重要\" —— 在芯片設計
    發(fā)表于 11-24 17:12

    AI技術驅動半導體產業(yè)升級,芯原布局未來智能計算領域

    隨著AI技術在高性能計算、機器學習和深度學習等領域的廣泛應用,對高性能芯片的需求日益增長,這直接推動了半導體產業(yè)的迅猛發(fā)展和升級。在2024全球CEO峰會上,芯原執(zhí)行副總裁、業(yè)務運營部
    的頭像 發(fā)表于 11-06 13:53 ?479次閱讀

    架構與設計 常見微服務分層架構的區(qū)別和落地實踐

    架構風格越傾向清晰的職責定位,且讓領域模型成為架構的核心。 基于這些架構風格,在軟件
    的頭像 發(fā)表于 10-22 15:34 ?266次閱讀
    <b class='flag-5'>架構</b>與設計 常見微<b class='flag-5'>服務</b>分層<b class='flag-5'>架構</b>的區(qū)別和落地實踐

    【「大模型時代的基礎架構」閱讀體驗】+ 未知領域的感受

    器再到大模型云平臺的構建,此書都有提及和講解,循序漸進,讓讀者可以由點及面,由面到體的來認識大數(shù)據(jù)模型的體系架構。 前言中,作者通過提出幾個問題來引導讀者閱讀思考——分布式AI計算依賴哪些硬件特性
    發(fā)表于 10-08 10:40

    名單公布!【書籍評測活動NO.43】 算力芯片 | 高性能 CPU/GPU/NPU 微架構分析

    ,即大模型專用AI超級計算機的中樞核心。 作者介紹: 濮元愷,曾就職中關村在線核心硬件事業(yè)部,負責CPU和GPU類產品評測,長期關注GPGPU并行計算相關
    發(fā)表于 09-02 10:09

    AI芯片的混合精度計算與靈活可擴展

    電子發(fā)燒友網報道(文/李彎彎)當前,AI技術和應用蓬勃發(fā)展,其中離不開AI芯片的支持。AI芯片是一個復雜而多樣的
    的頭像 發(fā)表于 08-23 00:08 ?4899次閱讀

    自動駕駛三大主流芯片架構分析

    當前主流的AI芯片主要分為三類,GPU、FPGA、ASIC。GPU、FPGA均是前期較為成熟的芯片架構,屬于通用型芯片。ASIC屬于為
    的頭像 發(fā)表于 08-19 17:11 ?1667次閱讀
    自動駕駛三大主流<b class='flag-5'>芯片</b><b class='flag-5'>架構</b>分析

    AI服務器:開啟智能計算新時代

    一、AI服務器的定義與特點 AI服務器的定義 AI服務器是一種基于云
    的頭像 發(fā)表于 08-09 16:08 ?915次閱讀

    ai服務器是什么架構類型

    AI服務器,即人工智能服務器,是專門為人工智能應用設計的高性能計算服務器。AI
    的頭像 發(fā)表于 07-02 09:51 ?1111次閱讀

    Imagination 引領邊緣計算AI創(chuàng)新,擁抱AI未來發(fā)展

    ,致力推動技術創(chuàng)新,擁抱人工智能的未來發(fā)展。同時他也介紹了Imagination在計算領域的戰(zhàn)略布局、產品技術以及對未來
    的頭像 發(fā)表于 06-28 08:28 ?553次閱讀
    Imagination 引領邊緣<b class='flag-5'>計算</b>和<b class='flag-5'>AI</b>創(chuàng)新,擁抱<b class='flag-5'>AI</b><b class='flag-5'>未來</b>發(fā)展

    進一步解讀英偉達 Blackwell 架構、NVlink及GB200 超級芯片

    新的標準。Blackwell架構和GB200 超級芯片有望推動英偉達在人工智能領域更進一步,鞏固其在高性能計算和人工智能技術領域的領先地位。
    發(fā)表于 05-13 17:16

    SK海力士稱AI存儲芯片2025年訂單幾乎已滿

    SK海力士CEO郭魯正近日在公開場合表示,AI存儲芯片的市場需求正在迅猛增長,預計至2025年的訂單已接近飽和。他強調,雖然目前AI主要服務于數(shù)據(jù)中心,但
    的頭像 發(fā)表于 05-08 10:28 ?530次閱讀

    risc-v多核芯片AI方面的應用

    應用中的成本。 最后,RISC-V多核芯片不僅可以應用于AI邊緣計算領域,還可以擴展到其他領域,如數(shù)據(jù)中心、云
    發(fā)表于 04-28 09:20

    荷蘭AI芯片設計公司Axelera計劃推出新型汽車芯粒AI架構

    荷蘭邊緣人工智能(AI芯片設計領域的領軍企業(yè)Axelera AI Solutions正在積極開發(fā)一款新型的汽車芯粒(chiplet)內存計算
    的頭像 發(fā)表于 01-18 18:24 ?1864次閱讀