■ 文/深圳云天勵飛技術有限公司 王和國
關鍵字:AI ASIC ASIP CPU GPU

2017年至今,人工智能(Artificial Intelligence),英文縮寫為AI,連續三年寫進政府工作報告,語境描述從“加快”“加強”變為“深化”,人工智能已經上升為國家戰略,而作為支撐人工智能應用落地的基石AI芯片,其發展就顯得尤為重要。當前,關于 AI 芯片的定義并沒有一個嚴格和公認的標準。比較寬泛的看法是,面向人工智能應用的芯片都可以稱為AI芯片。
隨著人工智能的發展,世界正逐步進入萬物互聯、萬物智能的AIoT時代,互聯網數據中心(IDC)預測,到2020年,物聯網會有500億感知設備,而50%的計算會在邊緣設備上進行。據Gartner預估,人工智能神經網絡芯片在2020年的全球市場將達到146億美元,并且每年都保持高速增長。

圖1 全球人工智能芯片市場規模(億美元)
據統計,基于國家天網工程、雪亮工程的建設,我國已部署了近8000萬個覆蓋全國的網絡高清攝像頭,基本實現了關鍵道路、路口、大型商場、超市、公共場所的24小時視頻監控覆蓋,使得我國的民生安全保障邁上了一個新臺階。然而一個高清攝像頭一天產生20GB的視頻數據,8000萬個攝像頭每天產生160TB的海量視頻數據,通過人工方式檢索、傳統視覺技術排查效率低下,并且幾乎不可能實現實時有效監控,安防監控智能化亟待提高。同時,機器人作為智能安防建設的一環,起到無人值守的作用,對視覺智能有著更高的要求。近幾年,隨著人工智能深度學習檢測和識別算法的成熟,靜態、動態人臉識別技術已經在安防領域實現了規模落地應用,使得警務工作效率有了大幅提高。實際上,人工智能產業得以快速發展,無論是算法的實現、海量數據的獲取和存儲還是計算能力的體現都離不開目前唯一的物理基礎——芯片。可以說,“無芯片不 AI”。
最早開始研究AI芯片的是加州理工學院 Carver Mead,他在 20世紀 80年代開始研究神經擬態系統(neuromorphic electronic systems),利用模擬電路模仿生物神經系統結構。經過 30多年的發展,目前已經誕生了不同特色的各類 AI 芯片,主要包括中央處理器(Central Processing Uni,CPU)、圖形處理器(Graphics Processing Unit,GPU)、現場可編程門陣列(Field-Programmable Gatearray,FPGA)、專用集成電路( Application Specific Integrated Circuit,ASIC)等。
2.1.1 CPU時代
2007年以前,人工智能研究和應用經歷了數次起伏,一直沒有發展成為成熟的產業;同時受限于當時算法、數據等因素,這一階段人工智能對于芯片并沒有特別強烈的需求,通用的CPU芯片即可提供足夠的計算能力。
然而隨著人工智能算法往深度學習方向的演進,傳統的CPU并不適用于深度學習。從內部結構上來看,CPU中70%晶體管都是用來構建Cache(高速緩沖存儲器)和部分控制單元,負責邏輯運算的部分(ALU模塊)并不多。控制單元等模塊的存在都是為了保證指令能夠一條接一條的有序執行。
這種通用性結構對于傳統的編程計算模式非常適合,但對于并不需要太多的程序指令,卻需要海量數據運算的深度學習的計算需求,這種結構就顯得有心無力了。
2.1.2 GPU時代
由于高清視頻、游戲等行業的發展,GPU產品取得快速的突破。同時人們發現GPU的并行計算特性恰好適應人工智能算法大數據并行計算的要求,如GPU比之前傳統的CPU在深度學習算法的運算上可以提高9倍到72倍的效率,因此開始嘗試使用GPU進行人工智能的計算。
GPU 作為圖像處理器,設計初衷是為了應對圖像處理中需要大規模并行計算。因此,其在應用于深度學習算法時,有三個方面的局限性:
第一, 應用過程中無法充分發揮并行計算優勢。深度學習包含訓練和應用兩個計算環節,GPU 在深度學習算法訓練上非常高效,但在應用時一次性只能對于一張輸入圖像進行處理,并行度的優勢不能完全發揮;
第二, 硬件結構可編程性不夠。深度學習算法還未完全穩定,若深度學習算法發生大的變化,GPU無法像FPGA一樣可以靈活的配制硬件結構;
第三, 運行深度學習算法的效率不高,雖然比CPU有很大的提升,但是功耗依舊很大。
2.1.3 FPGA時代
FPGA可以同時進行數據并行和任務并行計算,在處理特定應用時有更加明顯的效率。對于某個特定運算,通用CPU可能需要多個時鐘周期;而FPGA可以通過編程重組電路,直接生成專用電路,僅消耗少量甚至一次時鐘周期就可完成運算。
此外,由于FPGA的靈活性,很多使用通用處理器或ASIC難以實現的下層硬件控制操作技術利用FPGA可以很方便的實現,從而為算法的功能實現和優化留出了更大空間。
盡管可以通過編程重構為不同電路結構,但是重構的時間開銷過大,編程復雜性過高,需要用戶具備專業的代碼編寫技能。同時,過多的冗余邏輯導致其成本和功耗太高,無法適應人工智能在嵌入式前端大規模部署的要求。
2.1.4 ASIC時代
ASIC 是一種為專用目的設計的,面向特定用戶需求的定制芯片,在大規模量產的情況下具備性能更強、體積更小、功耗更低、成本更低、可靠性更高等優點。ASIC分為全定制和半定制。全定制設計需要設計者完成所有電路的設計,因此需要大量人力物力,靈活性好,但開發效率低下,時間成本高昂。如果設計較為理想,全定制能夠比半定制的 ASIC 芯片運行速度更快。半定制使用庫中標準邏輯單元,設計時可以從標準邏輯單元庫中選擇門電路、加法器、比較器、數據通路、存儲器甚至系統級模塊和 IP核,這些邏輯單元已經布局完畢,而且設計得較為可靠,設計者可以較方便地完成系統設計。
近年來越來越多的公司開始采用ASIC芯片進行深度學習算法加速,其中表現最為突出的是 Google 的TPU。TPU 的主要模塊包括 24 MB 的局部內存、6 MB的累加器內存、256×256個矩陣乘法單元、非線性神經元計算單元,以及用于歸一化和池化的計算單元。TPU比同時期的GPU或CPU平均提速15-30倍,能效比提升 30-80倍。北京寒武紀科技有限公司、北京比特大陸科技有限公司、北京地平線信息技術有限公司、深圳云天勵飛等公司也都推出了用于深度神經網絡加速的ASIC芯片。由于當前基于DNN的算法還沒有統一的標準,算法還在不斷快速演進當中,所以 ASIC的設計也需要保持一定的可編程性,采取軟硬件協同設計。
2.2.1 數據訪存問題
在 AI 芯片實現中,基于馮·諾伊曼體系結構,提供運算能力相對是比較簡單易行的,但由于運算部件和存儲部件存在速度差異,當運算能力達到一定程度,由于訪問存儲器的速度無法跟上運算部件消耗數據的速度,再增加運算部件也無法得到充分利用,即形成所謂的馮·諾伊曼“瓶頸”,或“內存墻”問題,是長期困擾計算機體系結構的難題。人工智能工作負載多是數據密集型,需要大量的存儲和各層次存儲器間的數據搬移,導致“內存墻”問題更加突出。
AI芯片架構層面解決這一問題的基本思路體現在兩大方面 :1)減少訪問存儲器的數量,比如減少神經網絡的存儲需求(參數數量,數據精度,中間結果)、數據壓縮和以運算換存儲等 ;2)降低訪問存儲器的代價,盡量拉近存儲設備和運算單元的“距離”,甚至直接在存儲設備中進行運算。主要有以下幾方面的探索研究:一是采用富內存的處理單元,增加片上存儲器的容量并使其更靠近計算單元,使得數據計算單元和內存之間的數據移動成本(時間和功耗)大大減少;二是采用具備計算能力的新型存儲器。直接在存儲器內部(或更近)實現計算。這種方法也被稱為近存儲計算或存內計算,當前已有大批創新公司,比如Rival Mythic、Syntiant等公司正在研究近存儲計算和存內計算,解決計算帶寬問題。
2.2.2 架構通用性問題
人工智能應用于各行各業,包括人臉識別、語音識別、自動駕駛、神經網絡翻譯等等,所使用的神經網絡算法模型層出不窮,不同神經網絡互連結構、基礎計算部件不同,與之匹配的硬件架構需求也不同。比如針對CNN的加速架構,在執行LSTM模型時并行利用率可能還不到20%。由于硬件的固化性,架構實時可重構的空間有限,在架構設計時就應充分考慮通用性問題。
為解決架構通用性問題,同時保持較高的能耗比,一種比較可行的辦法是使用ASIP(Application Specific Instruction Set Processor)的設計思路設計針對人工智能的神經網絡處理器,通過指令編程的方式實現人臉識別等深度學習算法。ASIP是一種定制處理器的技術路線,通過開發面向深度學習的指令集,定制可編程的處理器IP,保留了很高的靈活性。在處理器上開發深度學習算法,當算法發生變化的時候,可以通過編程重構、重新修正函數等方式,使神經網絡處理器芯片能學習、重新訓練適應新的算法。ASIP設計思路既能提供ASIC級別的高性能和低功耗,也能提供處理器級別的指令集靈活性。它是高效性和靈活性之間最佳的平衡點。
就目前安防行業人工智能技術來看,可分為生物識別、物體識別、視頻結構化、3D結構光、3D視覺、自然語言處理等。其中以生物識別,包括人臉識別、指紋識別、指靜脈識別、虹膜識別、聲音識別等技術,經過一系列發展與行業關注,被大家認識較多,應用也更多。此外還有物體識別如車牌識別、車型識別等也比較常用,以及視頻結構化數據,也是當前安防企業研究人工智能的重點內容之一。
而從應用層面看,安防人工智能技術的應用已經涉及多個領域,從公安領域到交通,再到校園、樓宇、民用安防,人工智能已經將觸手伸到越來越多的角落。
從整體上來看,公安行業是安防人工智能技術最先的落腳點,也是當前應用項目比較多的領域,從圖偵、實戰到預判,可以滿足公安從事前、事中到事后的需求。當然,除了為刑偵破案,預防犯罪等提供了強大的技術支持,對于日常的警民服務工作也提供了更多幫助,為緩解公安工作壓力,提高辦事效率帶來新的改變。
在當前整個安防行業的生態鏈中,AI芯片覆蓋著端、邊、云三方面的應用,利用不同的形態和組合,實現對于安防行業AI落地,特別是視覺AI在端、邊、云上的應用。在前端設備中,AI芯片以模組的形式實現人臉的處理和視頻結構化的處理;在邊緣端,AI芯片通過組成邊緣智能的計算子板的方式,可以實現多路視頻結構化的能力,邊緣側實際就是一個區域的中心和大腦;最后,所有邊緣側的信息匯聚到云側(數據中心),在云側完成針對安防行業所開發的所有AI任務。由于前端設備對AI芯片的功耗、成本的限制,當前端側AI芯片的性能還無法完全滿足AI計算的需求,很大一部分AI任務還需要放置于云端來完成,這樣就對數據傳輸帶寬帶來了很大的挑戰,同時對云端存儲也帶來很大的需求。
為了解決當前安防行業人工智能在云端處理所帶來數據傳輸、存儲等方面的問題,新型智能安防建設要求很大部分視頻智能化處理工作前置到前端攝像頭,這樣可以極大的降低百萬、千萬攝像頭對云端傳輸帶寬的需求,可以大幅降低智能安防的建設成本,同時前端攝像頭的智能化,可以保證目標識別的低延時,從而實現實時的犯罪預防、緊急事態預警。另外,隨著4K人臉識別攝像頭的發展,監控攝像頭已經從1080P向4K分辨率發展,未來5年內,4K人臉識別攝像頭的市場需求量超過1000萬。這對數據傳輸、存儲將帶來更加嚴峻的挑戰。
基于這些安防行業發展趨勢以及所要解決的痛點,我們認為在未來安防行業端、邊、云的協同工作中,端側需要承載的人工智能任務更加復雜、多樣、繁重,以解決端/云傳輸帶寬、存儲所帶來的挑戰。我們預測,未來嵌入的安防AI芯片需要能夠支持的特性包括:人車物分類、識別、關鍵屬性檢測、文字識別、語意提取、跨鏡追蹤Re-ID、視頻上下文的動態行為分析等神經網絡算法,可以實現視頻流的動態全結構化提取。同時,單機任務的動態配置、多機任務的協同和調度會極大的促進智能安防產業的升級換代。為了讓AI芯片能夠很好的支撐以上特性,我們認為,新型安防AI芯片需滿足如下幾個特性。
3.2.1 高能效
隨著城市場景的日益復雜,對于人、車、物的分析深度和廣度要求也越來越高,提升單算法的精度,以及多細分場景下的智能算法并行已經成為剛性需求,提升端設備人工智能芯片的算力迫在眉睫。在提升算力的同時,還需要保持芯片算力和功耗的平衡,因此在設計上要引入低數據精度和近存儲計算方法。
3.2.2 可重構
AI芯片需要具備按需重定義的功能,一方面可以根據不同的應用場景按需加載不同的算法,甚至可以加載不同的算法組合來快速適配場景的應用演進;另一方面,對于同一種算法,也需要支持算法自身的演進以及精度的不斷迭代等要求;芯片在架構設計上支持在線加載,減少重定義過程帶來的無法連續工作的影響。
3.2.3 生態開放
AI芯片需要能提供完整的軟件開發環境、工具鏈以及SDK,兼容業界主流的深度學習框架,打破目前“封閉智能”的現狀,加速芯片多場景應用落地的開發進度。當然,在芯片平臺開放的同時,芯片本身需要具備安全架構設計,保證算法模型、參數甚至視頻碼流的安全性。

