ONNX牽手華為昇騰!開發(fā)者可在昇騰上跑原生模型:已支持ONNX算子16個(gè),全量支持ResNet和VGG模型
正式版v1.13.0預(yù)計(jì)年底發(fā)布
開發(fā)者們看過來,ONNX牽手華為昇騰,現(xiàn)在可以直接在昇騰上跑原生ONNX模型啦!
還記得今年9月,ONNX Runtime項(xiàng)目(ONNX社區(qū)流水線核心組件)正式提供對(duì)華為昇騰硬件平臺(tái)的支持,成為ONNX Runtime支持的首個(gè)面向端、邊、云全場(chǎng)景的國(guó)產(chǎn)推理訓(xùn)練AI硬件平臺(tái)后端。
正式版v1.13.0預(yù)計(jì)年底發(fā)布。
這意味著在此前昇騰主動(dòng)適配ONNX模型的同時(shí),從2023年開始,ONNX社區(qū)版本發(fā)布流程中,將開始逐步原生支持昇騰硬件平臺(tái),通過開源社區(qū)共建大幅降低用戶和廠商的成本,實(shí)現(xiàn)生態(tài)創(chuàng)新共贏。
ONNX社區(qū)簡(jiǎn)介
ONNX?(Open Neural Network Exchange),是由LF AI & Data Foundation[2]發(fā)起并維護(hù)的一種AI模型格式,用于在各種深度學(xué)習(xí)訓(xùn)練推理框架之間轉(zhuǎn)換的一個(gè)通用表示格式。
而ONNX Runtime是微軟發(fā)起的基于ONNX模型格式的推理運(yùn)行時(shí)框架,目前已是ONNX社區(qū)流水線的核心組件,以及ONNX運(yùn)行時(shí)的事實(shí)標(biāo)準(zhǔn)。
根據(jù)官方數(shù)據(jù),目前有超過25款A(yù)I框架支持ONNX模型格式,并且ONNX和ONNX Runtime的落地使用組織或企業(yè)分別超過50和25家。
△最新ONNX Runtime的生態(tài)全景圖
ONNX Runtime北向支持多種開發(fā)語言,包括Python,C,C++,C#,Java,js等;南向支持多種運(yùn)行后端(Execution Provider,包括但不局限于CPU、CUDA、CoreML),使用ONNX Runtime,用戶可以基于多種語言快速無縫在多種后端上直接運(yùn)行ONNX模型,且不再需要額外的開發(fā)適配工作。
昇騰CANN簡(jiǎn)介
ONNX Runtime項(xiàng)目支持華為昇騰硬件平臺(tái)的關(guān)鍵,是連接AI框架和昇騰硬件的橋梁—異構(gòu)計(jì)算架構(gòu)CANN。
CANN是專門面向AI場(chǎng)景的異構(gòu)計(jì)算架構(gòu),同時(shí)作為昇騰AI基礎(chǔ)軟硬件平臺(tái)的核心組成部分之一,搭起了從上層深度學(xué)習(xí)框架到底層AI硬件的橋梁,全面支持昇思MindSpore、飛槳(PaddlePaddle)、PyTorch、TensorFlow、Caffe、計(jì)圖(Jittor)等主流AI框架,提供900多種優(yōu)選模型,能夠覆蓋眾多典型場(chǎng)景應(yīng)用,兼容多種底層硬件設(shè)備,提供強(qiáng)大異構(gòu)計(jì)算能力。
昇騰CANN與ONNX的長(zhǎng)期合作
華為公司自2018年與微軟亞洲研究院共同發(fā)起了首屆ONNX China Workshop以來,積極參與ONNX社區(qū)建設(shè),是歷年ONNX Workshop中國(guó)地區(qū)會(huì)議的積極倡導(dǎo)者和組織者,在社區(qū)也曾發(fā)起Edge WG、提出Model Zoo CI建議、參加Steering Committee選舉等等。
昇騰CANN作為華為參與ONNX社區(qū)建設(shè)中重要的一環(huán),也一直積極參與ONNX社區(qū)的模型適配工作。目前已支持140+個(gè)onnx模型推理,年底發(fā)布的CANN6.0版本將支持200+個(gè)模型;支持opset 8~13,主力支持opset 11,算子支持率85+%,CANN6.0支持到90+%。
讓昇騰使能ONNX社區(qū)版本開發(fā)
昇騰CANN團(tuán)隊(duì)希望能夠?qū)㈤L(zhǎng)期以來的主動(dòng)適配工作,逐漸轉(zhuǎn)化為社區(qū)原生開發(fā)的一部分,能夠更高效的服務(wù)用戶,讓用戶第一時(shí)間就擁有昇騰AI軟硬件平臺(tái)支持的ONNX版本。而實(shí)現(xiàn)社區(qū)原生的一大關(guān)鍵就在于社區(qū)流水線中實(shí)現(xiàn)對(duì)昇騰的支持,而ONNX Runtime的支持則是重中之重。
使用最新的ONNX Runtime,用戶可以直接把原生ONNX模型跑在昇騰上。過程簡(jiǎn)單,易于使用。這也是在基于昇騰CANN atc工具的模型編譯執(zhí)行之外的又一條路徑。
△ONNX Runtime 支持后端
△CANN Execution Provider 架構(gòu)
昇騰作為國(guó)產(chǎn)芯片在海外開源社區(qū)的推入,其過程存在一定挑戰(zhàn)。起初社區(qū)對(duì)于昇騰芯片以及CANN了解不足,昇騰開源團(tuán)隊(duì)通過與社區(qū)積極溝通、主動(dòng)參與ONNX meetup、詳細(xì)講解昇騰芯片的特點(diǎn)等方式,讓社區(qū)詳細(xì)了解了昇騰芯片以及CANN的能力,增強(qiáng)了對(duì)昇騰持續(xù)投入的信心,從而順利合入代碼。
△ONNX Runtime CANN后端已支持算子列表
目前,ONNX Runtime CANN后端初步已支持ONNX算子16個(gè),全量支持ResNet和VGG模型。用戶可以在支持昇騰的環(huán)境中使用ONNXRuntime主干分支代碼,配合ONNX model zoo[3]中的ResNet和VGG模型進(jìn)行體驗(yàn)。如果用戶想嘗試其他的模型和算子,可以參考文檔[4]自行編寫代碼,或者等待新版本發(fā)布,屆時(shí)CANN后端會(huì)支持更多算子和模型。
未來,CANN將在多個(gè)方面進(jìn)行完善,包括:更多算子和模型的支持;算子融合、模型性能優(yōu)化;支持算子自定義等。隨著技術(shù)不斷發(fā)展,大數(shù)據(jù)和機(jī)器學(xué)習(xí)的關(guān)系也越來越密切,在未來,也會(huì)進(jìn)一步探索大數(shù)據(jù)+AI融合的場(chǎng)景,例如Spark+ONNX+Ascend這樣的大數(shù)據(jù)AI全棧流程,探索生產(chǎn)可用、易用的大數(shù)據(jù)AI解決方案。
ONNX Runtime CANN后端作為新功能難免有不足之處,歡迎大家在開源社區(qū)一起交流和完善。
相關(guān)鏈接:
[1]https://github.com/?microsoft/onnxruntime/pull/12416
[2]https://lfaidata.foundation
[3]https://github.com/onnx/models
[4]https://github.com/learningbackup/ai/blob/main/ascend/CANN%20Development%20Guideline.md
- 英偉達(dá)最新芯片B30A曝光2025-08-20
- AI應(yīng)用如何落地政企?首先不要卷通用大模型2025-08-12
- 本科必學(xué)Dijkstra算法被超越!清華段然團(tuán)隊(duì)打破圖靈獎(jiǎng)得主證明的普遍最優(yōu)性2025-08-09
- 智能體邁入L4 時(shí)代!納米AI多智能體蜂群,可創(chuàng)作最長(zhǎng)10分鐘AI視頻2025-08-06