1. 程式人生 > >人工智慧AI晶片與Maker創意接軌 (中)

人工智慧AI晶片與Maker創意接軌 (中)

在人工智慧AI晶片與Maker創意接軌(上)這篇文章中,介紹人工智慧與深度學習,以及深度學習技術的應用,瞭解內部真實的作業原理,讓我們能夠跟上這波AI新浪潮。系列文來到了中篇,將詳細介紹目前市面上的各類AI晶片,進一步分析不同型別的晶片。

目前市面上對人工智慧(AI)晶片常見的作法大致可分成五大類:通用型的CPU(Central Processing Unit)、半通用型的GPU (GraphicsProcessing Unit)、半專用型的FPGA (Field Programmable Gate Array)、專用型的ASIC (ApplicationSpecific Integrated Circuit)及混合型的SoC(System on ChiP),如下圖所示。接下來就針對各型別特色、代表性廠商及產品做一簡介,更完整的比較表請參考文末的比較表。

人工智慧(AI)晶片主要分類及對應供貨商

一、中央處理器(CPU)─通用型AI晶片

一般計算機中一定會有CPU負責算術、邏輯、儲存及輸出入介面管理,因此可執行任何需要的演算法,當然也包括各式人工智慧、機器學習及深度學習的演算法。其優點時可應付各種演算法的變化,彈性極高,並可處理邏輯運算及海量儲存器管理。現在較高階的CPU通常都會包含以往DSP(Digital Signal Processor)才有的乘加(MAC)指令,讓Y=A*B+C本來要兩次運算才能完成的指令,變成一次指令週期就能完成計算,加快指令週期。

但缺點是CPU計算用的核心(或執行緒Thread)數通常不會太多(一般型約1~10核,伺服器型32~72核),耗能較大,且未來核心數及速度已快達物理極限不易大幅提升,因此若要應付像深度學習這類大量演算時,通常只能選用核心(執行緒)數量較多或速度較快的晶片來解決,或者只執行較簡單模型的推論工作而不參與訓練。

Intel CPU

此型別較具代表的廠商有Intel、AMD、ARM、MIPS等(後兩家不生產實體晶片僅提供矽智財,都已被併購)。在AI應用上,Intel和AMD比較著重提供伺服器等級的高效晶片,如Intel Xeon Phi 7290F或AMD EPYC 7601都是屬於高核心數、多執行緒型。而ARM和MIPS則在移動式或嵌入式平臺較為常見,通常會搭配其它AI晶片一起執行。若只單純使用多核CPU進行運算時,則通常僅能執行較簡單的網路(模型)。

二、繪圖晶片(GPU)─半通用型AI晶片

繪圖晶片原來是用於處理3D模型大量的三角面繪製、著色及顯示,幾乎都在處理矩陣演算(乘加運算),沒有邏輯處理,因此設計上有大量(數百到數萬個)的計算核心可供平行運算。後來,有人發現此特性比CPU更有利於進行有大量矩陣的科學計算,於是推出類似OpenGL的通用式的描述式語言,忽略繪圖功能,直接當成平行運算使用,如GPGPU(General-purpose computing on graphics processing units)、OpenMP、OpenVx、CUDA(Nvidia專用)、 OpenCL(大多數繪圖晶片)、Android NN等。

當深度卷積網路興起時,GPU正好滿足這項大量平行矩陣計算的需求,因此造成洛陽紙貴,高階顯示介面卡一卡難求。雖然GPU非常適合當作訓練用,且可適用各種新的網路的開發,但不適合具有大量邏輯判斷的演算法,且浪費許多時間及功耗在處理繪圖流水線(Pipeline)。另外,許多深度學習的框架(例如:PyTorch、Caffe、TensorFlow、Mxnet、CNTK、Keras等)不一定對所有的GPU都有支援,尤其是對行動裝置上的GPU更常遇到無法直接使用的問題。

Nvidia GPU

此類晶片最具代表性的廠商就是Nvidia,不但有完整的產品線(GeForce、 Tesla、Titan、DGX、Tegra、DriverPX等系列),從一般計算機、專業伺服器到嵌入式甚至自駕車都有對應產品,專業顯示卡少則數千元,多則數百萬元。開發工具有CUDA, cuDNN等,更是促使GPU在AI應用上發揮更大算力,同時支援最多種深度學習框架,有完整的開發者生態圈,是其它GPU廠商難以憾動的。

雖然像AMD(Radeon系列)、Intel (HD Graphics系列)等大廠也有生產GPU,但目前可支援的框架就明顯少了許多。另外,在行動裝置上 Arm Mali系列、Qualcomm Adreno系列等較高階的可以用OpenCL來協助,但像Broadcom VideoCore系列就完全沒有框架可支援。

三、現場可程式邏輯閘陣列(FPGA)─半專用型AI晶片

GPU雖然使用上彈性較大,但畢竟不是專門用來做深度學習用的,有很長的工作流水線,所以在實時性、功耗及邏輯運算及記憶體管理等問題上都不易克服。如果設計成深度學習專用的積體電路(IC)又怕演算法(模型)一直在演進,那好不容易才完成的IC就沒用了。一般IC設計完成後就不能變動,就像只能燒錄一次的光碟片,但FPGA卻允許隨時依需求變動,就像可重複燒寫的光碟片,這項特性很適合在這個AI百家爭鳴的時代隨時可跟著一起演進又能保持執行效能。

不過這種方案最大的缺點是硬體成本很高,所以只適合放在機房當雲端訓練及推論用。此外由於記憶體不像CPU或GPU可以配置很大,所以並不適合引數量過大的模型。

