趙春昊
(上海依圖網絡科技有限公司, 上海 200051)
近年來,人工智能(AI)已經成為信息技術中最熱門的領域之一。隨著算法精度要求的不斷提升,對于智能計算性能的要求也越來越高。AI芯片作為新型基礎設施的核心,逐漸成為了該領域的研究熱點。AI芯片是指具備適配人工智能算法的運算架構,能夠完成人工智能應用運算處理的集成電路元件。由于AI應用的底層算子具有通用性,AI芯片可以利用基礎計算單元針對性地提供高性能算力。
AI芯片不僅僅在云端超算和數據中心里使用,而且逐漸向邊緣側和終端場景發展。例如,英偉達Xavier NX芯片作為自動駕駛車載芯片的領跑者,可以完成目標檢測、路徑規劃等AI任務的實時計算,這類AI芯片已經成為了邊緣側計算的關鍵部件。而許多小型終端設備也嵌入了AI芯片。新出現的邊緣側和端側計算設備中的AI芯片呈現出與云端AI芯片完全不同的性能。如何從技術角度對AI芯片進行分類的依據成為需要填補的研究空白。
2018年,張蔚敏等從產業的角度分析了AI芯片的市場需求、機遇與挑戰,并且按照兩個維度(技術架構、市場需求)對于AI芯片進行分類[1];清華大學微電子學研究所尹首一等側重于計算的角度,分析了現階段AI加速芯片的技術特點,展望了類腦仿生芯片、通用AI芯片等未來趨勢[2];叢瑛瑛等分析了AI芯片目前的發展態勢,提出了對策和建議[3];美國麻省理工大學的Albert Reuther等從性能與功耗角度分析了市面主流的AI芯片性能,并且使用性能與功耗對其分類[4]。本文從更細致的角度針對不同應用場景和技術領域內的AI芯片性能進行深入的研究,制定一種有效的AI芯片分類方法。
AI芯片的技術特點,取決于其應用環境的計算需求。隨著AI芯片的應用場景不斷擴大,其越來越呈現出多樣性發展的技術特點。各類應用場景對于AI芯片的需求是不同的,因此影響了芯片廠商的設計思路,并最終反映為AI芯片在性能參數上的差異。如何針對各類業務場景對AI芯片的特點進行歸納總結并分類,在不同分類下功能與性能參數的標準如何界定,這些問題成為AI芯片研究領域內亟需解答的問題。
本文討論的AI芯片包括GPU(圖形處理單元),NPU(神經處理單元)類腦芯片和SoC(片上系統)以及FPGA(可編程門陣列),這些芯片的定義都可以在前人的工作中找到。需要注意的是,雖然CPU(中央處理單元)可以執行傳統機器學習算法,但由于其算力較小且不適合處理大規模數據集,故嚴格意義上并不屬于AI芯片范疇。
AI芯片的應用場景可以分為“云側”、“邊緣側”與“端側”。云側場景是指大規模集中式和并發處理計算任務的場景;邊緣側場景是指利用網絡的邊緣節點來匯聚、處理、分析多個終端設備數據的場景;而端側場景則是設備直接與用戶、環境交互,主要進行數據獲取及本地處理功能的場景。
AI芯片需要根據不同應用場景的需求,結合芯片技術特點進行設計。同時,由于計算任務的不同,對算力的要求也不盡相同。不同的AI技術領域所產生的數據類型和數據量大小差異巨大。前人的工作主要是對AI芯片的技術形態進行了界定與簡單分析。但由于不同應用場景下,AI芯片的形態差別巨大,因此本文在此基礎上,從不同的應用場景,即云側、邊緣側、端側入手,從AI芯片的技術形態、計算任務、技術領域等角度開展研究,并試圖進行芯片的技術參數分類,制定一個簡單有效的分類判斷依據和標準。
在不同應用場景下,有不同類型的典型設備,其加載的AI芯片技術形態也不同。云側對應的是大型集中式計算集群;邊緣側有自動駕駛系統、機器人、邊緣網關等;而端側設備則包括智能移動終端、可穿戴設備、傳感器等。通過對各種芯片應用場景的梳理發現,端側AI設備基本都以SoC形態出現;邊緣側主要以小規模的SoC獨立運行,或者以裝配加速卡的服務器形態出現,而云側主要是以帶加速卡的服務器組成大規模集群,或者大規模SoC集群形態出現。
不同應用場景下AI芯片的技術形態見表1。

表1 不同應用場景下AI芯片的技術形態
人工智能的計算任務可以分為訓練與推理。有一些AI芯片在設計之初就定為專門負責訓練任務或推理任務,這些芯片一般被稱為訓練芯片或推理芯片(對于加速卡而言,又被稱為訓練卡或加速卡)。
訓練芯片和推理芯片呈現出完全不同的技術參數特點。對于訓練芯片而言,由于訓練過程需要大量的算力,需要處理的數據量也較大,因此所有的訓練芯片都在云側。而這些訓練芯片大都可以在不同的技術領域通用。推理任務需要利用訓練后的模型,針對應用場景下的輸入,實時給出計算結果。隨著AI計算應用場景的拓展,推理芯片適用場景也不斷拓寬,在云側、邊緣側和端側都有使用。各應用場景下,不同計算任務的AI芯片典型實例見表2。

