【中國安防展覽網 媒體導讀】雖然說,我國的人工智能芯片處于起步階段,進步空間巨大,芯片的市場前景也非常高,在人工智能行業,得芯片者可以說得天下。總之,芯片技術含量極高,非常重要,市場空白,前景廣闊。
AI 芯片作為產業核心,也是技術要求和附加值高的環節,在AI產業鏈中的產業價值和戰略地位遠遠大于應用層創新。騰訊發布的《中美兩國人工智能產業發展全面解讀》報告顯示,基礎層的處理器/芯片企業數量來看,中國有 14 家,美國 33 家。本文將對這一領域產業生態做一個簡單梳理。
AI 芯片分類
從功能看,可以分為 Training(訓練)和 Inference(推理)兩個環節
Training 環節通常需要通過大量的數據輸入,或采取增強學習等非監督學習方法,訓練出一個復雜的深度神經網絡模型。訓練過程由于涉及海量的訓練數據和復雜的深度神經網絡結構,運算量巨大,需要龐大的計算規模,對于處理器的計算能力、精度、可擴展性等性能要求很高。目前,在訓練環節主要使用 NVIDIA 的 GPU(Graphics Processing Unit,圖形處理器)集群來完成,Google 自主研發的 ASIC(Application Specific Integrated Circuit,專用集成電路)芯片 TPU 2.0 也支持訓練環節的深度網絡加速。
Inference 環節指利用訓練好的模型,使用新的數據去「推理」出各種結論,如視頻監控設備通過后臺的深度神經網絡模型,判斷一張抓拍到的人臉是否屬于黑名單。雖然 Inference 的計算量相比 Training 少很多,但仍然涉及大量的矩陣運算。在推理環節,GPU、FPGA(Field Programmable Gate Array,現場可編程門陣列)和 ASIC 都有很多應用價值。
從應用場景看,可以分成「Cloud/DataCenter(云)」和「Device/ Embedded(設備端)」兩大類
在深度學習的 Training 階段,由于對數據量及運算量需求巨大,單一處理器幾乎不可能獨立完成一個模型的訓練過程,因此,Training 環節目前只能在云端實現,在設備端做 Training 目前還不是很明確的需求。
在 Inference 階段,由于目前訓練出來的深度神經網絡模型大多仍非常復雜,其推理過程仍然是計算密集型和存儲密集型的,若部署到資源有限的終端用戶設備上難度很大。因此,云端推理目前在人工智能應用中需求更為明顯。GPU、FPGA、ASIC(Google TPU1.0/2.0)等都已應用于云端 Inference 環境。
在設備端 Inference 領域,由于智能終端數量龐大且需求差異較大。如 ADAS、VR 等設備對實時性要求很高,推理過程不能交由云端完成,要求終端設備本身需要具備足夠的推理計算能力,因此一些低功耗、低延遲、低成本的專用芯片也會有很大的市場需求。
按照上述兩種分類,我們得出 AI 芯片分類象限如下圖所示。
除了按照功能場景劃分外,AI 芯片從技術架構發展來看,大致也可以分為四個類型:通用類芯片,代表如 GPU、FPGA;基于 FPGA 的半定制化芯片,代表如深鑒科技 DPU、百度 XPU 等;全定制化 ASIC 芯片,代表如 TPU、寒武紀 Cambricon-1A 等;類腦計算芯片,代表如 IBM TrueNorth、westwell、高通 Zeroth 等。
AI 芯片產業生態
從上述分類象限來看,目前 AI 芯片的市場需求主要是三類:面向于各大人工智能企業及實驗室研發階段的 Training 需求(主要是云端,設備端 Training 需求尚不明確);Inference On Cloud,Face++、出門問問、Siri 等主流人工智能應用均通過云端提供服務;Inference On Device,面向智能手機、智能攝像頭、機器人/無人機、自動駕駛、VR 等設備的設備端推理市場,需要高度定制化、低功耗的 AI 芯片產品。如華為麒麟 970 搭載了「神經網絡處理單元(NPU,實際為寒武紀的 IP)」、蘋果 A11 搭載了「神經網絡引擎(Neural Engine)」。
1. Training,訓練
2007 年以前,人工智能研究受限于當時算法、數據等因素,對于芯片并沒有特別強烈的需求,通用的 CPU 芯片即可提供足夠的計算能力。
Andrew Ng 和 Jeff Dean 打造的 Google Brain 項目,使用包含 16000 個 CPU 核的并行計算平臺,訓練超過 10 億個神經元的深度神經網絡。但 CPU 的串行結構并不適用于深度學習所需的海量數據運算需求,用 CPU 做深度學習訓練效率很低。在早期使用深度學習算法進行語音識別的模型中,擁有 429 個神經元的輸入層,整個網絡擁有 156M 個參數,訓練時間超過 75 天。
與 CPU 少量的邏輯運算單元相比,GPU 整個就是一個龐大的計算矩陣,GPU 具有數以千計的計算核心、可實現 10-100 倍應用吞吐量,而且它還支持對深度學習至關重要的并行計算能力,可以比傳統處理器更加快速,大大加快了訓練過程。
從上圖對比來看,在內部結構上,CPU中 70% 晶體管都是用來構建 Cache(高速緩沖存儲器)和一部分控制單元,負責邏輯運算的部分(ALU 模塊)并不多,指令執行是一條接一條的串行過程。
GPU 由并行計算單元和控制單元以及存儲單元構成,擁有大量的核(多達幾千個)和大量的高速內存,擅長做類似圖像處理的并行計算,以矩陣的分布式形式來實現計算。同 CPU 不同的是,GPU 的計算單元明顯增多,特別適合大規模并行計算。
在人工智能的通用計算 GPU 市場,NVIDIA 現在一家獨大。2010 年 NVIDIA 就開始布局人工智能產品,2014年發布了新一代 PASCAL GPU 芯片架構,這是 NVIDIA 的第五代 GPU 架構,也是為深度學習而設計的 GPU,它支持所有主流的深度學習計算框架。
2016 年上半年,NVIDIA 又針對神經網絡訓練過程推出了基于 PASCAL 架構的 TESLA P100 芯片以及相應的超級計算機 DGX-1。DGX-1 包含 TESLA P100 GPU 加速器,采用 NVLINK 互聯技術,軟件堆棧包含主要深度學習框架、深度學習 SDK、DIGITS GPU 訓練系統、驅動程序和 CUDA,能夠快速設計深度神經網絡(DNN),擁有高達 170TFLOPS 的半精度浮點運算能力,相當于 250 臺傳統服務器,可以將深度學習的訓練速度加快 75 倍,將 CPU 性能提升 56 倍。
Training 市場目前能與 NVIDIA 競爭的就是 Google。今年 5 月份 Google 發布了 TPU 2.0,TPU(Tensor Processing Unit)是 Google 研發的一款針對深度學習加速的 ASIC 芯片,代 TPU 僅能用于推理,而目前發布的 TPU 2.0 既可以用于訓練神經網絡,又可以用于推理。
據介紹,TPU 2.0 包括了四個芯片,每秒可處理 180 萬億次浮點運算。Google 還找到一種方法,使用新的計算機網絡將 64 個 TPU 組合到一起,升級為所謂的 TPU Pods,可提供大約 11500 萬億次浮點運算能力。Google 表示,公司新的深度學習翻譯模型如果在 32 塊性能好的 GPU 上訓練,需要一整天的時間,而八分之一個 TPU Pod 就能在 6 個小時內完成同樣的任務。
目前 Google 并不直接出售 TPU 芯片,而是結合其開源深度學習框架 TensorFlow 為 AI 提供 TPU 云加速的服務,以此發展 TPU2 的應用和生態,比如 TPU2 同時發布的 TensorFlow Research Cloud (TFRC)。
上述兩家以外,傳統 CPU/GPU 廠家 Intel 和 AMD 也在努力進入這 Training 市場,如 Intel 推出的 Xeon Ph + Nervana 方案,AMD 的下一代 VEGA 架構 GPU 芯片等,但從目前市場進展來看很難對 NVIDIA 構成威脅。
初創公司中,Graphcore 的 IPU 處理器(Intelligence Processing Unit)據介紹也同時支持 Training 和 Inference。該 IPU 采用同構多核架構,有超過 1000 個獨立的處理器;支持 All-to-All 的核間通信,采用 Bulk Synchronous Parallel 的同步計算模型;采用大量片上 Memory,不直接連接 DRAM。
總之,對于云端的 Training(也包括 Inference)系統來說,業界比較一致的觀點是競爭的核心不是在單一芯片的層面,而是整個軟硬件生態的搭建。NVIDIA的CUDA + GPU、Google 的 TensorFlow + TPU 2.0,巨頭的競爭也才剛剛開始。