MegCC 新版本來啦!新增 Benchmark 等工具,性能大幅提升!有獎?wù)魑幕顒油絾?/h1>
最新版 MegCC 新鮮出爐,新工具,新體驗(yàn),本次版本針對用戶使用體驗(yàn)以及模型推理性能進(jìn)行全面提升,主要的提升包括:
新增 Benchmark 工具, 用于用于快速 Benchmark 常用模型的推理性能并可視化;
新增 Kernel C 代碼導(dǎo)出工具,方便用戶定制化獲取算子 Kernel, 方便遷移與復(fù)用;
優(yōu)化 NN Kernel 性能, 保持推理 SDK 性能先進(jìn);
支持第三方 NPU loader,方便 NPU 相關(guān)應(yīng)用遷移。
下面展開介紹下最新版 MegCC 的新功能以及新特點(diǎn):
一、MegCC Benchmark
新版 MegCC 支持了基礎(chǔ)的 Benchmark 模塊用于測試各類模型的推理性能,獲取推理時(shí)各個 Kernel 的性能數(shù)據(jù),分析模型性能瓶頸。
目前 Benchmark 支持的模型有:effecientnetb0、resnet18、resnet50、vgg11、vgg16、shufflenetv2、mobilenetv2,模型主要的格式為 ONNX 格式,通過 MgeConvert 轉(zhuǎn)換為 MegEngine 的格式作為 MegCC 對 ONNX 格式的間接支持,有關(guān) MgeCovnert 的更多內(nèi)容請參考:https://github.com/MegEngine/mgeconvert;
新增的 Benchmark 可以支持模型中各個 Kernel 的性能數(shù)據(jù)的獲取,Bechmark 新增了Kernel 性能可視化的功能,用于模型性能瓶頸分析;

3. Benchmark 支持了模型推理數(shù)據(jù)可視化的功能,用于縱覽不同設(shè)備上的模型推理性能。

二、MegCC Kernel 導(dǎo)出工具 - Kernel_exporter
MegCC 新增了 Kernel C 代碼導(dǎo)出的工具 Kernel_exporter,用戶可以通過設(shè)置所需 Kenrel 的屬性,導(dǎo)出所需 Kernel 的 C 代碼,便于進(jìn)一步的移植與復(fù)用。
Kernel 導(dǎo)出工具目前有兩種用法,一種是使用默認(rèn)參數(shù)導(dǎo)出 Kernel,一種是用戶交互式給定部分關(guān)鍵參數(shù)導(dǎo)出定制化的 Kernel。
默認(rèn)參數(shù)用法:
交互式用法:
arch_type 和 kernel_type 的具體參數(shù),可以通過 --help 查看, 目前支持的 Kernel 包括:
2. 導(dǎo)出的 Kernel C 代碼會在工具使用的當(dāng)前目錄下面。
三、性能優(yōu)化
a. 在初版的基礎(chǔ)上,MegCC 對現(xiàn)有的 Kernel 進(jìn)行了一系列優(yōu)化,主要包括:
支持編譯時(shí)多個 elemwise fuse 的功能,fuse 后的 elemwise 性能更優(yōu);
支持 General Instrinsic MAX、MIN 的 Kernel 實(shí)現(xiàn),有效提升有大量 MAX MIN 算子模型的推理性能;
使用匯編優(yōu)化 arm64 的 sigmoid,降低 sigmoid 對模型推理性能的束縛;
新增 conv3x3 winograd 優(yōu)化,大大提升了推理時(shí) 3x3 卷積的計(jì)算性能;
新增了部分 Kernel 啟發(fā)式選擇算子的功能,用于保證有多個Kernel 可用時(shí),選擇到合適的 Kernel。
b. 優(yōu)化后的模型性能:

MegCC?新版本主要對推理基礎(chǔ)功能進(jìn)行完善優(yōu)化,提供?Benchmark(https://github.com/MegEngine/MegCC/blob/main/benchmark/README.md), Kernel_exporter 等周邊工具,方便用戶獲取推理性能以及推理模型中的 Kenrel 代碼,持續(xù)優(yōu)化 Kernel 性能,感興趣的小伙伴趕快來試用啦!
Github : https://github.com/MegEngine/MegCC

附:
更多 MegEngine 信息獲取,您可以查看:
文檔:https://www.megengine.org.cn/doc/stable/zh/?
GitHub 項(xiàng)目:https://github.com/MegEngine,或加入 MegEngine 用戶交流 QQ 群:1029741705
歡迎參與 MegEngine 社區(qū)貢獻(xiàn),成為?Awesome MegEngineer:https://www.megengine.org.cn/blog/megengineer,榮譽(yù)證書、定制禮品享不停。