作者:Arm 工程部應(yīng)用機(jī)器學(xué)習(xí)總監(jiān) Robert Elliott
Arm? 攜手 Meta 在 ExecuTorch[1] 中引入了對(duì) Arm 平臺(tái)的支持[2],ExecuTorch 是一個(gè)全新的端到端解決方案,為 PyTorch 實(shí)現(xiàn)設(shè)備上的人工智能 (AI)。
與多數(shù)企業(yè)一樣,Arm 極力支持高效、簡(jiǎn)潔的 AI 開發(fā)流程,并努力確保各種最新發(fā)布、性能卓越的 PyTorch 模型能在 Arm 的平臺(tái)上順利運(yùn)行。
雖然歷來(lái) PyTorch 都是許多研究團(tuán)隊(duì)搭建新神經(jīng)網(wǎng)絡(luò)的首選平臺(tái),但要將這些工作負(fù)載轉(zhuǎn)換為可在 Arm 平臺(tái)上高效運(yùn)行的負(fù)載,卻是一個(gè)高強(qiáng)度的手動(dòng)流程。受限于將網(wǎng)絡(luò)導(dǎo)出的工作流程,以及各種機(jī)器學(xué)習(xí) (ML) 運(yùn)算的長(zhǎng)尾碎片效應(yīng),導(dǎo)致了將其部署到系統(tǒng)資源相對(duì)有限的嵌入式系統(tǒng)的難度。
隨著 Meta 發(fā)布了以 PyTorch 2.0[3] 這一重大發(fā)展為基礎(chǔ)的 ExecuTorch 代碼庫(kù),使得先進(jìn)的神經(jīng)網(wǎng)絡(luò)能在更大范圍內(nèi)(從服務(wù)器領(lǐng)域的 Arm CPU,到移動(dòng)領(lǐng)域的 CPU 和 GPU,再到嵌入式應(yīng)用中的?Cortex?-M 微處理器和?Ethos?-U NPU),更易于捕捉和調(diào)試運(yùn)行。?
我們與 Meta 緊密合作,基于我們?cè)?TOSA(用于捕獲神經(jīng)網(wǎng)絡(luò))[4]和 Ethos NPU[5](用于加速移動(dòng)平臺(tái)和嵌入式平臺(tái)上的關(guān)鍵 ML 工作負(fù)載)方面的巨大投入,推動(dòng) ExecuTorch 初步展開對(duì)采用 Arm 架構(gòu)芯片的支持。?
近期,我們發(fā)布了 ExecuTorch 的 TOSA 編譯流程和運(yùn)行時(shí)代理[6],并為 Ethos-U55 提供了原型支持,使圖形能從 PyTorch python 環(huán)境直接導(dǎo)出到支持 Ethos-U 的平臺(tái),如 Arm Corstone?-300[7]。?
我們期待著這項(xiàng)工作的持續(xù)開展,以便在一系列的 ML 用例中實(shí)現(xiàn)高效的輸出路徑。?
這對(duì)開發(fā)者意味著什么?
對(duì)典型的 PyTorch 用戶來(lái)說(shuō),這意味著可以將少量但不斷增加的神經(jīng)網(wǎng)絡(luò)作為獨(dú)立模型捕獲,并在采用基于 Cortex-M 和 Ethos-U 的平臺(tái)上高效運(yùn)行。?
這由三個(gè)主要部分組成:
1)可將神經(jīng)網(wǎng)絡(luò)作為獨(dú)立文件捕獲的提前流程。下圖是簡(jiǎn)化的導(dǎo)出視圖。有關(guān)更多信息,詳見導(dǎo)出至 ExecuTorch 文檔[8]。?
2)設(shè)備上的 ExecuTorch 運(yùn)行時(shí)可將工作分派給 Cortex-M 和 Ethos-U。
3)ExecuTorch API 提供了部分代理圖形和全套 CPU 運(yùn)算符的功能,允許逐步將負(fù)載分流到 Ethos-U。這對(duì)于神經(jīng)網(wǎng)絡(luò)的開發(fā)及其向邊緣設(shè)備的過(guò)渡非常有利。
例如,TOSA/Ethos-U55 流程不需要一次性編譯整個(gè)圖形,可以逐步增加支持。這對(duì)于處理大型復(fù)雜圖形尤其有用。
這種靈活性對(duì) PyTorch 的用戶也有直接的好處。利用一致的 ExecuTorch API,用戶可以編譯和部署模型,而在底層,圖形的某些部分可以盡可能地指派給功能強(qiáng)大的 Ethos-U55 執(zhí)行,而圖形的其余部分仍然可以在 Arm CPU 上執(zhí)行。這樣可以快速迭代和覆蓋模型,提高性能,而無(wú)需修改用戶代碼,從而提升開發(fā)者的體驗(yàn)。
上述流程的簡(jiǎn)單示例
它可以簡(jiǎn)單到只需在 python 中的現(xiàn)有 PyTorch 模型中添加少量行,就能以 .pte 文件的形式捕獲模型的完整表示。
對(duì)新模型開發(fā)至關(guān)重要的是,這個(gè)流程的開發(fā)不僅適用于標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò),也適用于為處理其他工作負(fù)載而編寫的自定義 torch.nn.Module。
有關(guān)在?Corstone-300 或其他支持 Ethos 的平臺(tái)上部署此功能的詳細(xì)示例和文檔,可以參考此示例應(yīng)用[9],它可以嵌入導(dǎo)出的 .pte 文件,并在 Ethos-U55 NPU 上執(zhí)行。
量化
許多 Arm 平臺(tái)需要通過(guò)量化來(lái)實(shí)現(xiàn) Ethos 加速或新 CPU 指令的全部性能優(yōu)勢(shì),因此我們也會(huì)努力引入符合 TOSA 標(biāo)準(zhǔn)的量化和圖形消耗。借助 ExecuTorch EXIR 圖形基礎(chǔ)結(jié)構(gòu),我們能夠輕松地解析整個(gè)量化圖形,并讀取所需的量化信息,以便在 TOSA 量化降低[10]的過(guò)程中計(jì)算重新縮放參數(shù)。?
在 PyTorch FX 圖到 TOSA 的初始量化支持中,我們使用了新的 PyTorch 2 導(dǎo)出訓(xùn)練后量化 (PyTourch 2 Export Post-Training Quantization)[11] 來(lái)獲取 MobileNetV2 的量化示例,其中涵蓋了大多數(shù)常見運(yùn)算符,例如 Add、Linear、Convolution 和 ReLU。由于其 API 非常簡(jiǎn)單,只需三至四行代碼,就能使用從 XNNPACK 量化器子類化的 TOSA 量化流來(lái)實(shí)現(xiàn)量化步驟。為了支持更復(fù)雜的圖形,還可以構(gòu)建自定義量化器[12],以滿足大多數(shù)神經(jīng)網(wǎng)絡(luò)模型的需要。??
這些圖形自然會(huì)進(jìn)入 Ethos-U 編譯器[13],生成可在 Ethos-U 硬件上直接執(zhí)行的模型。?
MobileNetV2 的簡(jiǎn)單示例 (PyTorch->TOSA->Vela) 顯示了在符合 TOSA 標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)加速器硬件上運(yùn)行 PyTorch 量化模型的可行性和簡(jiǎn)易性。在接下來(lái)的工作中,Arm、Meta 和廣大的 PyTorch 社區(qū)將繼續(xù)為從 PyTorch 到 TOSA 的運(yùn)算符降低提供更多支持。與此同時(shí),Arm 會(huì)繼續(xù)開發(fā)支持 TOSA 的新流程,為添加新的編譯目標(biāo)提供可靠的方法。
下一步是什么?
Arm 期待與 Meta 密切合作,增加更多的神經(jīng)網(wǎng)絡(luò)和運(yùn)算符,擴(kuò)大對(duì) ExecuTorch 全套功能的支持。我們期待在未來(lái),可以通過(guò) PyTorch 和 ExecuTorch 輕松開發(fā)出機(jī)器學(xué)習(xí)模型,讓 TOSA 可以無(wú)縫部署到數(shù)十億臺(tái)基于 Arm 架構(gòu)的設(shè)備上。
歡迎查看我們提供的演示[14],了解使用 PyTorch 和 ExecuTorch 通過(guò) TOSA 將圖表導(dǎo)出到 Arm 平臺(tái)的可能性,并與我們分享您的想法。
(文章來(lái)源公眾號(hào):Arm社區(qū))
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
上海億道電子技術(shù)有限公司是國(guó)內(nèi)資深的研發(fā)工具軟件提供商,公司成立于2009年,面向中國(guó)廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過(guò)程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
十多年來(lái),先后與ARM、Altium、Ansys、QT、Green Hills、Minitab、EPLAN、QA Systems、OpenText、Visu-IT、HighTec、PLS、Ashling、MSC Software、Autodesk、Source Insight、IncrediBuild、Lauterbach、Adobe、Testplant、TeamEDA等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們?cè)谥袊?guó)區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國(guó)本土客戶,為客戶提供從芯片級(jí)開發(fā)工具、EDA設(shè)計(jì)工具、軟件編譯以及測(cè)試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式GUI工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡(jiǎn)單、更可靠、更高效的目標(biāo)。
歡迎關(guān)注“億道電子”公眾號(hào)
了解更多研發(fā)工具軟件知識(shí)