編者注:歡迎來到 AspenCore 的嵌入式人工智能 (AI) 特別項目。本文連同最后一頁列出的文章,從多個角度深入探討了在嵌入式系統中注入本地化 AI 的業務和技術。
作者:Gina Roos,電子產品總編
開發人員和系統設計人員可以通過多種方式為他們的嵌入式設計添加某種形式的神經網絡或深度學習功能。早期——甚至在今天——設計師已經成功地使用了圖形處理單元 (GPU) 和現場可編程門陣列 (FGPA),這兩者都很好地滿足了深度學習的內存密集型需求。甚至傳統的 x86 CPU 也已進入 AI 應用程序。
許多開發人員發現這些現有技術并不總是最合適的。因此,在過去幾年中,?許多初創公司(以及成熟的芯片制造商)都專注于構建專門用于 AI 應用的芯片。這些芯片從頭開始構建,以滿足人工智能算法和運行應用程序的計算能力需求。
需要注意的是,用于 SoC 的 IP 模塊是提供神經網絡功能的另一種選擇,但那是另一回事了。該領域的供應商包括Cadence、Ceva、NXP、Synopsys和VeriSilicon。
但與所有技術一樣,每種解決方案都有優勢和權衡??傮w而言,設計人員需要根據其特定的最終應用選擇最佳技術。人工智能芯片通常分為三個關鍵應用領域——云端訓練、云端推理和邊緣推理。
訓練中的大炮是Nvidia 的 GPU,它已成為訓練機器學習算法的熱門選擇。這個過程分析數以萬億計的數據樣本。這里的一大優勢是 GPU 的并行計算架構。
云上的推理解決了許多人工智能應用程序的機器學習模型,這些應用程序的計算過于密集,無法部署在邊緣設備上??梢蕴峁┑脱舆t和處理計算密集型任務的 FPGA 等處理器在這些應用中具有優勢。由于并非所有 AI 功能的計算任務都可以在云上完成,因此現有和初創公司的芯片制造商正在開發自己的 AI 芯片并將 AI 功能添加到他們的處理器中。
那么,設計師在涉足人工智能領域之前首先需要回答的問題是什么?我與BabbleLabs Inc的首席執行官、硅谷企業家和技術專家 Chris Rowen 進行了交談。 和Cognite Ventures,以獲得一些答案。
問題 1:了解您的最終應用要求
在開始任何設計時,第一個問題始終是您的最終應用程序要求是什么。緊隨其后的是“我有一個特定的任務嗎?” 有時這很清楚,Rowen 說?!叭绻沂且幻麡嫿ò踩珨z像頭的系統設計師,我會非常關心芯片在視頻流的橫截面運行方面的表現——對象檢測、對象識別、對象跟蹤等——少數幾個與該最終應用程序特別相關的任務?!?/p>
下一個問題是應用程序是在云中運行還是在邊緣設備中運行。這將推動設計人員在他們應該考慮的芯片方面走向不同的方向。
“最終應用顯然很重要,”Rowen 說?!叭绻谠浦?,問題將是,'它是用于訓練神經網絡還是僅用于推理?' ——運行一個先前訓練過的網絡。如果它在邊緣,您想要運行的特定應用程序集是什么?”
Rowen 表示,大多數新芯片都是為邊緣視覺應用而制造的,這些芯片主要用于推理應用,用于一種或另一種成像或視頻分析。一個越來越重要的子類別是音頻,尤其是語音處理。
所以它首先歸結為云與邊緣。那么在云中,是訓練還是推理?在邊緣,它是通用的(應用程序未知)還是視覺或其他一些特殊的應用程序,如語音處理?
問題二:軟件支持
軟件工具也有助于區分不同的芯片。“如果它是一個訓練芯片,它是否支持各種訓練環境——TensorFlow、PyTorch等——因為應用程序和軟件開發團隊使用了許多重要的訓練環境,”Rowen 說。他說,Nvidia 是當今訓練芯片的黃金標準和主要供應商。
“在推理方面,這是一個問題,即你能在多大程度上采用預先訓練的模型并將其映射到芯片的特定特性。當有像神經網絡交換格式這樣的標準時,這是一個更容易的問題?!?NNEF 是由Khronos Group推動的標準,旨在使映射工具的標準化變得更加容易。
“通常,與將應用程序映射到某些新處理引擎所涉及的所有其他軟件相比,這些神經網絡的復雜性并不高,”Rowen 解釋說?!凹词构ぞ卟⒉煌昝溃藗兺ǔR部梢哉业揭环N方法,使用不太復雜的工具將現有神經網絡映射到視覺芯片或音頻芯片或任何邊緣處理芯片上?!?/p>
在軟件扮演的核心角色不那么重要的情況下——即使它確實扮演了關鍵角色——設計人員應該在硬件層面考慮價格、性能和能效,這會帶來下一組問題。
問題 3:內存要求
任何芯片選擇的長期問題都圍繞著成本和性能。而對于神經網絡,什么是片上內存,芯片提供多少內存帶寬?
“其中一些神經網絡問題非常耗費內存,”Rowen 說。“當然,通常在云中進行的訓練過程非常占用內存,需要大量的片上內存和非常高的內存帶寬?!?/p>
他補充說,推理過程通常占用更少的內存,并且可能不需要大量的片外帶寬,具體取決于目標應用程序。
所以這是挑戰。區分為通用用途和特定應用而構建的芯片的一件事是,芯片設計人員是否已將大量資源分配給片上存儲器和片外存儲器帶寬。但是,如果設計人員不知道他們需要運行哪些應用程序,他們可能需要在內存帶寬方面過度配置,這會使其成本更高。
“過度配置會增加成本,這就是為什么通用芯片幾乎總是比專用芯片貴——因為他們必須購買更大的保險單,”羅文說。權衡可以包括成本、功率和物理足跡。
Rowen 表示,如果設計人員能夠稍微縮小要求,以使成本更低、功耗更低的芯片適合應用,那么系統級性能就會有很大提升。“通用和專用[芯片]之間的差異可能是一個數量級?!?/p>
問題 4:性能——延遲與吞吐量
性能的最終定義是芯片在神經網絡應用程序中的運行速度。這里的兩個相關指標是吞吐量和延遲——系統是針對增加吞吐量進行優化還是針對減少延遲進行優化。
Rowen 說,在云中,重點通常是吞吐量,而延遲在實時邊緣系統中往往非常重要。例如,如果您正在為自動駕駛應用程序構建芯片,則延遲更為重要,并且是一個關鍵的安全問題,他補充道。
“幸運的是,對于這些神經網絡應用中的許多應用來說,所提供的性能和芯片的倍增率之間存在很強的相關性,”Rowen 解釋說?!坝嬎阗Y源的充分利用程度存在一些差異,但在最簡單的層面上,只需詢問‘在給定分辨率下每秒有多少乘法累加’或‘每瓦特有多少乘法累加’芯片確實是一個很好的關于芯片能力的粗略指南?!?/p>
今天,總的來說,GPU 是云中神經網絡訓練的主導力量,而普通 x86 處理器是云中最常見的推理平臺,因為它們可以靈活地運行包含深度學習元素和Rowen 說,單個處理器上的傳統軟件元素。
在大多數情況下,邊緣沒有太多的訓練。他補充說,它通常專注于推理,通常用于視頻或音頻等特定用例。
Rowen 向 Electronic Products 提供了一些芯片(來自初創公司和現有平臺)的應用定位的粗略評估?!坝幸环N趨勢是,面向云的芯片更加通用,而面向邊緣的芯片更加專業化?!?/p>
在 x 軸上:0 表示最適合邊緣設備(汽車、電話、物聯網);5 表示最適合云。在 y 軸上:0 表示專門針對神經網絡,尤其是神經網絡推理;5 表示通用、跨越神經網絡推理、訓練和其他非神經網絡(但計算密集型)應用程序。圖片來源:Cognite Ventures LLC。
以下是一些人工智能增強芯片和平臺的快照,它們暗示了當今市場上跨移動和企業應用程序的各種神經網絡解決方案:
Gyrfalcon 的 Lightspeeur AI 芯片:初創公司 Gyrfalcon Technology Inc. 吹捧一種超低功耗和高性能的 AI 芯片。Lightspeeur 2801S智能矩陣處理器基于以內存為AI處理單元的APiM架構?!斑@消除了導致高功耗的巨大數據移動,實現了 9.3 TOPS [每秒萬億次操作]/瓦特的卓越能效,”該公司表示。“該架構具有真正的片上并行性、原位計算,并消除了內存瓶頸。它有大約 28,000 個并行計算核心,并且不需要外部存儲器來進行 AI 推理?!?/p>
該公司聲稱算術邏輯單元 (ALU) 的使用效率為 77%,運行卷積神經網絡 (CNN) 的效率更高。
提供交鑰匙參考設計,包括用于 USB 加密狗、多芯片板和系統開發套件的參考設計。目標應用包括移動邊緣計算、基于人工智能的物聯網、消費便攜式設備、智能監控視頻、AR/VR產品、人臉檢測/識別、自然語言處理、支持深度學習的設備、人工智能數據中心服務器和自動駕駛。
華為麒麟970:華為消費者業務集團首個移動AI計算平臺,具有專用神經處理單元(NPU),將云AI與原生AI處理相結合。麒麟970由八核 CPU 和新一代 12 核 GPU 組成。
華為表示:“與四核 Cortex-A73 CPU 集群相比,麒麟 970 的全新異構計算架構可提供高達 25 倍的性能和 50 倍的效率提升?!?翻譯:芯片組以更低的功耗更快地交付相同的人工智能計算任務?;鶞蕡D像識別測試表明,麒麟 970 每分鐘處理 2,000 張圖像。
除了在自己的手機中使用新的人工智能芯片組外,華為還將移動人工智能定位為一個開放平臺,為開發者和合作伙伴提供技術。
英特爾的 Nervana 神經網絡處理器 (NPP):去年年底推出的 Nervana NNP 號稱是業界首款用于神經網絡處理的芯片,歷時三年。專為深度學習而構建的英特爾 Nervana NNP 沒有標準的緩存層次結構,片上內存由軟件管理。英特爾表示:“更好的內存管理使芯片能夠對每個芯片上的大量計算實現高水平的利用?!?“這意味著為深度學習模型實現更快的訓練時間。”
除了新的內存架構之外,英特爾還開發了一種新的數字格式 Flexpoint,它顯著提高了芯片的并行度,同時降低了每次計算的功率。英特爾表示,由于單芯片上的神經網絡計算在很大程度上受到功率和內存帶寬的限制,因此 Flexpoint 為神經網絡工作負載提供了更高程度的吞吐量。英特爾新設計的目標是“實現高計算利用率并通過多芯片互連支持真正的模型并行性”。
英特爾的 Movidius VPU:英特爾正與微軟合作,將Microsoft Windows ML 與英特爾的 Movidius 視覺處理單元 (VPU)相結合,在邊緣實現人工智能推理。作為用于加速邊緣人工智能工作負載的專用芯片,英特爾Movidius?Myriad X?VPU 聲稱是業界首款配備專用神經計算引擎的片上系統,用于邊緣深度學習推理的硬件加速。英特爾表示:“這款第三代 VPU 專門設計用于以高速和低功耗運行深度神經網絡,以減輕特定 AI 任務的負擔。”
英特爾還繼續針對通用機器學習和推理工作負載優化其至強可擴展處理器和數據中心加速器。
MediaTek Inc. 的 NeuroPilot AI 平臺:NeuroPilot 平臺專為 AI 邊緣計算而設計,提供硬件和軟件的組合、一個 AI 處理單元和 NeuroPilot 軟件開發套件 (SDK)。它支持包括Google TensorFlow、Caffe、Amazon MXNet和Sony NNabla在內的主流AI框架,并且在操作系統層面支持Android和Linux。
聯發科表示,該平臺“使 AI 更接近芯片組級別——適用于計算邊緣的設備——深度學習和智能決策需要更快地發生”,從而創建了一個邊緣到云的 AI 計算解決方案的混合體。
Nvidia 的 Tesla V100 GPU:與上一代相比,Nvidia 提升了其深度學習計算平臺的 10 倍性能。新的NVIDIA Tesla V100? 還包括 2 倍內存提升(32 GB 內存)以處理內存密集型深度學習和高性能計算工作負載,以及稱為 NVIDIA NVSwitch 的新 GPU 互連結構。該公司表示,這使得多達 16 個 Tesla V100 GPU 能夠以每秒 2.4 TB 的速度同時通信。Nvidia 還更新了軟件堆棧。Tesla V100 32GB GPU 可用于完整的NVIDIA DGX 系統產品組合。
恩智浦用于邊緣處理的機器學習 (ML) 環境:證明機器學習模型可以使用現有 CPU 在邊緣運行,恩智浦半導體 NV 推出了嵌入式 AI 環境,允許設計人員在恩智浦的產品組合中實施機器學習,從低至成本微控制器到 i.MX RT 處理器和高性能應用處理器。NXP 表示,ML 環境為選擇正確的執行引擎(Arm Cortex 內核、高性能 GPU/DSP)和在這些引擎上部署機器學習模型(包括神經網絡)的工具提供了統包支持。
此外,恩智浦表示,該環境包括免費軟件,允許客戶導入他們自己訓練的 TensorFlow 或 Caffe 模型,將它們轉換為優化的推理引擎,并將它們部署在恩智浦從低成本 MCU 到 i.MX 和 Layerscape 的處理解決方案上處理器。
NXP 人工智能技術負責人 Markus Levy 在一份聲明中表示:“在嵌入式應用程序中的機器學習方面,一切都是為了平衡成本和最終用戶體驗?!?“例如,許多人仍然對即使在我們具有成本效益的 MCU 中也能部署具有足夠性能的推理引擎感到驚訝。另一方面,我們的高性能交叉和應用處理器具有處理資源,可在我們客戶的許多應用中進行快速推理和訓練。隨著人工智能用例的擴展,我們將繼續使用具有機器學習專用加速功能的下一代處理器來推動這種增長。”
NXP 還提供EdgeScale 平臺,用于從云端部署到嵌入式設備(物聯網和邊緣)。該公司解釋說,EdgeScale 容器化了“云中的 AI/ML 學習和推理引擎,并自動將容器安全地部署到邊緣設備?!?NXP 還為 ML 工具、推理引擎、解決方案和設計服務創建了一個合作伙伴生態系統。
高通驍龍 845:據說高通技術公司的第三代人工智能移動平臺與上一代 SoC 相比,人工智能性能提升了 3 倍。
除了現有對 Google 的TensorFlow和 Facebook 的Caffe/Caffe2框架的支持外,Snapdragon 神經處理引擎 (NPE) SDK 現在還支持 Tensorflow Lite 和新的開放式神經網絡交換(ONNX),讓開發人員可以輕松使用他們的框架高通表示,選擇包括 Caffe2、CNTK 和 MxNet。它還支持 Google 的 Android NN API。目標應用包括智能手機、XR 耳機和始終連接的 PC。
在安全方面,驍龍 845現在提供了一個硬件隔離子系統,即安全處理單元 (SPU),它為高通的移動安全解決方案增加了“現有層的類似保險庫的特性”。
高通的 AI 引擎由多個硬件和軟件組件組成,在 Snapdragon 845 上具有設備端 AI 處理功能,將在 Snapdragon 845、835、820 和 660 移動平臺上得到支持。AI 引擎支持 Snapdragon 核心硬件架構——Qualcomm Hexagon 矢量處理器、Qualcomm Adreno GPU 和 Qualcomm Kryo CPU。軟件組件包括 Snapdragon 神經處理引擎、Android 神經網絡 API 和 Haxagon 神經網絡。
得益于異構計算,驍龍 845 的新架構帶來了顯著的改進。例如,高通表示,與上一代相比,新的攝像頭和視覺處理架構可將視頻捕捉、游戲和 XR 應用的功耗降低高達 30%,圖形性能和能效提升高達 30%。與上一代相比,新 Adreno 630 的結果。
三星的 Exynos 9 系列:今年早些時候,三星電子有限公司推出了其最新的高級應用處理器 (AP),即Exynos 9 系列 9810,用于 AI 應用和更豐富的多媒體內容。該移動處理器是三星的第三代定制 CPU (2.9 GHz),具有超高速千兆位 LTE 調制解調器和深度學習增強的圖像處理功能。
該處理器擁有一個全新的八核 CPU,其中四個是第三代定制核心,可以達到 2.9 GHz,另外四個針對效率進行了優化。三星表示:“通過拓寬管道和改進高速緩存的架構,單核性能提高了兩倍,多核性能比其前身提高了約 40%?!?/p>
該芯片還增加了新功能,通過基于神經網絡的深度學習增強用戶體驗,并通過單獨的安全處理單元增強安全性,以保護面部、虹膜和指紋信息等個人數據。Exynos 9 系列 9810 目前處于量產階段。
這些只是目前或即將上市的 AI 處理器選項中的一小部分。然而,通過詢問 Rowen 概述的四個問題,開發人員將能夠針對他們特定的嵌入式 AI 項目確定最佳候選人。
審核編輯 黃昊宇
評論
查看更多