在人工智能AI芯片與Maker創意接軌(上)這篇文章中,介紹人工智能與深度學習,以及深度學習技術的應用,瞭解內部真實的做業原理,讓咱們可以跟上這波AI新浪潮。系列文來到了中篇,將詳細介紹目前市面上的各種AI芯片,進一步分析不一樣類型的芯片。git
目前市面上對人工智能(AI)芯片常見的做法大體可分紅五大類:通用型的CPU(Central Processing Unit)、半通用型的GPU (GraphicsProcessing Unit)、半專用型的FPGA (Field Programmable Gate Array)、專用型的ASIC (ApplicationSpecific Integrated Circuit)及混合型的SoC(System on ChiP),以下圖所示。接下來就針對各種型特點、表明性廠商及產品作一簡介,更完整的比較表請參考文末的比較表。web
人工智能(AI)芯片主要分類及對應供貨商算法
1、中央處理器(CPU)─通用型AI芯片api
通常計算機中必定會有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進行運算時,則一般僅能執行較簡單的網絡(模型)。多線程
2、繪圖芯片(GPU)─半通用型AI芯片app
繪圖芯片原來是用於處理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系列就徹底沒有框架可支持。
3、現場可程序邏輯門陣列(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快速開發工具會加入戰場。
4、特殊應用集成電路(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)互動等應用也是熱門領域。
5、系統級芯片(SoC)─混合型AI芯片
通常以CPU爲主的小型嵌入式系統或是行動通信裝置爲了省電一般沒有太強大的計算能力,因此若是要順利執行人工智能或深度學習相關應用,一般要搭配其它AI芯片才能順暢運做。較常見的做法是將多種功能直接整合到單一芯片上,或者稱爲SoC(System on Chip),尤爲手機、嵌入式裝置、物聯網(IoT)芯片幾乎都是採用此種做法。
Samsung Exynos 9810
6、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