什么是RUHMI?
伴随着瑞萨新推出了集成了Ethos-U55 NPU和Arm Cortex-M85 CPU内核的全新高性能RA8P1微控制器,瑞萨提供了一套用于将常用AI模型部署到高性能计算平台的工具,以充分利用目标平台的硬件AI计算加速单元完成AI计算任务,这就是RUHMI。
RUHMI的全称是“Robust Unified Heterogenous Model Integration”,意为“健壮的、通用的、可适配异构芯片平台的模型转换器”。如图1所示。
使用RUHMI工具集,可将常用机器学习开发平台,例如TensorFlow、PyTorch开发的以及ONNX格式保存的模型转换成可直接部署在瑞萨处理器平台(例如RA8P1)上的C源码(由CPU执行)和二进制可执行程序(由NPU执行)。
特别对于集成了Ethos-U55这样的专用NPU的硬件平台,使用RUHMI工具集完成部署的机器学习模型执行效率,要远高于使用通用工具实现同样的功能。
熟悉瑞萨AI产品家族的开发者可能会想到为支持瑞萨自主研发DRP-AI硬件加速引擎而开发的DRP-AI TVM工具,可以将一些视觉AI模型部署到RZ/V芯片平台上(Arm Cortex-A55+DRP-AI),实际上,RUHMI的设计就借鉴了DRP-AI TVM的关键技术。
RUHMI面向不同阶段的开发者提供了命令行和图形化界面两种使用方式,用以为用户提供更好的AI编译器/转换器开发体验。并且随着RUHMI后续支持更多瑞萨的芯片产品,将会整合MCU和MPU的AI开发工具链,将硬件的差异性同模型开发分离出来,让AI应用开发者更专注于模型的设计和开发,而硬件层面上始终可以受益于最优化的执行效率。
RUHMI的技术细节
RUHMI是一个工具集,内部包含一系列可以单独完成任务的工具。例如,RUHMI使用模型解析器(Model Importer/Parser)将多种开源的模型结构文件转换成中间层代码(Intermediate Representation),然后通过模型优化器(Model Optimizer)对模型进行优化,包括量化(将FT32量化成INT8)、微调和剪枝,然后将能够被硬件加速单元(NPU)处理的计算过程和需要软件处理(CPU)的计算过程分割开来,分别生成适用于专用硬件单元和CPU的源码或可执行二进制文件。
开始使用RUHMI开发
使用RUHMI的开发流是非常简单的。对于开发者,先通过瑞萨的RUHMI产品主页访问到RUHMI在GitHub上的项目主页,然后下载对应的工具软件包并安装到本地主机,运行工具转换,然后将转换后的代码/二进制文件集成到嵌入式工程的源码工程中,编译下载,即可完成部署。如图3所示。
其中,RUHMI在GitHub上的项目主页如图4-5所示。
RUHMI在GitHub站点的项目主页
RUHMI在GitHub上的项目主页
github.com/renesas/ruhmi-framework-mcu
使用RUHMI对模型进行转换,有两种方式,命令行和图形用户界面。图形界面适合对模型转换器进行简单试用,对于资深开发者建议使用命令行方式,以使用更多功能的API,并方便集成至自动化工作流中。另外,命令行开发方式还可适用于Linux系统平台。如图6所示。
RUHMI的图形用户界面工具是集成至瑞萨的e2Studio集成开发环境中,生成的源文件和二进制文件最终在e2Studio环境中编译生成部署在目标芯片的固件文件,可以下载至芯片中运行。
样例和性能
实际上,首次发布的RUHMI工具包中已经包含了两个用例,基于瑞萨官方的EK-RA8P1电路板,分别实现了人脸识别和图像分类两个模型在RA8P1芯片上的部署。设计程序的系统框图,如图7所示。
通过分别运行这两个用例,启用NPU(Ethos-U55)的情况下,相对于不使用NPU的,执行推理提速将近20倍。如图8所示。
样例和性能
目前,RUHMI在GitHub站点上的产品主页已经对公众开放,提供充分的文档、软件工具以及样例工程,开发者可以前往下载,安装并试用。
瑞萨电子将面向中国的开发者组织线上和线下的培训和技术交流。
需要技术支持?
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
全部评论