目前Xilinx佔了約50%的市佔率,而深鑑科技(DeePhi)則主攻使用Xilinx Zynq 7000系列FPGA設計各種深度學習計算所需演算法及開發工具,應用於無人機、安防、自駕車上,目前已獲多家知名創投投資。百度也利用Xilinx FPGA開發出XPU打造自家雲端計算所需硬體。深思考(ideepwise)也利用FPGA製作專屬的AI晶片,鎖定醫療、情緒、自然語言、計算器視覺等領域。

Xilinx開發FPGA AI晶片

而Intel為了補足在AI晶片市場的不足,於是在2015年把市佔率40%的Altera買下。而微軟則另闢戰場,花了六年時間執行Catapult計劃將FPGA全面進駐至Azure雲端資料中心加速AI相關服務的計算速度。另外為了讓IC設計人員能對AI領域演算法快速上手,Xilinx已開始把常用的AI演算法(模型)及影像辨識功能以模組(xfDNN, xfOpenCV)方式匯入,相信未來會有更多專門用於AI領域的FPGA快速開發工具會加入戰場。

四、特殊應用積體電路(ASIC)─專用型AI晶片

為了展現更好的計算效能、更低的價格及功耗併兼容CPU和GPU的優點,設計出專屬於深度學習的AI晶片就變成不可或缺的。但此類專用型IC缺點就是沒有彈性,只能處理單一功能,所以為了應付AI演算法(模式)不斷演化,多半會搭配特定框架(例如:TensorFlow, Cafee, MXNet等)進行開發,甚至更窄化到只針對大量矩陣演算的優化。另外由於ASIC投產所需成本極高,若一年沒有賣個數百萬到千萬臺的銷量,則可能難以支付開發成本。

所以目前主要市場可分為用於機房雲端訓練及推論用、行動通訊裝置本地(邊緣)端(Local/Edge)推論用及特殊用途小型嵌入式裝置(如自駕車)等。因此為了吸引市場的目光,許多廠商紛紛推出各種新名詞來突顯自家的能力,比方說Google的TPU (Tensor Processing Unit)、Movidius(Intel收購)的VPU(Vision Processing Unit)、寒武紀(Cambricon)的NPU(Neural Processing Unit)、聯發科(MediaTek)的APU(Artificial intelligence Processing Unit)、地平線(horizon-robotics)的BPU(BrainProcessing Unit)、深鑑(DeePhi)的DPU(Deep Learning Processor Unit)、Graphcore的IPU(IntelligenceProcessing Unit)。

Google推TPU AI晶片

另外像Mobileye更將自家專用於自駕車的EyeQ系列中的平行運算單元依不同用途細分為VMP(Vector Microcode Processors)、PMA (ProgrammableMacro Array)、MPC(Multithreaded Processing Clusters)。不管名稱為何,其本質都大同小異,都是在處理大量的矩陣平行演算。

為了使深度學習能普及到各種行動裝置並免除雲端聯機計算實時性不佳的問題,此類專門用於推論的ASIC已成了兵家必爭之地,目前仍以影像及語音兩大領域應用為主,另外像人臉(生物)辨識、自駕車、智慧零售、智慧拍照、安全監控、智慧音箱、機器人、無人機、實境(VR/AR/MR/XR)互動等應用也是熱門領域。

五、系統級晶片(SoC)─混合型AI晶片

一般以CPU為主的小型嵌入式系統或是行動通訊裝置為了省電通常沒有太強大的計算能力,所以如果要順利執行人工智慧或深度學習相關應用,通常要搭配其它AI晶片才能順暢運作。較常見的作法是將多種功能直接整合到單一晶片上,或者稱為SoC(System on Chip),尤其手機、嵌入式裝置、物聯網(IoT)晶片幾乎都是採用此種作法。

Samsung Exynos 9810

六、AI應用─自駕車領域

另外像自駕車領域的AI應用對於整合性、計算的實時性要求更高,因此通常都也會採混合式AI晶片設計。

臺灣目前僅有聯發科用了ARM的解決方案,開發出手機用SoC AI晶片Holio P60準備上市外,其它廠商可能都還在努力中或者只利用別家的AI晶片開發相關服務。相較於大陸已有十多家IC設計公司成功將產品上市,並且有眾多的AI晶片應用公司提供橫跨上、中、下游的服務,看來臺灣得更加努力發揮創意突破這一困境了。

除此之外,目前還有幾家已被鉅額投資但還未有產品上市的AI晶片公司也值得期待,如Intel收購的Nervana Systems、知名創投Benchmark Capital投資的Cerebras Systems、SoftBank Ventures投資的Mythic,八位Google TPU團隊離職後開的公司Groq。

自駕車的AI應用採混合式AI晶片設計,要求整合性、計算的實時性。

小結

綜合以上內容,CPU(伺服器等級)、GPU、FPGA、ASIC等AI晶片都很適合大量建置在機房中,有利於雲端訓練及雲端推論,但行動裝置(邊緣計算)受限於產品體積大小、運算效能、消耗功率、產品價格等問題,通常要採用ASIC或SoC型別的AI晶片,而訓練部份就得仰賴雲端訓練後再將引數值下載到行動裝置中進行推論。

至於全球AI晶片廠商產品的比較,請參考下表

原文參考

https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247484319&idx=3&sn=f11764e6f1f66c4d03c125ad4187d831&chksm=fb22e45acc556d4ca12b0c5f56c3db6ed49110b12d416ab5bd9a49c1f1fe01bc736e49f600c1#rd