?
如今,有一個詞聽到耳根生繭卻有些觸不可及,這個詞就是“人工智能”,曾經(jīng)它活在科幻小說中,如今它活在新聞標題中,然而降臨在我們身邊,還是一個未知的時間、未知的地點、未知的場景。
自 2016 年 3 月 AlphaGo 戰(zhàn)勝李世石,全世界掀起了一場對人工智能的熱戀,一個仍在實驗室里的襁褓瞬間就成了國民對象。一場 AI 軍備競賽也逐漸浮出水面,無論是科技大佬還是初創(chuàng)公司,誰都不愿錯過這場即將爆發(fā)的 AI 風暴。
前幾天,谷歌又掀起一場 AI 風波,TPU 來襲、劍指 GPU,本來就難分勝負的 AI 芯片之戰(zhàn),更撲朔迷離。
那么本期《趣科技》我們就來講講誰是 AI 時代真正的“硬”角色。
最近我們總聽到一種論調(diào)“中國人工智能直追美國”,而麥肯錫最新研究報告顯示,盡管中國在人工智能的論文數(shù)量方面超過美國,但是中國 AI 研究的影響力尚不及美國或者英國。這究竟是為什么?為何一個很鼓舞人心的消息后面總有一個殘酷的現(xiàn)實。
在人工智能的賽道上,有三大軍團,即算法、計算能力、芯片,而核心陣地顯然是在硬件方面。我國與美國的差距也主要是在此方面。
?
目前,在 AI 芯片領(lǐng)域,有幾大競爭主力:
- FPGA,現(xiàn)場可編程門陣列,玩家有賽靈思、Altera(已被英特爾收購)、Lattice、Microsemi;
- ASIC,專用集成電路,美國英特爾、高通、微軟,英國 Graphcore,中國中科院計算所、地平線機器人等均有布局;
- 類腦芯片,美國 IBM、高通,中國中科院計算所、北京大學、中星微等已有不俗的成績。
?
顯然,在 GPU 和 FPGA 上我國缺席,在 ASIC 與類腦芯片上也只是一個追隨者,這就是與美國的差距所在。而說我們緊追美國也不為過,在 AI 應用層面,在語音識別和定向廣告等方面,百度已經(jīng)走在全球前列。
隨著人工智能的大量涌現(xiàn),AI 芯片市場群雄爭霸,廠商紛紛推出新的產(chǎn)品,都想領(lǐng)跑智能時代——但問題是,誰會擔當這個角色呢?
目前來看,GPU 是厚積薄發(fā)正當時,在深度學習領(lǐng)域發(fā)揮著巨大作用;FPGA 被視為 AI 時代的萬能芯片,架構(gòu)靈活獨具特色;ASIC 這個后起之秀,被企業(yè)視作引發(fā)一輪全面的顛覆的杰作。其推動代表之一就是谷歌,2016 年宣布將獨立開發(fā)一種名為 TPU 的全新的處理系統(tǒng),而在前幾日,這個神秘的 TPU 現(xiàn)真容。谷歌表示 TPU 已經(jīng)在谷歌數(shù)據(jù)中心內(nèi)部使用大約兩年,并且 TPU 在推理方面的性能要遠超過 GPU。
TPU,為深度學習而生的 ASIC
TPU 是谷歌專門為加速深層神經(jīng)網(wǎng)絡(luò)運算能力而研發(fā)的一款芯片,可用來加速神經(jīng)網(wǎng)絡(luò)(NN)的推理階段,其實是一款 ASIC。
我們先來看一下什么是 ASIC,ASIC 指依照產(chǎn)品需求不同而定制化的特殊規(guī)格集成電路,由特定使用者要求和特定電子系統(tǒng)的需要而設(shè)計、制造。一般來說,ASIC 在特定功能上進行了專項強化,可以根據(jù)需要進行復雜的設(shè)計,但相對來說,實現(xiàn)更高處理速度和更低能耗。相對應的,ASIC 的生產(chǎn)成本也非常高。
谷歌為什么要做 TPU 呢?一方面是有錢任性,畢竟一般公司很難承擔為深度學習開發(fā)專門處理器 ASIC 芯片的成本和風險;另一方面是自身需求大,龐大的體量比如谷歌圖像搜索、谷歌照片、谷歌云視覺 API、谷歌翻譯等產(chǎn)品和服務(wù)都需要用到深度神經(jīng)網(wǎng)絡(luò),開發(fā)一款 ASIC 可得到廣泛的應用。
早在 2011 年谷歌就意識到他們遇到的問題,開始思考使用深度學習網(wǎng)絡(luò)了,這些網(wǎng)絡(luò)運算需求高,令他們的計算資源變得緊張。
CPU 能夠非常高效地處理各種計算任務(wù),但 CPU 的局限是一次只能處理相對來說很少量的任務(wù);GPU 在執(zhí)行單個任務(wù)時效率較低,而且所能處理的任務(wù)范圍更小,GPU 是理想的深度學習芯片,但是能耗的問題又非常嚴重。于是 TPU 應用而生。
?
下面我們就來看看谷歌是如何夸自家 TPU 的:
- 在神經(jīng)網(wǎng)絡(luò)層面的操作上,處理速度比當下 GPU 和 CPU 快 15 到 30 倍;
- 在能效比方面,速度 / 功率比(TOPS/Watt)比 GPU 和 CPU 高 30 到 80 倍,如果在 TPU 中使用 GPU 的 GDDR5 內(nèi)存,速度(TOPS)將會翻三倍,速度 / 功率比(TOPS/Watt)能達到 GPU 的 70 倍以及 CPU 的 200 倍;
- 在代碼上也更加簡單,100 到 1500 行代碼即可以驅(qū)動神經(jīng)網(wǎng)絡(luò)。
“TPU 的中心是一個 65536 的 8 位 MAC 矩陣乘法單元,可提供 92 萬億次運算 / 秒(TOPS)的速度和一個大的(28 MiB)的可用軟件管理的片上內(nèi)存。相對于 CPU 和 GPU 的隨時間變化的優(yōu)化方法(高速緩存、無序執(zhí)行、多線程、多處理、預取……),這種 TPU 的確定性的執(zhí)行模型能更好地匹配我們的神經(jīng)網(wǎng)絡(luò)應用的 99% 的響應時間需求,因為 CPU 和 GPU 更多的是幫助對吞吐量進行平均,而非確保延遲性能。這些特性的缺失有助于解釋為什么盡管 TPU 有極大的 MAC 和大內(nèi)存,但卻相對小和低功耗。我們將 TPU 和服務(wù)器級的英特爾 Haswell CPU 與現(xiàn)在同樣也會在數(shù)據(jù)中心使用的英偉達 K80 GPU 進行了比較。我們的負載是用高級的 TensorFlow 框架編寫的,并是用了生產(chǎn)級的神經(jīng)網(wǎng)絡(luò)應用(多層感知器、卷積神經(jīng)網(wǎng)絡(luò)和 LSTM),這些應用占到了我們的數(shù)據(jù)中心的神經(jīng)網(wǎng)絡(luò)推理計算需求的 95%?!?/p>
關(guān)于谷歌 TPU,也許如下幾張圖給出的說明更清晰:
?
6 種神經(jīng)網(wǎng)絡(luò)應用(每種神經(jīng)網(wǎng)絡(luò)類型各 2 種)占據(jù)了 TPU 負載的 95%。表中的列依次是各種神經(jīng)網(wǎng)絡(luò)、代碼的行數(shù)、神經(jīng)網(wǎng)絡(luò)中層的類型和數(shù)量(FC 是全連接層、Conv 是卷積層,Vector 是向量層,Pool 是池化層)以及 TPU 在 2016 年 7 月的應用普及程度。RankBrain 使用了 DNN,谷歌神經(jīng)機器翻譯中用到了 LSTM,Inception 用到了 CNN,DeepMind AlphaGo 也用到了 CNN。
?
TPU 各模塊的框圖,主要計算部分是右上方的黃色矩陣乘法單元。其輸入是藍色的「權(quán)重 FIFO」和藍色的統(tǒng)一緩存(Unified Buffer(UB));輸出是藍色的累加器(Accumulators(Acc))。黃色的激活(Activation)單元在 Acc 中執(zhí)行流向 UB 的非線性函數(shù)。
TPU 芯片布局圖,藍色的數(shù)據(jù)緩存占芯片的 37%。黃色的計算是 30%。綠色的 I/O 是 10%。紅色的控制只有 2%。CPU 或 GPU 中的控制部分則要大很多(并且非常難以設(shè)計)。
矩陣乘法單元的 systolic 數(shù)據(jù)流,軟件具有每次讀取 256B 輸入的錯覺,同時它們會立即更新 256 個累加器 RAM 中其中每一個的某個位置。
與 GPU 相比,TPU 的優(yōu)勢還體現(xiàn)在:
TPU 使用了大規(guī)模片上內(nèi)存
谷歌可能意識到片外內(nèi)存訪問是 GPU 能效比低的罪魁禍首,因此在 TPU 上放了巨大的內(nèi)存,高達 24MB 的局部內(nèi)存、6MB 的累加器內(nèi)存以及用于與主控處理器進行對接的內(nèi)存,總共占芯片面積的 37%。這樣下成本,可見谷歌是充分做了權(quán)衡的。。相比之下,英偉達 K80 只有 8MB 的片上內(nèi)存,因此需要不斷地去訪問片外 DRAM。
TPU 采用脈動式數(shù)據(jù)流
對于 GPU,從存儲器中取指令與數(shù)據(jù)將耗費大量的時間。
TPU 卻不同,TPU 甚至沒有取命令的動作,而是主處理器提供給它當前的指令,并根據(jù)目前的指令做相應操作,這使得 TPU 能夠?qū)崿F(xiàn)更高的計算效率。TPU 加入了脈動式數(shù)據(jù)流的支持,每個時鐘周期數(shù)據(jù)移位,并取回一個新數(shù)據(jù)。這樣做可以最大化數(shù)據(jù)復用,并減小內(nèi)存訪問次數(shù),在降低內(nèi)存帶寬壓力的同時也減小了內(nèi)存訪問的能量消耗。
TPU 叫板者說了啥?
說的了這么多,TPU 真的如谷歌描述的那樣,能成為顛覆 AI 的那個芯片?
早在 2016 年英偉達的 CEO 黃仁勛就表示,兩年前谷歌就意識到 GPU 更適合訓練,而不善于做訓練后的分析決策。由此可知,谷歌打造 TPU 的動機只是想要一款更適合做分析決策的芯片。這一點在谷歌的官方聲明里也可得到印證,Google 資深副總裁 Urs Holzle 表示,當前 Google TPU、GPU 并用,這種情況仍會維持一段時間,GPU 可執(zhí)行繪圖運算工作,用途多元;TPU 屬于 ASIC,也就是專為特定用途設(shè)計的特殊規(guī)格邏輯 IC,由于只執(zhí)行單一工作,速度更快,但缺點是成本較高。
?
總而言之,TPU 只在特定應用中作為輔助使用,谷歌將繼續(xù)使用 CPU 和 GPU。
谷歌 TPU 挑釁 GPU,隨后英偉達黃仁勛親自撰文將將 TPU 和英偉達最新品 P40 做比較,針尖對麥芒,要“還原”一個真相。我們看看黃仁勛都說了什么:
“英偉達 Tesla P40 在 GoogleNet 推斷任務(wù)中的性能是 Google TPU 的 2 倍。不僅如此,P40 的帶寬也是 TPU 的十倍還多?!?/p>
不過這個結(jié)果也是被廣大明眼的網(wǎng)友無情吐槽:相同情況下,TPU 的能耗是 75W,而 P40 的能耗是 250W;谷歌論文里的是第一代 TPU(2015 年部署在谷歌數(shù)據(jù)中心),現(xiàn)在肯定已經(jīng)升級好幾代了——黃仁勛用最新 GPU 與第一代 TPU 對比,GPU 性能更優(yōu)也無疑是必然的結(jié)果;還有一個很現(xiàn)實的問題擺在面前,這就是價格,P40 24GB 版本售價 5 千多美元,TPU 成本估計在幾百美元,拿一“貴族”和一個“平民”比品味,這個也有點不合適吧。
不過,黃仁勛在文章里指出的以下幾點值得注意:
“雖然 Google 和 NVIDIA 選擇了不同的開發(fā)道路,但我們的方法中還是有一些共同點。特別是:
- 人工智能需要加速計算。在摩爾定律放緩的時代,加速器提供了深度學習重要的數(shù)據(jù)處理需求;
- 張量處理是深度學習訓練和推理性能的核心;
- 張量處理是企業(yè)在構(gòu)建現(xiàn)代數(shù)據(jù)中心時必須重點考慮的新工作量;
- 加速張量處理可以大大降低修建現(xiàn)代數(shù)據(jù)中心的成本。
除了黃仁勛,國內(nèi)也有 TPU 叫板的聲音,指出:谷歌所謂 TPU 其實是新瓶裝舊酒——這款芯片仍然沿用了傳統(tǒng)的脈動陣列機架構(gòu),也是當今許多面向深度學習的 DSP 所采用的的架構(gòu)。 TPU 在架構(gòu)方面并沒有太多新意。在其架構(gòu)公開之前,在學術(shù)界和工業(yè)界其實已經(jīng)有大量類似的工作(將脈動陣列機用于處理深度學習)。脈動陣列架構(gòu)本身是個傳統(tǒng)技術(shù),早在 1980 年代初,中科院計算所的夏培肅院士和李國杰院士就曾將脈動陣列架構(gòu)用于石油勘探——計算所曾經(jīng)研發(fā)過的石油勘探專用機就是采用了脈動陣列架構(gòu)。將脈動陣列架構(gòu)用于深度學習,其實是近年來 DSP 和硬件加速領(lǐng)域的舊瓶裝新酒。
同時,這里要強調(diào)一點,中科院計算所的人工智能專用芯片寒武紀團隊成員與 Olivier Temam 教授、Paolo Ienne 教授共同發(fā)表于 ISCA2015 的 ShiDianNao 學術(shù)論文就已經(jīng)討論過脈動陣列架構(gòu),而 Olivier Temam 教授現(xiàn)在恰恰供職于谷歌。
AI 芯片之爭果真讓人看不清,TPU 能否攪局成功也一時無法下結(jié)論,但是 TPU 的出現(xiàn)讓面向神經(jīng)網(wǎng)絡(luò) / 深度學習特定領(lǐng)域加速的芯片趨勢更加明顯。同時, 谷歌 并沒有表現(xiàn)出要在數(shù)據(jù)中心以外領(lǐng)域使用 TPU 的打算。也許谷歌 TPU 象征意義要大于實際意義,畢竟對于一個沒有任何芯片制造歷史的公司提出并實現(xiàn)了一個比英偉達 GPU 更快的方案,這是一種超越,更表明英偉達的護城河被攻破。未來是不是有一批公司追隨谷歌腳步開發(fā)自己的 ASIC 呢,這是一個未知的問題,但是谷歌 TPU 帶來一種趨勢。
如果你對本系列感興趣,歡迎點擊《趣科技》繼續(xù)閱讀!
?
與非網(wǎng)原創(chuàng)文章,未經(jīng)許可,不得轉(zhuǎn)載!