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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AI芯片和傳統(tǒng)芯片到底有什么區(qū)別

Wildesbeast ? 來源:知乎 ? 作者:汪鵬 ? 2019-12-21 10:11 ? 次閱讀

所謂的AI芯片,一般是指針對(duì)AI算法ASIC(專用芯片)。

傳統(tǒng)的CPU、GPU都可以拿來執(zhí)行AI算法,但是速度慢,性能低,無法實(shí)際商用。

比如,自動(dòng)駕駛需要識(shí)別道路行人紅綠燈等狀況,但是如果是當(dāng)前的CPU去算,那么估計(jì)車翻到河里了還沒發(fā)現(xiàn)前方是河,這是速度慢,時(shí)間就是生命。如果用GPU,的確速度要快得多,但是,功耗大,汽車的電池估計(jì)無法長(zhǎng)時(shí)間支撐正常使用,而且,老黃家的GPU巨貴,經(jīng)常單塊上萬,普通消費(fèi)者也用不起,還經(jīng)常缺貨。另外,GPU因?yàn)椴皇菍iT針對(duì)AI算法開發(fā)的ASIC,所以,說到底,速度還沒到極限,還有提升空間。而類似智能駕駛這樣的領(lǐng)域,必須快!在手機(jī)終端,可以自行人臉識(shí)別、語音識(shí)別等AI應(yīng)用,這個(gè)必須功耗低,所以GPU OUT!

所以,開發(fā)ASIC就成了必然。

說說,為什么需要AI芯片。

AI算法,在圖像識(shí)別等領(lǐng)域,常用的是CNN卷積網(wǎng)絡(luò),語音識(shí)別、自然語言處理等領(lǐng)域,主要是RNN,這是兩類有區(qū)別的算法。但是,他們本質(zhì)上,都是矩陣或vector的乘法、加法,然后配合一些除法、指數(shù)等算法。

一個(gè)成熟的AI算法,比如YOLO-V3,就是大量的卷積、殘差網(wǎng)絡(luò)、全連接等類型的計(jì)算,本質(zhì)是乘法和加法。對(duì)于YOLO-V3來說,如果確定了具體的輸入圖形尺寸,那么總的乘法加法計(jì)算次數(shù)是確定的。比如一萬億次。(真實(shí)的情況比這個(gè)大得多的多)

那么要快速執(zhí)行一次YOLO-V3,就必須執(zhí)行完一萬億次的加法乘法次數(shù)。

這個(gè)時(shí)候就來看了,比如IBM的POWER8,最先進(jìn)的服務(wù)器用超標(biāo)量CPU之一,4GHz,SIMD,128bit,假設(shè)是處理16bit的數(shù)據(jù),那就是8個(gè)數(shù),那么一個(gè)周期,最多執(zhí)行8個(gè)乘加計(jì)算。一次最多執(zhí)行16個(gè)操作。這還是理論上,其實(shí)是不大可能的。

那么CPU一秒鐘的巔峰計(jì)算次數(shù)=16X4Gops=64Gops。

這樣,可以算算CPU計(jì)算一次的時(shí)間了。

同樣的,換成GPU算算,也能知道執(zhí)行時(shí)間。因?yàn)閷?duì)GPU內(nèi)部結(jié)構(gòu)不熟,所以不做具體分析。

再來說說AI芯片。比如大名鼎鼎的谷歌的TPU1。

TPU1,大約700M Hz,有256X256尺寸的脈動(dòng)陣列,如下圖所示。一共256X256=64K個(gè)乘加單元,每個(gè)單元一次可執(zhí)行一個(gè)乘法和一個(gè)加法。那就是128K個(gè)操作。(乘法算一個(gè),加法再算一個(gè))

另外,除了脈動(dòng)陣列,還有其他模塊,比如激活等,這些里面也有乘法、加法等。

所以,看看TPU1一秒鐘的巔峰計(jì)算次數(shù)至少是=128K X 700MHz=89600Gops=大約90Tops。

對(duì)比一下CPU與TPU1,會(huì)發(fā)現(xiàn)計(jì)算能力有幾個(gè)數(shù)量級(jí)的差距,這就是為啥說CPU慢。

