關(guān)于將人工智能用于越來越智能的車輛的文章已經(jīng)很多。但是,您如何將在服務(wù)器場上開發(fā)的神經(jīng)網(wǎng)絡(luò) (NN) 壓縮到量產(chǎn)汽車中資源受限的嵌入式硬件中呢?本文探討了我們應(yīng)該如何授權(quán)汽車生產(chǎn) AI 研發(fā)工程師在將 NN 從原型到生產(chǎn)的整個過程中改進(jìn) NN,而不是像今天過早地將 NN 移交給嵌入式軟件團(tuán)隊的過程。
“如果我們要充分利用嵌入式硬件資源,我們需要讓生產(chǎn) AI 團(tuán)隊在軟件移植過程中利用他們對 NN 的知識”(來源:Marton Feher,SVP 硬件工程,AImotive)
嵌入式人工智能:嵌入式軟件——但不是我們所知道的
對于任何注定要在批量生產(chǎn)中部署的嵌入式軟件,一旦完成并驗證了其核心功能的實現(xiàn),就會在代碼中投入大量精力。這個優(yōu)化階段是關(guān)于最小化所需的內(nèi)存、CPU 和其他資源,以便盡可能多地保留軟件功能,同時將執(zhí)行它所需的資源減少到絕對最低限度。
這種從基于實驗室的算法創(chuàng)建嵌入式軟件的過程使生產(chǎn)工程師能夠?qū)④浖δ艹杀竟こ袒癁榭闪慨a(chǎn)的形式,與用于開發(fā)它的海量計算數(shù)據(jù)中心相比,所需的芯片和硬件更便宜、功能更差。但是,它通常需要從一開始就凍結(jié)功能,只進(jìn)行代碼修改以改進(jìn)算法本身的執(zhí)行方式。對于大多數(shù)軟件來說,這很好:確實,它可以使用嚴(yán)格的驗證方法來確保嵌入過程保留所需的所有功能。
然而,當(dāng)嵌入基于 NN 的 AI 算法時,這可能是一個主要問題。為什么?因為從一開始就凍結(jié)功能,您正在刪除可以優(yōu)化執(zhí)行的主要方法之一。
問題是什么?
有兩種根本不同的方法可以解決將復(fù)雜的 NN 從實驗室中不受約束、資源豐富的 NN 訓(xùn)練環(huán)境移植到受嚴(yán)格約束的嵌入式硬件平臺的任務(wù):
優(yōu)化執(zhí)行NN的代碼
優(yōu)化神經(jīng)網(wǎng)絡(luò)本身
當(dāng)嵌入式軟件工程師發(fā)現(xiàn)性能問題,例如內(nèi)存帶寬瓶頸或底層嵌入式硬件平臺利用率低下時,傳統(tǒng)的嵌入式軟件技術(shù)會鼓勵您深入挖掘底層代碼并找出問題所在。
這反映在當(dāng)今可用于嵌入式MCU和DSP的許多先進(jìn)而復(fù)雜的工具中。它們使您能夠了解軟件中正在發(fā)生的事情的最低水平,并識別和改進(jìn)軟件本身的執(zhí)行——希望不會改變其功能。
對于神經(jīng)網(wǎng)絡(luò)來說,優(yōu)化與傳統(tǒng)的嵌入式軟件完全不同——至少如果你想用可用的硬件資源實現(xiàn)盡可能最佳的結(jié)果。對于神經(jīng)網(wǎng)絡(luò),通過改變拓?fù)渖窠?jīng)網(wǎng)絡(luò)本身(神經(jīng)網(wǎng)絡(luò)的各個層如何連接,以及每個層做什么)和使用更新的約束和輸入重新訓(xùn)練來實現(xiàn)改進(jìn)。這是因為功能不是由神經(jīng)網(wǎng)絡(luò)“軟件”定義的,而是在訓(xùn)練期間應(yīng)用的目標(biāo)和約束,以創(chuàng)建定義神經(jīng)網(wǎng)絡(luò)最終行為的權(quán)重。
因此,在執(zhí)行神經(jīng)網(wǎng)絡(luò)的嵌入過程時,需要凍結(jié)神經(jīng)網(wǎng)絡(luò)的目標(biāo)性能,而不是如何實現(xiàn)它。如果您從嵌入過程開始就約束神經(jīng)網(wǎng)絡(luò)拓?fù)洌敲茨褪窃趧h除生產(chǎn)工程師需要的提高性能的工具。
這意味著您需要新的不同工具來完成將NNs從實驗室移植到嵌入式平臺的任務(wù)。低級軟件工程師無法完成這項工作——你需要人工智能工程師根據(jù)工具提供的性能信息來調(diào)整神經(jīng)網(wǎng)絡(luò)及其訓(xùn)練。這是新的:當(dāng)研發(fā)工程師將經(jīng)過培訓(xùn)的神經(jīng)網(wǎng)絡(luò)交給生產(chǎn)工程師時,他們再也不能說“工作完成了”!
不同的方法
通過采用將 AI 研發(fā)工程師置于嵌入式軟件移植任務(wù)中心的開發(fā)工作流程,任何芯片都可以實現(xiàn)卓越的結(jié)果。使用以層為中心的分析,輔以從編譯改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò) (CNN) 到查看目標(biāo)神經(jīng)處理器單元 (NPU) 的準(zhǔn)確性能結(jié)果的幾分鐘內(nèi)快速周轉(zhuǎn),開發(fā)人員可以使用相同的底層硬件實現(xiàn) 100% 或更多的增益. 這是因為修改 CNN 本身,而不是只修改用于執(zhí)行相同 CNN 的代碼,為 AI 工程師提供了更大的靈活性來識別和實施性能改進(jìn)。
在開發(fā)我們的 aiWare NPU 時,AImotive 使用了我們自己的 AI 工程師將移植過程移植到具有廣泛 NPU 功能的多個不同芯片的經(jīng)驗。我們希望找到更好的方法來幫助我們自己的 AI 工程師完成這項任務(wù),因此在開發(fā)我們對 aiWare NPU 本身和支持它的 aiWare Studio 工具的要求時,我們確定了我們在過去的:
高度確定性的 NPU 架構(gòu),使時序非常可預(yù)測
準(zhǔn)確的基于層(不是基于時序或低級代碼)的性能估計,以便任何 AI 研發(fā)工程師都可以看到更改其訓(xùn)練標(biāo)準(zhǔn)(例如添加或更改使用的場景,或修改目標(biāo) KPI)的影響; / 或 NN 拓?fù)淇焖?/p>
準(zhǔn)確的離線性能估計,以便在第一個硬件可用之前執(zhí)行所有 NN 優(yōu)化(因為第一個原型總是稀缺的!)
點擊查看完整大小的圖片
圖 1:aiWare Studio 使用戶能夠優(yōu)化他們的 NN,而不是用于執(zhí)行它們的代碼。這為 AI 設(shè)計人員提供了更大的靈活性,可以更快地實現(xiàn)出色的結(jié)果。(來源:AImotive)
結(jié)果是一組工具使 AI 研發(fā)工程師能夠在實驗室環(huán)境中對目標(biāo)硬件進(jìn)行幾乎所有優(yōu)化,并在最終目標(biāo)硬件的 5% 范圍內(nèi)展示性能——這一切都在任何人看到硬件之前完成。
最終檢查
當(dāng)然,在芯片和硬件原型可用時測量最終硬件至關(guān)重要。這種開發(fā)環(huán)境中實時硬件分析功能的可用性使工程師能夠訪問由此類工具支持的 NPU 內(nèi)的一系列深度嵌入式硬件寄存器和計數(shù)器。雖然芯片開銷很小(因為許多 NPU 主要由內(nèi)存而非邏輯控制),但這些功能可以在執(zhí)行期間實現(xiàn)前所未有的、非侵入式的實時性能測量。然后可以將其用于直接與離線性能估計器結(jié)果進(jìn)行比較,以確認(rèn)準(zhǔn)確性。
點擊查看完整大小的圖片
圖 2:使用嵌入式寄存器和計數(shù)器,aiWare Studio 可以準(zhǔn)確測量最終芯片性能,與離線估計結(jié)果相比,通常在 1%-5% 以內(nèi)。(來源:AImotive 和 Nextchip Co. Ltd)
結(jié)論
這種新方法為汽車行業(yè)提供了一種新的、更好的方式來開發(fā)、優(yōu)化和在生產(chǎn)車輛中部署人工智能。使用協(xié)同 NPU 硬件和工具,人工智能工程師可以為汽車應(yīng)用設(shè)計、實施和優(yōu)化更好的 CNN。
審核編輯 黃昊宇
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19178瀏覽量
307694 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4780瀏覽量
101174 -
AI
+關(guān)注
關(guān)注
87文章
31530瀏覽量
270342
發(fā)布評論請先 登錄
相關(guān)推薦
評論