人工智能包括三個要素:算法,計算和數(shù)據(jù)。對人工智能的實現(xiàn)來說,算法是核心,計算、數(shù)據(jù)是基礎(chǔ)。在算法上來說,主要分為工程學法和模擬法。
工程學方法是采用傳統(tǒng)的編程技術(shù),利用大量數(shù)據(jù)處理經(jīng)驗改進提升算法性能;模擬法則是模仿人類或其他生物所用的方法或者技能,提升算法性能,例如遺傳算法和神經(jīng)網(wǎng)絡(luò)。而在計算能力來說,目前主要是使用 GPU 并行計算神經(jīng)網(wǎng)絡(luò),同時,FPGA 和 ASIC 也將是未來異軍突起的力量。
隨著百度、Google、Facebook、微軟等企業(yè)開始切入人工智能,人工智能可應(yīng)用的領(lǐng)域非常廣泛。可以看到,未來人工智能的應(yīng)用將呈幾何級數(shù)的倍增。
應(yīng)用領(lǐng)域包括互聯(lián)網(wǎng),金融,娛樂,政府機關(guān),制造業(yè),汽車,游戲等。從產(chǎn)業(yè)結(jié)構(gòu)來講,人工智能生態(tài)分為基礎(chǔ)、技術(shù)、應(yīng)用三層。應(yīng)用層包括人工智能+各行業(yè)(領(lǐng)域),技術(shù)層包括算法、模型及應(yīng)用開發(fā),基礎(chǔ)層包括數(shù)據(jù)資源和計算能力。
人工智能將在很多領(lǐng)域得到廣泛的應(yīng)用。目前重點部署的應(yīng)用有:語音識別,人臉識別,無人機,機器人,無人駕駛等。
1、深度學習
人工智能的核心是算法,深度學習是目前最主流的人工智能算法。深度學習在 1958 年就被提出,但直到最近,才真正火起來,主要原因在于:數(shù)據(jù)量的激增和計算機能力/成本。
深度學習是機器學習領(lǐng)域中對模式(聲音、圖像等等)進行建模的一種方法,它也是一種基于統(tǒng)計的概率模型。在對各種模式進行建模之后,便可以對各種模式進行識別了,例如待建模的模式是聲音的話,那么這種識別便可以理解為語音識別。而類比來理解,如果說將機器學習算法類比為排序算法,那么深度學習算法便是眾多排序算法當中的一種,這種算法在某些應(yīng)用場景中,會具有一定的優(yōu)勢。
深度學習的學名又叫深層神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks ),是從很久以前的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks)模型發(fā)展而來。這種模型一般采用計算機科學中的圖模型來直觀的表達,而深度學習的“深度”便指的是圖模型的層數(shù)以及每一層的節(jié)點數(shù)量,相對于之前的神經(jīng)網(wǎng)絡(luò)而言,有了很大程度的提升。
從單一的神經(jīng)元,再到簡單的神經(jīng)網(wǎng)絡(luò),到一個用于語音識別的深層神經(jīng)網(wǎng)絡(luò)。層次間的復雜度呈幾何倍數(shù)的遞增。
以圖像識別為例,圖像的原始輸入是像素,相鄰像素組成線條,多個線條組成紋理,進一步形成圖案,圖案構(gòu)成了物體的局部,直至整個物體的樣子。不難發(fā)現(xiàn),可以找到原始輸入和淺層特征之間的聯(lián)系,再通過中層特征,一步一步獲得和高層特征的聯(lián)系。
想要從原始輸入直接跨越到高層特征,無疑是困難的。而整個識別過程,所需要的數(shù)據(jù)量和運算量是十分巨大的。
深度學習之所以能夠在今天得到重要的突破,原因在于:
1、海量的數(shù)據(jù)訓練
2、高性能的計算能力(CPU,GPU,F(xiàn)PGA,ASIC),兩者缺一不可。
2、算力
衡量芯片計算性能的重要指標稱為算力。通常而言,將每秒所執(zhí)行的浮點運算次數(shù)(亦稱每秒峰值速度)作為指標來衡量算力,簡稱為 FLOPS。現(xiàn)有的主流芯片運算能力達到了 TFLOPS 級別。一個 TFLOPS(teraFLOPS)等於每秒萬億(=10^12)次的浮點運算。增加深度學習算力需要多個維度的齊頭并進的提升:
1、系統(tǒng)并行程度
2、時鐘的速度
3、內(nèi)存的大小(包括register、cache、memory);
4、內(nèi)存帶寬(memory bandwidth)
5、計算芯片同 CPU 之間的帶寬
6、還有各種微妙的硬件里的算法改進。
我們這篇報告將主要關(guān)注人工智能的芯片領(lǐng)域,著重討論 GPU,F(xiàn)PGA,ASIC 等幾種類型的芯片在人工智能領(lǐng)域的應(yīng)用和未來的發(fā)展。
3、GPU 簡介
GPU,又稱顯示核心、視覺處理器、顯示芯片,是一種專門在個人電腦、工作站、游戲機和一些移動設(shè)備(如平板電腦、智能手機等)上圖像運算工作的微處理器,與 CPU 類似,只不過 GPU 是專為執(zhí)行復雜的數(shù)學和幾何計算而設(shè)計的,這些計算是圖形渲染所必需的。隨著人工智能的發(fā)展,如今的 GPU 已經(jīng)不再局限于 3D 圖形處理了,GPU 通用計算技術(shù)發(fā)展已經(jīng)引起業(yè)界不少的關(guān)注,事實也證明在浮點運算、并行計算等部分計算方面,GPU 可以提供數(shù)十倍乃至于上百倍于 CPU 的性能。
GPU 的特點是有大量的核(多達幾千個核)和大量的高速內(nèi)存,最初被設(shè)計用于游戲,計算機圖像處理等。GPU主要擅長做類似圖像處理的并行計算,所謂的“粗粒度并行(coarse-grain parallelism)”。
這個對于圖像處理很適用,因為像素與像素之間相對獨立,GPU 提供大量的核,可以同時對很多像素進行并行處理。但這并不能帶來延遲的提升(而僅僅是處理吞吐量的提升)。
比如,當一個消息到達時,雖然 GPU 有很多的核,但只能有其中一個核被用來處理當前這個消息,而且 GPU 核通常被設(shè)計為支持與圖像處理相關(guān)的運算,不如 CPU 通用。GPU 主要適用于在數(shù)據(jù)層呈現(xiàn)很高的并行特性(data-parallelism)的應(yīng)用,比如 GPU 比較適合用于類似蒙特卡羅模擬這樣的并行運算。
CPU 和 GPU 本身架構(gòu)方式和運算目的不同導致了 CPU 和 GPU 之間的不同,主要不同點列舉如下。
正是因為 GPU 的特點特別適合于大規(guī)模并行運算,GPU 在 “深度學習”領(lǐng)域發(fā)揮著巨大的作用,因為 GPU 可以平行處理大量瑣碎信息。深度學習所依賴的是神經(jīng)系統(tǒng)網(wǎng)絡(luò)——與人類大腦神經(jīng)高度相似的網(wǎng)絡(luò)——而這種網(wǎng)絡(luò)出現(xiàn)的目的,就是要在高速的狀態(tài)下分析海量的數(shù)據(jù)。
例如,如果你想要教會這種網(wǎng)絡(luò)如何識別出貓的模樣,你就要給它提供無數(shù)多的貓的圖片。而這種工作,正是 GPU 芯片所擅長的事情。而且相比于 CPU,GPU 的另一大優(yōu)勢,就是它對能源的需求遠遠低于 CPU。GPU 擅長的是海量數(shù)據(jù)的快速處理。
雖然機器學習已經(jīng)有數(shù)十年的歷史,但是兩個較為新近的趨勢促進了機器學習的廣泛應(yīng)用: 海量訓練數(shù)據(jù)的出現(xiàn)以及 GPU 計算所提供的強大而高效的并行計算。人們利用 GPU 來訓練這些深度神經(jīng)網(wǎng)絡(luò),所使用的訓練集大得多,所耗費的時間大幅縮短,占用的數(shù)據(jù)中心基礎(chǔ)設(shè)施也少得多。
GPU 還被用于運行這些機器學習訓練模型,以便在云端進行分類和預測,從而在耗費功率更低、占用基礎(chǔ)設(shè)施更少的情況下能夠支持遠比從前更大的數(shù)據(jù)量和吞吐量。
將 GPU 加速器用于機器學習的早期用戶包括諸多規(guī)模的網(wǎng)絡(luò)和社交媒體公司,另外還有數(shù)據(jù)科學和機器學習領(lǐng)域中一流的研究機構(gòu)。與單純使用 CPU 的做法相比,GPU 具有數(shù)以千計的計算核心、可實現(xiàn) 10-100 倍應(yīng)用吞吐量,因此 GPU 已經(jīng)成為數(shù)據(jù)科學家處理大數(shù)據(jù)的處理器。
綜上而言,我們認為人工智能時代的 GPU 已經(jīng)不再是傳統(tǒng)意義上的圖形處理器,而更多的應(yīng)該賦予專用處理器的頭銜,具備強大的并行計算能力。
國內(nèi)在 GPU 芯片設(shè)計方面,還處于起步階段,與國際主流產(chǎn)品尚有一定的差距。不過星星之火,可以燎原。有一些企業(yè),逐漸開始擁有自主研發(fā)的能力,比如國內(nèi)企業(yè)景嘉微。
景嘉微擁有國內(nèi)首款自主研發(fā)的 GPU 芯片 JM5400,專用于公司的圖形顯控領(lǐng)域。JM5400 為代表的圖形芯片打破外國芯片在我國軍用 GPU 領(lǐng)域的壟斷,率先實現(xiàn)軍用 GPU國產(chǎn)化。GPU JM5400 主要替代 AMD 的 GPU M9,兩者在性能上的比較如下。相比而言,公司的 JM5400 具有功耗低,性能優(yōu)的優(yōu)勢。
4、FPGA簡介
FPGA,即現(xiàn)場可編程門陣列,它是在 PAL、GAL、CPLD 等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。FPGA 芯片主要由 6 部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式 RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。
FPGA 還具有靜態(tài)可重復編程和動態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改。FPGA能完成任何數(shù)字器件的功能,甚至是高性能 CPU 都可以用 FPGA 來實現(xiàn)。
FPGA 擁有大量的可編程邏輯單元,可以根據(jù)客戶定制來做針對性的算法設(shè)計。除此以外,在處理海量數(shù)據(jù)的時候,F(xiàn)PGA 相比于 CPU 和 GPU,獨到的優(yōu)勢在于:FPGA 更接近 IO。換句話說,F(xiàn)PGA是硬件底層的架構(gòu)。
比如,數(shù)據(jù)采用 GPU 計算,它先要進入內(nèi)存,并在 CPU 指令下拷入 GPU 內(nèi)存,在那邊執(zhí)行結(jié)束后再拷到內(nèi)存被 CPU 繼續(xù)處理,這過程并沒有時間優(yōu)勢;
而使用 FPGA 的話,數(shù)據(jù) I/O 接口進入 FPGA,在里面解幀后進行數(shù)據(jù)處理或預處理,然后通過 PCIE 接口送入內(nèi)存讓 CPU 處理,一些很底層的工作已經(jīng)被 FPGA 處理完畢了(FPGA 扮演協(xié)處理器的角色),且積累到一定數(shù)量后以 DMA 形式傳輸?shù)絻?nèi)存,以中斷通知 CPU 來處理,這樣效率就高得多。
雖然 FPGA 的頻率一般比 CPU 低,但 CPU 是通用處理器,做某個特定運算(如信號處理,圖像處理)可能需要很多個時鐘周期,而 FPGA 可以通過編程重組電路,直接生成專用電路,加上電路并行性,可能做這個特定運算只需要一個時鐘周期。
比如一般 CPU 每次只能處理 4 到 8 個指令,在 FPGA 上使用數(shù)據(jù)并行的方法可以每次處理 256 個或者更多的指令,讓FPGA可以處理比CPU多很多的數(shù)據(jù)量。
舉個例子,CPU 主頻 3GHz,F(xiàn)PGA主頻 200MHz,若做某個特定運算 CPU 需要 30 個時鐘周期,F(xiàn)PGA 只需一個,則耗時情況:CPU:30/3GHz =10ns;FPGA:1/200MHz =5ns。可以看到,F(xiàn)PGA 做這個特定運算速度比 CPU 塊,能幫助加速。
北京大學與加州大學的一個關(guān)于 FPGA 加速深度學習算法的合作研究。展示了 FPGA 與 CPU 在執(zhí)行深度學習算法時的耗時對比。在運行一次迭代時,使用 CPU 耗時 375 毫秒,而使用 FPGA 只耗時 21 毫秒,取得了18倍左右的加速比。
FPGA 相對于 CPU 與 GPU 有明顯的能耗優(yōu)勢,主要有兩個原因。首先,在 FPGA 中沒有取指令與指令譯碼操作, 在 Intel 的 CPU 里面,由于使用的是 CISC 架構(gòu),僅僅譯碼就占整個芯片能耗的 50%;
在 GPU 里面,取指令與譯碼也消耗了 10%~20%的能耗。其次,F(xiàn)PGA 的主頻比 CPU 與 GPU 低很多,通常 CPU 與 GPU 都在 1GHz 到 3GHz 之間,而 FPGA 的主頻一般在 500MHz 以下。如此大的頻率差使得 FPGA 消耗的能耗遠低于 CPU 與 GPU。
FPGA與CPU在執(zhí)行深度學習算法時的耗能對比。在執(zhí)行一次深度學習運算,使用 CPU 耗能 36 焦,而使用 FPGA 只耗能 10 焦,取得了 3.5 倍左右的節(jié)能比。通過用 FPGA 加速與節(jié)能,讓深度學習實時計算更容易在移動端運行。
相比CPU和GPU,F(xiàn)PGA 憑借比特級細粒度定制的結(jié)構(gòu)、流水線并行計算的能力和高效的能耗,在深度學習應(yīng)用中展現(xiàn)出獨特的優(yōu)勢,在大規(guī)模服務(wù)器部署或資源受限的嵌入式應(yīng)用方面有巨大潛力。此外,F(xiàn)PGA 架構(gòu)靈活,使得研究者能夠在諸如 GPU 的固定架構(gòu)之外進行模型優(yōu)化探究。
5、ASIC簡介
ASIC(專用集成電路),是指應(yīng)特定用戶要求或特定電子系統(tǒng)的需要而設(shè)計、制造的集成電路。嚴格意義上來講,ASIC 是一種專用芯片,與傳統(tǒng)的通用芯片有一定的差異。是為了某種特定的需求而專門定制的芯片。
ASIC 作為集成電路技術(shù)與特定用戶的整機或系統(tǒng)技術(shù)緊密結(jié)合的產(chǎn)物,與通用集成電路相比,具有以下幾個方面的優(yōu)越性:體積更小、功耗更低、可靠性提高、性能提高、保密性增強、成本降低。回到深度學習最重要的指標:算力和功耗。我們對比 NVIDIA 的 GK210 和某 ASIC 芯片規(guī)劃的指標,如下所示:
從算力上來說,ASIC 產(chǎn)品的計算能力是 GK210 的 2.5 倍。第二個指標是功耗, 功耗做到了 GK210 的 1/15。第三個指標是內(nèi)部存儲容量的大小及帶寬。這個內(nèi)部 MEMORY 相當于 CPU 上的 CACHE。
深度雪地的模型比較大,通常能夠到幾百 MB 到 1GB 左右,會被頻繁的讀出來,如果模型放在片外的 DDR 里邊,對 DDR 造成的帶寬壓力通常會到 TB/S 級別。
全定制設(shè)計的ASIC,因為其自身的特性,相較于非定制芯片,擁有以下幾個優(yōu)勢:
同樣工藝,同樣功能,第一次采用全定制設(shè)計性能提高 7.6 倍
普通設(shè)計,全定制和非全定制的差別可能有 1~2 個數(shù)量級的差異
采用全定制方法可以超越非全定制 4 個工藝節(jié)點(采用 28nm 做的全定制設(shè)計,可能比 5nm 做的非全定制設(shè)計還要好)我們認為,ASIC 的優(yōu)勢,在人工智能深度學習領(lǐng)域,具有很大的潛力。
ASIC 在人工智能深度學習方面的應(yīng)用還不多,但是我們可以拿比特幣礦機芯片的發(fā)展做類似的推理。比特幣挖礦和人工智能深度學習有類似之處,都是依賴于底層的芯片進行大規(guī)模的并行計算。而 ASIC 在比特幣挖礦領(lǐng)域,展現(xiàn)出了得天獨厚的優(yōu)勢。
比特幣礦機的芯片經(jīng)歷了四個階段:CPU、GPU、FPGA 和 ASIC。ASIC 芯片是專為挖礦量身定制的芯片,它將 FPGA 芯片中在挖礦時不會使用的功能去掉,與同等工藝的 FPGA 芯片相比執(zhí)行速度塊,大規(guī)模生產(chǎn)后的成本也要低于 FPGA 芯片。
從 ASIC 在比特幣挖礦機時代的發(fā)展歷史,可以看出 ASIC 在專用并行計算領(lǐng)域所具有的得天獨厚的優(yōu)勢:算力高,功耗低,價格低,專用性強。谷歌最近曝光的專用于人工智能深度學習計算的TPU、其實也是一款 ASIC。
綜上,人工智能時代逐步臨近,GPU、FPGA、ASIC這幾塊傳統(tǒng)領(lǐng)域的芯片,將在人工智能時代迎來新的爆發(fā)。
編輯:jq
-
gpu
+關(guān)注
關(guān)注
28文章
4754瀏覽量
129069
原文標題:聚焦 | GPU、FPGA和ASIC
文章出處:【微信號:wcdz8888,微信公眾號:威臣電子有限公司】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論