當(dāng)然,以上的數(shù)據(jù)都是完全最理想的理論值,實(shí)際情況,能夠達(dá)到5%吧。因?yàn)?,芯片上的存?chǔ)不夠大,所以數(shù)據(jù)會(huì)存儲(chǔ)在DRAM中,從DRAM取數(shù)據(jù)很慢的,所以,乘法邏輯往往要等待。另外,AI算法有許多層網(wǎng)絡(luò)組成,必須一層一層的算,所以,在切換層的時(shí)候,乘法邏輯又是休息的,所以,諸多因素造成了實(shí)際的芯片并不能達(dá)到利潤(rùn)的計(jì)算峰值,而且差距還極大。

可能有人要說,搞研究慢一點(diǎn)也能將就用。

目前來看,神經(jīng)網(wǎng)絡(luò)的尺寸是越來越大,參數(shù)越來越多,遇到大型NN模型,訓(xùn)練需要花幾周甚至一兩個(gè)月的時(shí)候,你會(huì)耐心等待么?突然斷電,一切重來?(曾經(jīng)動(dòng)手訓(xùn)練一個(gè)寫小說的AI,然后,一次訓(xùn)練(50輪)需要大約一天一夜還多,記得如果第一天早上開始訓(xùn)練,需要到第二天下午才可能完成,這還是模型比較簡(jiǎn)單,數(shù)據(jù)只有幾萬條的小模型呀。)

修改了模型,需要幾個(gè)星期才能知道對(duì)錯(cuò),確定等得起?

突然有了TPU,然后你發(fā)現(xiàn),吃個(gè)午飯回來就好了,參數(shù)優(yōu)化一下,繼續(xù)跑,多么爽!

計(jì)算速度快,才能迅速反復(fù)迭代,研發(fā)出更強(qiáng)的AI模型。速度就是金錢。

GPU的內(nèi)核結(jié)構(gòu)不清楚,所以就不比較了??隙ǖ氖?,GPU還是比較快的,至少比CPU快得多,所以目前大多數(shù)都用GPU,這玩意隨便一個(gè)都能價(jià)格輕松上萬,太貴,而且,功耗高,經(jīng)常缺貨。不適合數(shù)據(jù)中心大量使用。

總的來說,CPU與GPU并不是AI專用芯片,為了實(shí)現(xiàn)其他功能,內(nèi)部有大量其他邏輯,而這些邏輯對(duì)于目前的AI算法來說是完全用不上的,所以,自然造成CPU與GPU并不能達(dá)到最優(yōu)的性價(jià)比。

谷歌花錢研發(fā)TPU,而且目前已經(jīng)出了TPU3,用得還挺歡,都開始支持谷歌云計(jì)算服務(wù)了,貌似6點(diǎn)幾美元每小時(shí)吧,不記得單位了,懶得查。

可見,谷歌覺得很有必要自己研發(fā)TPU。

就醬。

看到有答案點(diǎn)我名說不應(yīng)該用CPU做對(duì)比,這個(gè)鍋我不背。

做一點(diǎn)解釋。

目前在圖像識(shí)別、語音識(shí)別、自然語言處理等領(lǐng)域,精度最高的算法就是基于深度學(xué)習(xí)的,傳統(tǒng)的機(jī)器學(xué)習(xí)的計(jì)算精度已經(jīng)被超越,目前應(yīng)用最廣的算法,估計(jì)非深度學(xué)習(xí)莫屬,而且,傳統(tǒng)機(jī)器學(xué)習(xí)的計(jì)算量與 深度學(xué)習(xí)比起來少很多,所以,我討論AI芯片時(shí)就針對(duì)計(jì)算量特別大的深度學(xué)習(xí)而言。畢竟,計(jì)算量小的算法,說實(shí)話,CPU已經(jīng)很快了。而且,CPU適合執(zhí)行調(diào)度復(fù)雜的算法,這一點(diǎn)是GPU與AI芯片都做不到的,所以他們?nèi)咧皇轻槍?duì)不同的應(yīng)用場(chǎng)景而已,都有各自的主場(chǎng)。

至于為何用了CPU做對(duì)比?

而沒有具體說GPU。是因?yàn)?,我說了,我目前沒有系統(tǒng)查看過GPU的論文,不了解GPU的情況,故不做分析。因?yàn)榉e累的緣故,比較熟悉超標(biāo)量CPU,所以就用熟悉的CPU做詳細(xì)比較。而且,小型的網(wǎng)絡(luò),完全可以用CPU去訓(xùn)練,沒啥大問題,最多慢一點(diǎn)。只要不是太大的網(wǎng)絡(luò)模型。