表2 各類計算任務在不同應用場景下的典型AI芯片
AI芯片可以劃分為通用AI芯片和專用AI芯片。通用AI芯片是指可以支持多個細分領域的AI芯片;而專用AI芯片指的是只為某個特定細分行業服務的AI芯片。
在專用AI芯片中,根據AI芯片計算任務所屬的技術領域,總結了“視覺分析”、“自動駕駛”、“智能語音”、“路徑規劃”、“金融風控”、“輔助診斷”這六個人工智能目前最重要的落地領域[5],收集了其典型設備參數,并對核心需求進行了總結,見表3。

表3 各類技術領域在不同應用場景下的典型設備、核心需求、技術關鍵總結
可以發現:視覺分析、自動駕駛、金融風控這三大領域對AI芯片算力、延時、安全性等要求最高,也恰恰是專用AI芯片出現最多的領域,進一步證明了AI芯片的設計是為了滿足技術領域下的各應用場景服務的。
AI芯片的參數與其應用需求密切相關,從每個應用場景下的芯片需求出發,考慮各場景下AI芯片的核心參數,并以此建立分類標準。收集國內外主流芯片參數來驗證這一分類標準的可行性。
(1)云側芯片。云側設備往往不需要滿足實時性,又支持大規模擴展。因此,云側設備對于功耗沒有限制,同時會在較大程度上追求有效的算力。云側AI芯片的功耗大多都超過100 W,而AI芯片的能效比大多在1 TOPS/W以上,因此芯片的算力基本都大于100 TOPS。另外,目前大多數云側AI加速卡都是用PCIe3.0連接,而其功耗限制為300 W,大多數AI芯片功耗都沒有超過這個限制。
(2)邊緣側芯片。由于要實時完成本地數據匯聚和計算,因此邊緣側設備的AI芯片的參數需求是圍繞其本地業務需求設計的,各技術領域內的參數差異巨大。例如,對于視覺分析,一個邊緣視頻盒子一般需要接入4-20路的視頻,因此其芯片需要20-100 MB/s的帶寬來支撐視頻流的輸入,而其算力則需要根據其計算的特定任務,如:人臉檢測、特征提取、匹配等來決定,目前大約在1-1.5 TOPS/路,因此邊緣盒子的算力需求在5-30 TOPS左右,而對應的功耗大約在5-50 W。自動駕駛領域,技術參數性能要求更高,由于自動駕駛需要同時接收和處理多個傳感器的數據,因此芯片帶寬大約需要10 GB/s左右。而根據英偉達預測,其L2層級(部分自動化駕駛)的算力和功耗需求大約分別為200 TOPS和80 W[6]。而相對而言,自然語言處理、語音分析等領域內的算力要求不高。
(3)端側芯片。由于端側設備體積小,且常常需要在無線狀態下使用電池供電,因此功耗成為重要的參數要求。例如:手機,由于其芯片散熱面積有限,導致其功耗受限。市面上幾乎所有的手機芯片的散熱設計功耗都在5瓦以下。隨著5G等技術的發展,更多的計算要求可以被加載到更大型的邊緣側計算設備上,故普通場景下的端側推理需求對算力的要求不高。例如,被譽為有“智能手機有史以來最好的機器學習性能”的蘋果A12芯片,其算力也僅僅在5 TOPS。
不同應用場景的技術參數需求估計,見表4。

表4 不同應用場景的技術參數需求估計
進一步收集市面上主流的芯片,選取了其中有代表性的芯片來驗證上述分類標準。按照不同芯片的應用場景劃分類,按照參數峰值功耗和算力這兩個維度進行統計,結果如圖1所示。

圖1 國內外不同應用場景典型芯片的參數統計
根據圖1中信息顯示,可以總結出典型AI芯片在不同應用場景下的分類標準:
(1)端側AI芯片:算力<5 TOPS,功耗<5 W。
(2)邊緣側AI芯片:算力5-100 TOPS,功耗5-100 W。
(3)云側AI芯片:算力>100 TOPS,功耗100 W-300 W。
結果與需求角度分析的結果得到了相互印證。
本文研究了AI芯片在技術參數上的特點與其在各個應用場景下分類依據。首先從“技術形態”,“計算任務”,“技術領域”三個維度進行分類,總結了每種類別下芯片的典型產品,核心能力與芯片需求。從需求角度分析了不同應用場景AI芯片所需要的性能參數,得出了云側、邊緣側和端側芯片的分類標準。研究發現可以從功耗和算力這兩個角度聯合分析出不同應用場景下的芯片共同點。云側芯片的功耗大約是100 W-300 W,端側芯片的功耗大多在5 W以下,而邊緣側芯片則介于兩者之間;而從算力角度來看,劃分的界線大致為5 TOPS(端側-邊緣側)和100 TOPS(邊緣側-云側)。進一步收集了市面主流芯片的參數,發現目前不同場景的芯片參數符合本文提出的分類標準,驗證了本文所提出的分類標準的有效性。