在电影「食神」中,唐牛和史蒂芬周同时选了佛跳墙来争夺食神地位,结果唐牛抗议对方抄袭动作,结果裁判说:「比赛就是这样的!好像跑步游泳一样,还不是你做什麽他就做什麽!有什麽好抗议的?抗议无效!」。同样地,在AI晶片或神经加速处理器(Neural Network Processing Unit, NPU或Deep Learning Accelerator, DLA)领域中,大家也都说自家的晶片世界最棒,对手看不到车尾灯,难道没有一个较为公正衡量晶片运行(推论)效能,就像手机跑分软体一样,让大家比较信服的基准吗?
其实在AI晶片领域中所谓的「效能」,可能因关心的重点不同而会有不同定义和解读。分别可从硬体每秒可执行乘加的次数(又可细分FP32,FP16及INT8等)、对於特定模型在指定推论精度下每秒可执行次数或推论一次所需时间(包含有无模型优化处理)、特定模型推论功耗(推论一次耗费焦耳数)、每瓦特可执行乘加指令次数及其它特定规范时的表现,甚至有用每块美金获得算力来当成基准。所以常会遇到谁也不服谁,老王卖瓜自卖自夸的现象。
目前较被大家接受的就是ML Commons[1]所提出的MLPerf规范,其中包含训练及推论两大项,而推论部份又可细分为资料中心(Datacenter)、边缘(Edge)、行动(Mobile)及微型(Tiny,大多为MCU)。前不久(2023/6/27)才刚公布了Tiny v1.1测试结果报告[2],其中也包括了台湾新唐科技(Nuvoton)及台湾发展软体科技(Skymizer)提交的亮眼成果。接下来就帮大家解读一下这份报告,让大家能更了解未来单晶片运行AI的方向及可行性。
1.评测场景及项目
目前ML Commons在Tiny部份先前已经过三轮(v0.5, v0.7, v1.0)测试,此次公布的是v1.1结果[2]。测试时分为封闭(Closed)及开放(Open)型式,前者依官方规范测,而後者厂商可提出依自己规范测试更优的结果,不过不是每轮评测都会有开放型式。
目前主要评测项目如Fig.1 所示,共有四个项目,包含关键字侦测(Keyword Spoting, KS)、视觉唤醒字(Visual Wake Words, VW)、影像分类(Image Classification, IC)及异常侦测(Anomaly Detection, AD)。而每个项目都是采单串流资料(Single Stream)方式进行,即推论完一笔再取下一笔进行推论。依照不同项目,分别使用对应的资料集和模型,并在指定的推论品质下进行评量。
图1 : MLPerf v1.1 工作场景及效能评量项目。[2] |
|
2.叁与评测公司、硬体及软体
本次叁与评测的项目共有32项,以下依不同项目分别介绍。
● 叁与评测公司: 共有10家,Krai, Nuvoton(新唐科技), STMicroelectronics(简称STM), Skymizer(台湾发展软体科技), cTuning, fpgaconvnet, Plumerai, Syntiant, Robert Bosh GmbH, kai-jiang(个人)。
● 叁与评测开发板: 共有14种,规格下如下所示。
STM NUCLEO-H7A3ZI-Q, Arm Cortex-M7(DSP+FPU)
@280MHz
STM NUCLEO-L4R5ZI, Arm Cortex-M4(DSP+FPU) @120MHz
STM NUCLEO-U575ZI-Q, Arm Cortex-M33(DSP+FPU) @160MHz
STM NUCLEO-G0B1RE, Arm Cortex-M0+ @64MHz
STM DISCO-F746NG, Arm Cortex-M7(DSP+FPU) @216MHz
Nordic nRF5340 DK, Arm Cortex-M33(DSP+FPU) @128MHz
Nuvoton NUMAKER-M467HJ, Arm Cortex-M4F @200MHz
DIGILENT Cora Z7, Arm Cortex-A9 @667MHz
DIGILENT ZC706, Arm Cortex-A9 @650MHz
DIGILENT ZedBoard, Arm Cortex-A9 @650MHz
DIGILENT ZyBo, Arm Cortex-A9 @650MHz
Infineon CY8CPROTO-062-4343W, Arm Cortex-M4 (DSP + FPU) @150MHz
Syntiant NDP9120, HiFi3+M0 @30.7MHz/98.7MHz
ZCU106, RISC-V @20MHz
●主要CPU规格: 共有7大类。只有1项使用RISC-V,1项为MCU+NPU,其馀皆是Arm Based。Cortex-M为单晶片(MCU)等级,Cortex-A为微处理器(MPU)等级晶片,用於手机或单板微电脑。
Arm Cortex-M0+ (1项)
Arm Cortex-M33 (4项)
Arm Cortex-M4/M4F (13项)
Arm Cortex-M7 (7项)
Arm Cortex-A9 (4项)
Syntiant HiFi3+M0 (2项)
RISC-V (1项)
●主要软体及函式库: 共有9种。
Skymizer ONNC
MicroTVM
Plumerai Inference Engine
Syntiant TDK+SDK
Bosch Hardware-Aware Lowering Engine(HALE)
STM X-CUBE-AI
fpgaConvNet(Model+Optimiser)
Arm CMSIS-5
TVM
3.评测结果:
由於晶片等级落差颇大,单从推论时间(毫秒ms)及能耗(微焦耳uJ 比较可能会有点不公平,所以这里依CPU等级及工作频率来分会更清楚些。图2分别列出各等级中推论速度表现最好的。如果想了解更完整测试资料可叁考[2]。
图2 : MLPerf Tiny v1.1各等级CPU及不同应用表现最隹清单。[2] |
|
台湾这次也有两家厂商提交3个项目,其主要规格如下:
●台湾新唐科技(Nuvoton),
Nuvoton NUMAKER-M467HJ, ONNC, Arm Cortex-M4F @200MHz。
●台湾发展软体科技(Skymizer)
NUCLEO-L4R5ZI_zephyer, STM NUCLEO-L4R5ZI, ONNC, Arm Cortex-M4 @120MHz
NUCLEO-L4R5ZI_mbed-os, STM NUCLEO-L4R5ZI, ONNC, Arm Cortex-M4 @120MHz
这3项底层部份都是使用Skymizer的ONNC来进行推论优化,其中新唐在Cortex-M4等级评比中,在视觉唤醒词和关键词侦测部份获得最快推论速度,不过由於此次评比的Cortex-M4大多是120MHz,所以使用200MHz会略胜一畴。若把Skymizer的两项升速到200MHz时,则其表现会接近新唐的MCU,表示其ONNC的性能已达世界水准,值得台湾其它有生产Arm Cortex-M4 MCU的厂商叁考。
注:此次使用的ONNC为较新商用版本,而非Github上开源的版本[3]。
另外从此次提交的项目亦可看出Arm Cortex-M4已成为TinyML的主流,若推论仍不够快时,则可再提升到Cortex-M7。而新上市的Cortex-M33效能已高过Cortex-M4,略低於Cortex-M7,让使用者有多一点性价比的选择空间。
4. 深入了解测试规范
若想要更深入了解其测试规范的朋友可以叁考官方释出的论文[4],或官方Github提供的完整测试规范[5]。目前MLPerf在手机SoC晶片(Arm Cortex-A等级CPU)AI测试部份略嫌少了些,如果有兴趣了解的朋友可叁考[6]。
小结
在边缘智能(Edge AI)装置及智慧物联网(AIoT)应用中使用单晶片(MCU)来运行AI(TinyML)已是现在进行式,透过此次的评比结果,可让大家更了解各家晶片性能及模型优化工具的进展,未来随着MCU+NPU的普及,相信下一次的评比结果可能就有更大跃升,就让大家一起期待吧!
(本文由VMAKER授权转载;连结原文网址)
叁考文献
[1] ML Commons
https://mlcommons.org/
[2] ML Commons, Benchmarks - Inference: Tiny v1.1 Results
https://mlcommons.org/en/inference-tiny-11/
[3] Skymizer, Github - Open Neural Network Collection - ONNC/onnc
https://github.com/ONNC/onnc
[4] MLCommons, MLPerf Inference Benchmark
https://arxiv.org/abs/1911.02549
[5] MLCommons, MLPerf Tiny Inference Rules
https://github.com/mlcommons/tiny/blob/master/benchmark/MLPerfTiny_Rules.adoc
[6] 许哲豪,AI晶片如何评比效能
https://omnixri.blogspot.com/2019/03/ai.html
延伸阅读
[A] 陆向阳,【Benchmark】要如何衡量TinyML专案的执行效能?
https://makerpro.cc/2022/03/how-to-measure-the-performance-of-tinyml-projects/
[B] 陆向阳,TinyML效能基准测试:MLPerf Inference:Tiny 0.7版观察
https://makerpro.cc/2022/07/the-review-of-mlperf-inference-tiny-version-0-7-benchmark-for-tinyml-performance/
[C] 许哲豪,MCU携手NPU让tinyML迈向新里程碑
https://omnixri.blogspot.com/2022/10/mcunputinyml.html
[D] 许哲豪,有了TinyML加持MCU也能开始玩电脑视觉了
https://omnixri.blogspot.com/2022/12/tinymlmcu.html