那些AI算法公司,比如曠世、商湯等,他們的模型很大,自然也不是一塊GPU就能搞定的。GPU的算力也是很有限的。

至于說CPU是串行,GPU是并行。

沒錯(cuò),但是不全面。只說說CPU串行。這位網(wǎng)友估計(jì)對(duì)CPU沒有非常深入的理解。我的回答中舉的CPU是IBM的POWER8,百度一下就知道,這是超標(biāo)量的服務(wù)器用CPU,目前來看,性能已經(jīng)是非常頂級(jí)的了,主頻4GHZ。不知是否注意到我說了這是SIMD?這個(gè)SIMD,就代表他可以同時(shí)執(zhí)行多條同樣的指令,這就是并行,而不是串行。單個(gè)數(shù)據(jù)是128bit的,如果是16bit的精度,那么一周期理論上最多可以計(jì)算八組數(shù)據(jù)的乘法或加法,或者乘加。這還不叫并行?只是并行的程度沒有GPU那么厲害而已,但是,這也是并行。

不知道為啥就不能用CPU來比較算力?

有評(píng)論很推崇GPU。說用CPU來做比較,不合適。

拜托,GPU本來是從CPU中分離出來專門處理圖像計(jì)算的,也就是說,GPU是專門處理圖像計(jì)算的。包括各種特效的顯示。這也是GPU的天生的缺陷,GPU更加針對(duì)圖像的渲染等計(jì)算算法。但是,這些算法,與深度學(xué)習(xí)的算法還是有比較大的區(qū)別,而我的回答里提到的AI芯片,比如TPU,這個(gè)是專門針對(duì)CNN等典型深度學(xué)習(xí)算法而開發(fā)的。另外,寒武紀(jì)的NPU,也是專門針對(duì)神經(jīng)網(wǎng)絡(luò)的,與TPU類似。

谷歌的TPU,寒武紀(jì)的DianNao,這些AI芯片剛出道的時(shí)候,就是用CPU/GPU來對(duì)比的。

無圖無真相,是吧?

看看,谷歌TPU論文的摘要直接對(duì)比了TPU1與CPU/GPU的性能比較結(jié)果,見紅色框:

看不清?

沒事,放大。

這就是摘要中介紹的TPU1與CPU/GPU的性能對(duì)比。

再來看看寒武紀(jì)DianNao的paper,摘要中直接就是DianNao與CPU的性能的比較,見紅色框:

回顧一下歷史。

上個(gè)世紀(jì)出現(xiàn)神經(jīng)網(wǎng)絡(luò)的時(shí)候,那一定是用CPU計(jì)算的。

比特幣剛出來,那也是用CPU在挖。目前已經(jīng)進(jìn)化成ASIC礦機(jī)了。比特大陸了解一下。

從2006年開始開啟的深度學(xué)習(xí)熱潮,CPU與GPU都能計(jì)算,發(fā)現(xiàn)GPU速度更快,但是貴啊,更多用的是CPU,而且,那時(shí)候GPU的CUDA可還不怎么樣,后來,隨著NN模型越來越大,GPU的優(yōu)勢(shì)越來越明顯,CUDA也越來越6,目前就成了GPU的專場(chǎng)。

寒武紀(jì)2014年的DianNao(NPU)比CPU快,而且更加節(jié)能。ASIC的優(yōu)勢(shì)很明顯啊。這也是為啥要開發(fā)ASIC的理由。

至于說很多公司的方案是可編程的,也就是大多數(shù)與FPGA配合。你說的是商湯、深鑒么?的確,他們發(fā)表的論文,就是基于FPGA的。

這些創(chuàng)業(yè)公司,他們更多研究的是算法,至于芯片,還不是重點(diǎn),另外,他們暫時(shí)還沒有那個(gè)精力與實(shí)力。FPGA非常靈活,成本不高,可以很快實(shí)現(xiàn)架構(gòu)設(shè)計(jì)原型,所以他們自然會(huì)選擇基于FPGA的方案。不過,最近他們都大力融資,官網(wǎng)也在招聘芯片設(shè)計(jì)崗位,所以,應(yīng)該也在涉足ASIC研發(fā)了。

