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