11月28日消息,據(jù)AndroidAuthority報道,在利用搜索和Android幫助定義了現(xiàn)代互聯(lián)網(wǎng)時代之后,谷歌又走在計算研究和開發(fā)的下一波浪潮——人工智能(AI)的前沿。許多人認為AI和神經(jīng)網(wǎng)絡(luò)計算機是計算的下個階段,它們將會發(fā)展出新的用途,并用更快的計算速度解決目前無法解決的問題。自稱為“AI優(yōu)先(AI first)”公司的谷歌,正以多種方式引領(lǐng)著這些新技術(shù)的應(yīng)用。
神經(jīng)網(wǎng)絡(luò)算法和機器學(xué)習(xí)已經(jīng)成為谷歌諸多服務(wù)的核心。它們過濾Gmail的垃圾郵件,優(yōu)化目標廣告;當(dāng)你與谷歌智能助理Google Assistant或智能音箱Google Home交談時,它們會分析你的聲音;在智能手機內(nèi)部,像Google Lens和三星Bixby類似的應(yīng)用凸顯了AI視覺處理的力量;甚至像Spotify和Netflix這樣的公司也在使用谷歌的云服務(wù)器,來為用戶量身定制內(nèi)容。
谷歌的“云平臺”(Cloud Platform)是其(以及第三方)努力的核心,它們希望更好地利用這個日益流行的計算領(lǐng)域。然而,這個新領(lǐng)域需要新的硬件支持才能高效運行,谷歌已經(jīng)投入巨資研究自己的處理硬件,它將其稱為張量處理單元(TPU)。這種自定義硬件被打包到谷歌的服務(wù)器上,已經(jīng)為當(dāng)前和擴展的AI生態(tài)系統(tǒng)提供動力。但它到底是如何工作的呢?
1.TPU VS CPU——搜索效率更高
在今年早些時候的I/O開發(fā)者大會上,谷歌發(fā)布了第二代TPU,為更大芯片集群提供更高的性能和更好的擴展。TPU是個應(yīng)用集成電路,它是專門為特定用例設(shè)計的定制硅芯片,而不是像CPU那樣的普通處理單元。TPU被設(shè)計用于處理普通機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)計算的訓(xùn)練和推理任務(wù)。具體來說,就是矩陣乘法(matrix multiply)、點積(dot product)和量化變換(quantization transform),通常精度為8位。
雖然這些計算也可以在CPU上進行,有時甚至在GPU上進行計算更高效,但在跨操作類型的擴展時,這些架構(gòu)在性能和能源效率方面都會受到限制。例如,與16位浮點優(yōu)化設(shè)計相比,IEEE 754 8位整數(shù)乘法優(yōu)化設(shè)計能源效率會提高5.5倍,而面積效率會增加6倍。與32位浮點優(yōu)化設(shè)計相比,IEEE 754 8位整數(shù)乘法優(yōu)化設(shè)計的能量效率提高18.5倍,面積效率會提高27倍。IEEE 754正成為所有使用浮點計算的現(xiàn)代CPU技術(shù)標準。
此外,從用戶角度來看,許多神經(jīng)網(wǎng)絡(luò)用例需要低延遲甚至是即時處理。這有利于使用專用硬件執(zhí)行特定任務(wù),而不是試圖將通常較高的延遲圖形架構(gòu)與新的用例結(jié)合起來。訪問外部RAM的內(nèi)存延遲也可能帶來高昂的代價。在大型數(shù)據(jù)中心,當(dāng)在CPU或GPU上執(zhí)行神經(jīng)網(wǎng)絡(luò)功能時,電源和面積效率低下會導(dǎo)致巨大的成本開支。不僅在硅和設(shè)備方面開支激增,能源賬單在很長一段時間內(nèi)都會居高不下。谷歌知道,如果機器學(xué)習(xí)能夠以一種有意義的方式取得成功,它需要的硬件不僅性能要高,而且還能提供比領(lǐng)先CPU和GPU更高的能源效率。
為了解決這個問題,谷歌開始設(shè)計它的TPU,以提供比現(xiàn)成GPU性價比高10倍的改進。最終的設(shè)計是個協(xié)同處理器,可以連接到普通的PCIe總線上,允許它與普通CPU共同工作,并通過它下達指令和處理流量,同時通過設(shè)計一個附加組件來加速部署時間。因此,這種設(shè)計在概念提出15個月后,就開始在谷歌的數(shù)據(jù)中心部署和運行。
2.TPU深析
今年早些時候,谷歌發(fā)布報告,將其TPU與英特爾HaswellCPU和Nvidia的Tesla K80 GPU在性能和效率上進行全面比較,讓我們更深入地了解其處理器的設(shè)計。谷歌TPU的核心是矩陣乘法單元(Matrix Multiply Unit)。該單元包含65538個8位的乘數(shù)累加器(MAC),即專門設(shè)計用于計算點積的硬件單元,并將其添加到累加器中。當(dāng)使用浮點數(shù)計算時,它被稱為熔加運算(Fused Multiply-Add,簡稱FMA)。這是ARM為優(yōu)化其最新的Cortex-A75和A55 CPU以及Mali-G72 GPU而做出的努力。
與CPU或GPU不同的是,當(dāng)發(fā)送數(shù)據(jù)到算術(shù)邏輯單元(ALU)和從ALU發(fā)送數(shù)據(jù)時,它可以訪問多個寄存器的每個操作,這個MAC實現(xiàn)了一個收縮設(shè)計,它每次讀取一個寄存器上的操作,并在整個漫長的計算過程中重新使用這個值。這在TPU中是可能的,因為它的簡化設(shè)計讓我們看到ALU在adjoining ALU上執(zhí)行乘法和添加固定模式,而不需要任何內(nèi)存訪問。這限制了設(shè)計的功能擴展,但極大地提高了它的性能和效率。
從數(shù)字上看,在每個循環(huán)中,谷歌的TPU可以處理8位整數(shù)的65536個乘數(shù)累加。鑒于TPU在700兆赫功率上運行,它可以計算65536×700000000 = 46×1012個乘數(shù)累加操作或92 TeraOps(每秒萬億次操作)的矩陣單元。谷歌宣稱,它的第二代TPU可以傳輸高達180萬億次浮點運算。這比典型的標量RISC處理器的性能要高得多,后者通常需要多個指令傳遞一個操作。
矩陣乘法單元下的16位產(chǎn)品被收集在32位累加器的4 MiB中。還有一個24MB的SRAM作為統(tǒng)一緩沖區(qū),充當(dāng)寄存器。控制處理器的指令通過PCIe總線從一個CPU發(fā)送到TPU上。這些是復(fù)雜的CISC類型指令,以便運行復(fù)雜的任務(wù),這些任務(wù)是每個指令,例如無數(shù)的乘數(shù)累加運算。這些指令通過一個4階管道傳遞。對于TPU來說,總共只有12條指令,其中最重要的5條是簡單地在內(nèi)存中讀取和寫入結(jié)果和權(quán)重,并開始一個數(shù)據(jù)和權(quán)重的矩陣乘法/卷積。
總的來說,谷歌的TPU更像浮點協(xié)作處理器,而不是GPU。它是一個令人驚訝的流線型硬件,由一個主要的處理單元和一個小的簡化控制方案組成。這里沒有緩存、分支預(yù)測器、多處理互連,或者其他在普通CPU中可以找到的微架構(gòu)特性。這有助于大大節(jié)省硅面積和能源消耗量。
在性能方面,谷歌表示,與CPU相比,其TPU設(shè)計的性能-功率比提高了83倍,比GPU運行性能高29倍。芯片設(shè)計不僅提高能源效率,而且能帶來更高的性能。在六種常見的參考神經(jīng)網(wǎng)絡(luò)工作負載中,TPU在所有測試中都具有顯著的性能優(yōu)勢,通常比GPU快20倍,或者比CPU快71倍。當(dāng)然,這些結(jié)果會因CPU和GPU的測試種類不同而有差別,但是谷歌對高端英特爾Haswell E5-2699 v3和Nvidia K80進行了測試,以對其硬件加強了解。
3.與英特爾聯(lián)手研究邊緣計算
谷歌的硬件努力使它在云計算領(lǐng)域中有了一個重要的開端,但并不是所有AI應(yīng)用都適合如此遠距離地傳輸數(shù)據(jù)。有些應(yīng)用幾乎需要即時計算,例如無人駕駛汽車,因此不能依賴于互聯(lián)網(wǎng)上更高延遲的數(shù)據(jù)傳輸,即使云端的計算能力非???。相反,這些類型的應(yīng)用需要在設(shè)備上完成,同樣的應(yīng)用也適用于許多智能手機應(yīng)用,比如在RAW上處理圖像數(shù)據(jù)。
在Pixel 2的基礎(chǔ)上,谷歌首次嘗試將神經(jīng)網(wǎng)絡(luò)功能引入專用的硬件中,以適應(yīng)更低功率的移動形式因子——Pixel Visual Core。有趣的是,谷歌與英特爾聯(lián)手推出了這種芯片,這表明它并非完全是谷歌內(nèi)部設(shè)計的。我們不知道這種合作到底意味著什么,它可能只是與架構(gòu)或與制造連接有關(guān)。
英特爾已經(jīng)收購了多家AI硬件公司、包括Nervana Systems(2016年)、Movidius(2016年9月)以及Mobileye(2017年3月)。我們也知道,英特爾有自己的神經(jīng)網(wǎng)絡(luò)處理器,代號Lake Crest,它屬于Nervana Systems。這是英特爾收購?fù)竞笸瞥龅奶幚砥?,我們還不太了解它的細節(jié),但它是為服務(wù)器設(shè)計的,使用一種名為Flexpoint的低精度數(shù)字格式,并且擁有每秒8萬億次的快速內(nèi)存訪問速度。它將與谷歌的TPU競爭。
盡管如此,英特爾和谷歌硬件的設(shè)計存在許多相似之處。具體來說,它們都采用多核心配置,使用PCIe和伴隨控制器,管理CPU,并緊密集成到快速內(nèi)存上。乍一看,Pixel的硬件看起來與谷歌的云設(shè)計有很大不同,考慮到不同的電力預(yù)算,這并不奇怪。雖然我們不像了解谷歌Cloud TPU那樣了解Visual Core架構(gòu),但我們可以發(fā)現(xiàn)一些類似的功能。設(shè)計中的每個圖像處理單元(IPU)提供512個算術(shù)邏輯單元,總共有4096個。
同樣,這意味著高度并行化的設(shè)計能夠同時處理大量數(shù)據(jù),這樣的設(shè)計可以每秒執(zhí)行3萬億次操作。顯然,Lake Crest芯片數(shù)量比谷歌TPU要少得多,而且毫無疑問,其他的不同之處在于它主要是為成像增強設(shè)計的,而不是在云端運行各種神經(jīng)網(wǎng)絡(luò)。然而,它們依然是類似的、高度并行的設(shè)計,只是具體操作不同。
谷歌是否堅持這一設(shè)計并繼續(xù)與英特爾合作以獲得未來邊緣計算能力,或者依賴其他公司開發(fā)的硬件以獲取回報,還有待觀察。然而,可以肯定的是,谷歌在神經(jīng)網(wǎng)絡(luò)硬件方面的努力依然會繼續(xù)。
總結(jié)
谷歌最出名的地方可能是它的軟件,但當(dāng)它為新一代AI計算提供動力時,谷歌同樣加入到硬件開發(fā)和部署的行列。在大型云計算平臺上大規(guī)模部署機器學(xué)習(xí)時,該公司的TPU可節(jié)省大量能源。它也為這些特定任務(wù)提供了比通用CPU和GPU硬件更高的性能。我們在移動領(lǐng)域也看到了類似的趨勢,SoC制造越來越多地轉(zhuǎn)向?qū)S玫腄SP硬件,以便高效地運行這些數(shù)學(xué)密集型算法。谷歌也可以成為這個市場的主要硬件廠商。
我們還在等待,看谷歌為其第一代智能手機AI硬件(Pixel Visual Core)提供什么樣的性能。該芯片很快將被轉(zhuǎn)換為更快的HDR處理,它無疑將在該公司推出的更多AI測試和產(chǎn)品中扮演重要角色。目前,谷歌正利用Cloud TPU AI硬件和TensorFlow軟件獲得領(lǐng)先優(yōu)勢。值得注意的是,英特爾、微軟、Facebook、亞馬遜和其他公司都在爭奪這個快速發(fā)展的市場。隨著機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)越來越多應(yīng)用在云端和像智能手機這樣的邊緣設(shè)備上,谷歌的早期硬件開發(fā)將使其成為下一代計算領(lǐng)域的領(lǐng)導(dǎo)者。