<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 谷歌的TPU芯片是如何演進(jìn)而來(lái)的?

          谷歌的TPU芯片是如何演進(jìn)而來(lái)的?

          作者: 時(shí)間:2017-10-14 來(lái)源:網(wǎng)絡(luò) 收藏

            Google I/O是由Google舉行的網(wǎng)絡(luò)開(kāi)發(fā)者年會(huì),討論的焦點(diǎn)是用Google和開(kāi)放網(wǎng)絡(luò)技術(shù)開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用。這個(gè)年會(huì)自2008年開(kāi)始舉辦,到今年已經(jīng)是舉辦的第9屆了。

          本文引用地址:http://www.ex-cimer.com/article/201710/366429.htm

            在今年的年會(huì)上,Google主要發(fā)布了以下8種產(chǎn)品:智能助手Google Assistant,與Amazon Echo競(jìng)爭(zhēng)的無(wú)線揚(yáng)聲器和語(yǔ)音命令設(shè)備Google Home,消息應(yīng)用Allo,視頻呼叫應(yīng)用Duo,VR平臺(tái)Daydream,獨(dú)立應(yīng)用程序的支持Android Wear 2.0,允許不安裝而使用應(yīng)用的Android Instant Apps,以及允許在Chromebook上使用Android應(yīng)用Google Play on Chrome OS。

            而這8中產(chǎn)品主要都集中在了軟件領(lǐng)域。

            

           ?。℅oogle I/O 2016現(xiàn)場(chǎng)圖via:webpronews.com)

            在Google I/O 2016的主題演講進(jìn)入尾聲時(shí),Google的CEO皮采提到了一項(xiàng)他們這段時(shí)間在和機(jī)器學(xué)習(xí)上取得的成果,一款叫做Tensor Processing Unit(張量處理單元)的處理器,簡(jiǎn)稱。在大會(huì)上皮采只是介紹了這款的一些性能指標(biāo),并在隨后的博客中公布了一些使用場(chǎng)景,并沒(méi)有對(duì)這款處理器的架構(gòu)以及內(nèi)部的運(yùn)作機(jī)制進(jìn)行詳細(xì)闡述,所以我們也許需要從一些常見(jiàn)的處理器的結(jié)構(gòu)出發(fā),試圖猜測(cè)與探究下這款用于機(jī)器學(xué)習(xí)的專屬芯片到底有著怎樣的一個(gè)面孔。

            

            (Tensor processing unit實(shí)物圖 via:cio-today.com)

            首先我們先來(lái)看看我們最熟悉的中央處理器(Central Processing Unit),簡(jiǎn)稱CPU。它是一種超大規(guī)模的集成芯片,而且是一種通用芯片,也就是說(shuō),它可以用它來(lái)做很多種類的事情。我們?nèi)粘J褂玫碾娔X使用的處理器基本上都是CPU,看個(gè)電影、聽(tīng)個(gè)音樂(lè)、跑個(gè)代碼,都沒(méi)啥問(wèn)題。

            | 我們來(lái)看看CPU的結(jié)構(gòu)

            CPU主要包括運(yùn)算器(ALU,Arithmetic and Logic Unit)和控制器(CU,Control Unit)兩大部件。此外,還包括若干個(gè)寄存器和高速緩沖存儲(chǔ)器及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)、控制及狀態(tài)的總線。從上面的敘述我們可以看出,CPU主要包含運(yùn)算邏輯器件、寄存器部件以及控制部件等。

            

           ?。–PU結(jié)構(gòu)簡(jiǎn)化圖 via:blog.csdn.net)

            從字面上我們也很好理解,運(yùn)算邏輯器件主要執(zhí)行算術(shù)運(yùn)算、移位等操作,以及地址運(yùn)算和轉(zhuǎn)換;寄存器件主要用于保存運(yùn)算中產(chǎn)生的數(shù)據(jù)以及指令等;控制器件則是負(fù)責(zé)對(duì)指令譯碼,并且發(fā)出為完成每條指令所要執(zhí)行的各個(gè)操作的控制信號(hào)。

            我們可以運(yùn)用下面這張圖來(lái)說(shuō)明一條指令在CPU中執(zhí)行的大致過(guò)程:

            

           ?。–PU執(zhí)行指令圖 via:blog.csdn.net)

            CPU從程序計(jì)數(shù)器取到指令,通過(guò)指令總線將指令送至譯碼器,將轉(zhuǎn)譯后的指令交給時(shí)序發(fā)生器與操作控制器,然后運(yùn)算器對(duì)數(shù)據(jù)進(jìn)行計(jì)算,通過(guò)數(shù)據(jù)總線將數(shù)據(jù)存至數(shù)據(jù)緩存寄存器。

            我們從CPU的結(jié)構(gòu)以及執(zhí)行過(guò)程可以看出,CPU遵循的是馮諾依曼架構(gòu),馮諾依曼的核心就是:存儲(chǔ)程序,順序執(zhí)行。

            從上面的描述我們可以看出,CPU就像一個(gè)有條不紊的管家,我們吩咐的事情總是一步一步來(lái)做。但是隨著摩爾定律的推進(jìn)以及人們對(duì)更大規(guī)模與更快處理速度的需求的增加,CPU好像執(zhí)行起任務(wù)來(lái)就不那么令人滿意了。于是人們就想,我們可不可以把好多個(gè)處理器放在同一塊芯片上,讓他們一起來(lái)做事,這樣效率是不是就會(huì)高很多,這是GPU就誕生了。

            | GPU誕生了

            GPU全稱為Graphics Processing Unit,中文為圖形處理器,就如它的名字一樣,GPU最初是用在個(gè)人電腦、工作站、游戲機(jī)和一些移動(dòng)設(shè)備(如平板電腦、智能手機(jī)等)上運(yùn)行繪圖運(yùn)算工作的微處理器。因?yàn)閷?duì)于處理圖像數(shù)據(jù)來(lái)說(shuō),圖像上的每一個(gè)像素點(diǎn)都有被處理的需要,這是一個(gè)相當(dāng)大的數(shù)據(jù),所以對(duì)于運(yùn)算加速的需求圖像處理領(lǐng)域最為強(qiáng)烈,GPU也就應(yīng)運(yùn)而生。

            

           ?。–PU與GPU結(jié)構(gòu)對(duì)比示意圖 via:baike.baidu.com)

            通過(guò)CPU與GPU結(jié)構(gòu)上的對(duì)比我們可以看出,CPU功能模塊很多,能適應(yīng)復(fù)雜運(yùn)算環(huán)境;GPU構(gòu)成則相對(duì)簡(jiǎn)單,大部分晶體管主要用于構(gòu)建控制電路(比如分支預(yù)測(cè)等)和Cache,只有少部分的晶體管來(lái)完成實(shí)際的運(yùn)算工作。而GPU的控制相對(duì)簡(jiǎn)單,且對(duì)Cache的需求小,所以大部分晶體管可以組成各類專用電路、多條流水線,使得GPU的計(jì)算速度有了突破性的飛躍,擁有了更強(qiáng)大的處理浮點(diǎn)運(yùn)算的能力。當(dāng)前最頂級(jí)的CPU只有4核或者6核,模擬出8個(gè)或者12個(gè)處理線程來(lái)進(jìn)行運(yùn)算,但是普通級(jí)別的GPU就包含了成百上千個(gè)處理單元,高端的甚至更多,這對(duì)于多媒體計(jì)算中大量的重復(fù)處理過(guò)程有著天生的優(yōu)勢(shì)。

            這就好比在畫(huà)一幅畫(huà)的時(shí)候CPU是用一支筆一筆一筆的來(lái)畫(huà),而GPU則是多支筆對(duì)不同的位置同時(shí)進(jìn)行描繪,那自然效率就是突飛猛進(jìn)的。

            

           ?。ㄓ⑻貭朇PU與英偉達(dá)GPU浮點(diǎn)運(yùn)算性能對(duì)比圖 via:blog.sina.com.cn)

            雖然GPU是為了圖像處理而生的,但是我們通過(guò)前面的介紹可以發(fā)現(xiàn),它在結(jié)構(gòu)上并沒(méi)有專門(mén)為圖像服務(wù)的部件,只是對(duì)CPU的結(jié)構(gòu)進(jìn)行了優(yōu)化與調(diào)整,所以現(xiàn)在GPU不僅可以在圖像處理領(lǐng)域大顯身手,它還被用來(lái)科學(xué)計(jì)算、密碼破解、數(shù)值分析,海量數(shù)據(jù)處理(排序,Map-Reduce等),金融分析等需要大規(guī)模并行計(jì)算的領(lǐng)域。所以GPU也可以認(rèn)為是一種較通用的芯片。

            | FPGA應(yīng)運(yùn)而生

            隨著人們的計(jì)算需求越來(lái)越專業(yè)化,人們希望有芯片可以更加符合我們的專業(yè)需求,但是考慮到硬件產(chǎn)品一旦成型便不可再更改這個(gè)特點(diǎn),人們便開(kāi)始想,我們可不可以生產(chǎn)一種芯片,讓它硬件可編程。也就是說(shuō)——

            這一刻我們需要一個(gè)比較適合對(duì)圖像進(jìn)行處理的硬件系統(tǒng),下一刻我們需要一個(gè)對(duì)科學(xué)計(jì)算比較適合的硬件系統(tǒng),但是我們又不希望焊兩塊板子,這個(gè)時(shí)候FPGA便應(yīng)運(yùn)而生。

            FPGA是Field Programmable Gate Array的簡(jiǎn)稱,中文全稱為場(chǎng)效可編程邏輯閘陣列,它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了全定制電路的不足,又克服了原有可編程邏輯器件門(mén)電路數(shù)有限的缺點(diǎn)。

            FPGA運(yùn)用硬件描述語(yǔ)言(Verilog或VHDL)描述邏輯電路,可以利用邏輯綜合和布局、布線工具軟件,快速地?zé)浿罠PGA上進(jìn)行測(cè)試。人們可以根據(jù)需要,通過(guò)可編輯的連接,把FPGA內(nèi)部的邏輯塊連接起來(lái)。這就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者的需要而改變,所以FPGA可以完成所需要的邏輯功能。

            

            (FPGA結(jié)構(gòu)簡(jiǎn)圖 via:dps-az.cz/vyvoj)

            FPGA這種硬件可編程的特點(diǎn)使得其一經(jīng)推出就受到了很大的歡迎,許多ASIC(專用集成電路)就被FPGA所取代。這里需要說(shuō)明一下ASIC是什么。ASIC是指依產(chǎn)品需求不同而定制化的特殊規(guī)格集成電路,由特定使用者要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造。這里之所以特殊說(shuō)明是因?yàn)槲覀兿旅娼榻B的也算是一種ASIC。

            FPGA與ASIC芯片各有缺點(diǎn),F(xiàn)PGA一般來(lái)說(shuō)比ASIC的速度要慢,而且無(wú)法完成更復(fù)雜的設(shè)計(jì),并且會(huì)消耗更多的電能;而ASIC的生產(chǎn)成本很高,如果出貨量較小,則采用ASIC在經(jīng)濟(jì)上不太實(shí)惠。但是如果某一種需求開(kāi)始增大之后, ASIC的出貨量開(kāi)始增加,那么某一種專用集成電路的誕生也就是一種歷史趨勢(shì)了,我認(rèn)為這也是Google生產(chǎn)Tensor processing unit的一個(gè)重要出發(fā)點(diǎn)。至此,TPU便登上歷史舞臺(tái)。

            隨著機(jī)器學(xué)習(xí)算法越來(lái)越多的應(yīng)用在各個(gè)領(lǐng)域并表現(xiàn)出優(yōu)越的性能,例如街景、郵件智能回復(fù)、聲音搜索等,對(duì)于機(jī)器學(xué)習(xí)算法硬件上的支持也越來(lái)越成為一種需要。目前很多的機(jī)器學(xué)習(xí)以及圖像處理算法大部分都跑在GPU與FPGA上面,但是通過(guò)上面的講述我們可以知道,這兩種芯片都還是一種通用性芯片,所以在效能與功耗上還是不能更緊密的適配機(jī)器學(xué)習(xí)算法,而且Google一直堅(jiān)信偉大的軟件將在偉大的硬件的幫助下更加大放異彩,所以Google便在想,我們可不可以做出一款專用機(jī)機(jī)器學(xué)習(xí)算法的專用芯片,TPU便誕生了。

            

           ?。═PU板卡圖 via:cloudplatform.googleblog.com)

            | Google想做一款專用機(jī)機(jī)器學(xué)習(xí)算法的專用芯片——TPU

            從名字上我們可以看出,TPU的靈感來(lái)源于Google開(kāi)源深度學(xué)習(xí)框架TensorFlow,所以目前TPU還是只在Google內(nèi)部使用的一種芯片。

            Google其實(shí)已經(jīng)在它內(nèi)部的數(shù)據(jù)中心跑TPU跑了一年多了,性能指標(biāo)杠杠的,大概將硬件性能提升了7年的發(fā)展時(shí)間,約為摩爾定律的3代。對(duì)于性能來(lái)說(shuō),限制處理器速度的最大兩個(gè)因素是發(fā)熱與邏輯門(mén)的延遲,其中發(fā)熱是限制速度最主要的因素?,F(xiàn)在的處理器大部分使用的是CMOS技術(shù),每一個(gè)時(shí)鐘周期都會(huì)產(chǎn)生能量耗散,所以速度越快,熱量就越大。下面是一張CPU時(shí)鐘頻率與能量消耗的關(guān)系,我們可以看到,增長(zhǎng)是指數(shù)性的。

            

           ?。–PU時(shí)鐘頻率與功耗關(guān)系圖 via:electronics.stackexchange.com)

            從TPU的外觀圖我們可以看出,其中間突出一塊很大的金屬片,這便是為了可以很好地對(duì)TPU高速運(yùn)算是產(chǎn)生大量的熱進(jìn)行耗散。

            TPU的高性能還來(lái)源于對(duì)于低運(yùn)算精度的容忍,也就是說(shuō)每一步操作TPU將會(huì)需要更少的晶體管。在晶體管總?cè)萘坎蛔兊那闆r下,我們就可以單位時(shí)間在這些晶體管上運(yùn)行更多的操作,這樣我們就可以以更快的速度通過(guò)使用更加復(fù)雜與強(qiáng)大的機(jī)器學(xué)習(xí)算法得到更加智能的結(jié)果。我們?cè)赥PU的板子上看到了插條,所以目前Google使用TPU的方式是將載有TPU的板子插在數(shù)據(jù)中心機(jī)柜的硬盤(pán)驅(qū)動(dòng)器插槽里來(lái)使用。

            而且我覺(jué)得TPU的高性能還來(lái)源于它數(shù)據(jù)的本地化。對(duì)于GPU,從存儲(chǔ)器中取指令與數(shù)據(jù)將耗費(fèi)大量的時(shí)間,但是機(jī)器學(xué)習(xí)大部分時(shí)間并不需要從全局緩存中取數(shù)據(jù),所以在結(jié)構(gòu)上設(shè)計(jì)的更加本地化也加速了TPU的運(yùn)行速度。

            

           ?。ˋlphaGo對(duì)戰(zhàn)李世乭比賽中使用的載有TPU的服務(wù)器機(jī)架,不知道為什么側(cè)面貼的圍棋圖有種萌感。via:googleblog.com)

            在Google數(shù)據(jù)中心的這一年來(lái),TPU其實(shí)已經(jīng)干了很多事情了,例如機(jī)器學(xué)習(xí)人工智能系統(tǒng)RankBrain,它是用來(lái)幫助Google處理搜索結(jié)果并為用戶提供更加相關(guān)搜索結(jié)果的;還有街景Street View,用來(lái)提高地圖與導(dǎo)航的準(zhǔn)確性的;當(dāng)然還有下圍棋的計(jì)算機(jī)程序AlphaGo,其實(shí)這一點(diǎn)上也有個(gè)很有趣的地方,我們?cè)诿枋鯝lphaGo的那篇Nature文章中看到,AlphaGo只是跑在CPU+GPUs上,文章中說(shuō)AlphaGo的完整版本使用了40個(gè)搜索線程,跑在48塊CPU和8塊GPU上,AlphaGo的分布式版本則利用了更多的機(jī)器,40個(gè)搜索線程跑在1202個(gè)CPU和176塊GPU上。這個(gè)配置是和樊麾比賽時(shí)使用的,所以當(dāng)時(shí)李世乭看到AlphaGo與樊麾的對(duì)弈過(guò)程后對(duì)人機(jī)大戰(zhàn)很有信心。但是就在短短的幾個(gè)月時(shí)間,Google就把運(yùn)行AlphaGo的硬件平臺(tái)換成了TPU,然后對(duì)戰(zhàn)的局勢(shì)就艱難了起來(lái)。

            那么除了TPU可以更好更快地運(yùn)行機(jī)器學(xué)習(xí)算法,Google發(fā)布它還有什么其他目的。我覺(jué)得說(shuō)的玄幻一些,Google也許在下一盤(pán)大棋。

            Google說(shuō)他們的目標(biāo)是在工業(yè)界的機(jī)器學(xué)習(xí)方面起到先鋒帶頭作用,并使得這種創(chuàng)新的力量惠及每一位用戶,并且讓用戶更好地使用TensorFlow 和 Cloud Machine Learning。其實(shí)就像微軟為它的HoloLens增強(qiáng)現(xiàn)實(shí)頭顯配備了全息處理單元(holographic processing unit,HPU),像TPU這樣的專業(yè)硬件只是它遠(yuǎn)大征程的一小步,不僅僅是想讓自己在公共云領(lǐng)域超過(guò)市場(chǎng)老大Amazon Web Services (AWS)。隨著時(shí)間的推移,Google會(huì)放出更多的機(jī)器學(xué)習(xí)API,現(xiàn)在Google已經(jīng)推出了云機(jī)器學(xué)習(xí)平臺(tái)服務(wù)和視覺(jué)API,我們可以相信,做機(jī)器學(xué)習(xí)技術(shù)與市場(chǎng)的leader才是Google更大的目標(biāo)。



          關(guān)鍵詞: 谷歌 TPU AI

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();