如果以FPGA為代表的可編程方案真的有巨大的商業(yè)價(jià)值,那他們何必砸錢去做ASIC?

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423663
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30896

    瀏覽量

    269107
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AD7280AWBSTZ和AD7280ABSTZ之間到底有什么區(qū)別?

    替代嗎?在網(wǎng)上找到的兩個(gè)芯片的相關(guān)數(shù)據(jù)都是一樣的,AD7280AWBSTZ和AD7280ABSTZ之間到底有什么區(qū)別
    發(fā)表于 01-08 06:36

    ARM Cortex-M0與Cortex-M0+到底有什么區(qū)別

    ARM Cortex-M0與Cortex-M0+到底有什么區(qū)別
    發(fā)表于 01-04 23:15

    同時(shí)DSP2812的源文件,命名不同,到底有什么區(qū)別

    同時(shí)DSP2812的源文件,命名不同,到底有什么區(qū)別?新建DSP工程時(shí),到底用那種文件呢?講究嗎?
    發(fā)表于 04-07 12:57

    LED恒壓電源和恒流電源到底有什么區(qū)別?

    LED恒壓電源和恒流電源到底有什么區(qū)別?
    發(fā)表于 12-07 14:53

    乘法器與調(diào)制器到底有什么區(qū)別?

    乘法器與調(diào)制器到底有什么區(qū)別?調(diào)制函數(shù)的建模方法是什么?
    發(fā)表于 04-09 06:33

    USB 3.0和USB 2.0到底有什么區(qū)別呢?

    圖文講解USB 3.0和USB 2.0到底有什么區(qū)別呢?
    發(fā)表于 05-19 07:12

    KEIL、uVision、MDK、KEIL C51、RealView它們到底有什么區(qū)別?

    KEIL、uVision、MDK、KEIL C51、RealView它們到底有什么區(qū)別,又有什么聯(lián)系?
    發(fā)表于 07-01 09:08

    人工智能AI芯片到底怎么用

    什么是人工智能(AI芯片AI芯片的主要用處哪些?在AI任務(wù)中,
    發(fā)表于 09-22 08:00

    ARM和DSP到底有什么區(qū)別?

    現(xiàn)在在學(xué)ARM,想知道ARM和DSP到底有什么區(qū)別?為什么有些地方用DSP有些用ARM
    發(fā)表于 10-19 07:20

    CAN通訊中摩托羅拉格式與英特爾格式到底有什么區(qū)別

    本文檔的主要內(nèi)容詳細(xì)介紹的是CAN通訊中摩托羅拉格式與英特爾格式到底有什么區(qū)別。
    發(fā)表于 03-03 08:00 ?23次下載
    CAN通訊中摩托羅拉格式與英特爾格式<b class='flag-5'>到底有</b><b class='flag-5'>什么區(qū)別</b>

    單端與差異數(shù)據(jù)傳輸到底有什么區(qū)別

    電子發(fā)燒友網(wǎng)站提供《單端與差異數(shù)據(jù)傳輸到底有什么區(qū)別.pdf》資料免費(fèi)下載
    發(fā)表于 11-26 01:18 ?16次下載
    單端與差異數(shù)據(jù)傳輸<b class='flag-5'>到底有</b><b class='flag-5'>什么區(qū)別</b>

    智能照明和傳統(tǒng)照明的系統(tǒng)到底有什么區(qū)別

    電子發(fā)燒友網(wǎng)站提供智能照明和傳統(tǒng)照明的系統(tǒng)到底有什么區(qū)別資料免費(fèi)下載
    發(fā)表于 11-26 06:41 ?26次下載

    ai芯片和gpu芯片什么區(qū)別

    ai芯片和gpu芯片什么區(qū)別? AI芯片和GPU
    的頭像 發(fā)表于 08-08 18:02 ?5790次閱讀

    FPC與傳統(tǒng)PCB到底有什么區(qū)別.zip

    FPC與傳統(tǒng)PCB到底有什么區(qū)別
    發(fā)表于 03-01 15:37 ?4次下載

    RTOS與Linux到底有什么區(qū)別

    很多做嵌入式開發(fā)的小伙伴都存在這樣的疑惑:RTOS與Linux到底有什么區(qū)別
    的頭像 發(fā)表于 10-29 09:53 ?447次閱讀