基于以上人工智能的需求分析,展望未來,所有的終端都將具備人工智能的功能,而所有的這些人工智能的功能都將是由一系列AI芯片來承載,芯片將是人工智能大規模產業化過程中必將突破的一個瓶頸,比如AlphaGo1.0的系統曾經用了1920顆CPU和280顆GPU,訓練一盤比賽的電費都要1000美元,這說明傳統的芯片不匹配人工智能的復雜計算,我們需要面向神經網絡的高性能、低功耗的芯片,去承載這樣的復雜算法,能夠將其植入到各類的終端中。這些芯片源于算法的定義,而這些算法是源于高質量的、可標注的一系列訓練的數據,而數據又是源于場景,所以最終必將是場景定義芯片,人工智能的芯片必然是一系列的專用的、面向各類應用場景的芯片,將會嵌入到各類的終端設備中。不同場景所需的芯片對成本、功耗、安全以及性能的需求不盡相同。
未來的安防將是,通過芯片將前端的傳感器、本地結構化信息,通過云端大數據的分析,讓感知、數據分析、人機互動可以無處不在。最終通過前端的一系列人工智能芯片承載的這些深度學習,和未來的人工智能的算法模型,通過后臺海量大數據的分析,實現端到云的架構。這使得人工智能像電能一樣無處不在,而人工智能的這些芯片將如同墻上的插座。