[G32R] 【G32R501 Micro-EVB测评】zidian指令加速器运算性能测试

[复制链接]
228|24
本帖最后由 淹死的鱼yang 于 2026-1-4 00:43 编辑

G32R501 Micro-EVB测评】zidian指令加速器运算性能测试
补充说明:此账号与TCSYANG均为本人,评测活动是在TCSYANG账号下参与的,由于账号暂时无法登录,无法在TCSYANG发表。

最近有幸参与G32R501 Micro-EVB开发板的测评活动,开发板主控芯片是极海微电子的G32R501,基于ARM Cortex M52内核的双核同构实时控制器,数据手册中说主频最大可以到250MHz,稳定运行到200MHz应该是没有问题的。这颗芯片还有一个亮眼的地方就是“紫癜”指令加速器了,做过电力电子开发的人都知道在控制环路和SVPWM发波算法中会多次使用到三角函数运算,纯数学三角函数运算是比较耗时的操作,普通单片机倒是可以采用Q格式定点数方式实现,不过精度差了些意思。本人后来使用过TI公司C2000系列的TMS320F28377D双核DSP,这颗芯片的主频同样是可以稳定达到200MHz,支持TMU三角函数加速单元。经过本人实际测试使用,对比普通的浮点数处理器FPU数**算,TMU的表现还是相当亮眼,截图如下:
图片1.png
可以看到相比普通的浮点数数**算,使用TMU硬件加速器的情况下,运算速度提升了将近3倍,TI官方说是5个时钟周期,限于本人的测试条件和测试方法,实际测试结果在10个时钟周期左右,表现还是很亮眼。不得不说,一旦吃上了硬件加速器这种细粮,还觉得定点数计算那种粗粮香的绝对是二百五。言归正传,开始对比测试一下我们的主角——G32R501zidian加速指令,看看国产芯片的算力如何。
拿到评测主办方寄来的开发板,从极海官网上下载了SDK,安装好最新版本的keil MDK5.43a,首先编译烧录一个点灯例程,程序能够正常烧录运行,证明我搭建的测试环境和开发板都是OK的。接下来,要达到我的最终目的,首先要基本搞明白官方SDK的代码结构,工程配置等,便于我在现有例程的基础上,编写三角函数指令运行时间的测试程序。研究了SDK的代码结构,和TMS320F28377D的底层代码结构基本一致,底层外设驱动代码提供了两种对芯片外设的操作代码,一种接近于寄存器操作,在SDKdevice_support/example目录下的外设例程,另一种封装程度较高,在SDKdrivelib/example目录下的外设例程,经过本人实际调试,需要注意两套代码不可以混合使用,否则会出现不可预知的效果,建议使用后者,代码结构清晰,便于开发,我后边的测试代码也是基于后者实现的。理解清楚SDK的组织结构,接下来就是打通UART外设,实现printf函数,便于通过串口调试助手打印我的测试结果,过程都是烂了大街的,此处不再赘述。
        接下来干正事,编写代码测试zidian指令时间,zidian扩展指令的使用可以直接参照SDK目录下的doc文档,官方已有详细说明,代码运行时间测量这里直接使用内核自带的系统时钟计数器DWT,在system_g32r501_dwtmeasure.h头文件中已经提供了相关操作函数,直接调用即可。我这里只测试了扩展指令__sin()__cos(),其他的方法类似,测试过程和结果如下图所示
图片2.png
图片3.png
从串口调试助手的打印接结果来看,sincos的计算时间是一致的,角度未归一化到[0, 2π的指令__sin__cos运行速度更快,时间为0.215us-0.135us=0.08us,能达到TITMS320F28377DTMU单元实测值的一半,还是比较亮眼的,以上是代码优化等级为-o0时的测试结果,如果采用-o3优化等级,测试结果如下:
11176959469d59233.png
角度未归一化到[0, 2π的指令__sin__cos运行速度能达到10ns,归一化时能达到25ns,相当于2~5个时钟周期,计算速度相当亮眼


Gfan 发表于 2026-1-16 09:19 | 显示全部楼层
没错,这次很多小伙伴都测试了加速,数据还是很亮眼的,在应用侧也能实现比较大的提升
逆鳞风暴 发表于 2026-1-16 10:32 | 显示全部楼层
感谢分享!G32R501的zidian指令加速器性能对比TI的TMS320F28377D
蚊子的噩梦 发表于 2026-1-26 14:05 | 显示全部楼层
楼主的测试很专业,从硬件到软件的测试都很全面
anytone 发表于 2026-4-17 17:49 | 显示全部楼层
你的测试结果跟他们自已测的相差好大https://bbs.21ic.com/icview-3455324-1-1.html
彩虹捕手 发表于 2026-6-2 16:24 | 显示全部楼层
测试结果很亮眼,G32R501的zidian指令加速器性能已经接近TI的TMS320F28377D的TMU单元,这对于国产芯片来说是一个巨大的进步。
albertaabbot 发表于 2026-6-4 08:18 | 显示全部楼层
测试结果包含哪些核心指标?              
deliahouse887 发表于 2026-6-4 21:15 | 显示全部楼层
在相同运算负载下,Zidian加速器通过减少单片机占用率降低整体功耗。
robincotton 发表于 2026-6-4 22:40 | 显示全部楼层
通过SIMD指令,向量运算吞吐量提升约6.7倍,适合图像处理、传感器数据融合等需要批量数据处理的场景。
timfordlare 发表于 2026-6-5 13:44 | 显示全部楼层
Zidian加速器与其他MCU加速模块对比优势?
alvpeg 发表于 2026-6-6 10:24 | 显示全部楼层
传统 TMU挂在 AHB 总线上,访问延迟高。紫电直接在处理器内部,指令访问路径极短,实测效果远优于总线级 TMU。
mickit 发表于 2026-6-6 11:17 | 显示全部楼层
极海G32R501的Zidian指令加速器通过硬件级运算加速,在基础运算、向量处理及复杂算法场景中展现出优异性能,加速比普遍达到5x~20x,同时兼顾低功耗和高实时性。
jimmhu 发表于 2026-6-6 12:02 | 显示全部楼层
如何通过反汇编代码确认Zidian指令是否真的生效了?
bartonalfred 发表于 2026-6-6 13:06 | 显示全部楼层
G32R501的Zidian指令加速器能否用于ADC采样?
sanfuzi 发表于 2026-6-6 13:36 | 显示全部楼层
G32R501 Micro-EVB的Zidian指令加速器有哪些局限性?
maqianqu 发表于 2026-6-6 14:17 | 显示全部楼层
实际项目中Zidian加速的实际案例分享?
robertesth 发表于 2026-6-6 14:54 | 显示全部楼层
如何调试G32R501中的Zidian指令问题?
zerorobert 发表于 2026-6-6 15:35 | 显示全部楼层
加速后的运算延迟降低,可支持更高的控制环路频率,满足工业控制中对实时性的严苛要求。
bestwell 发表于 2026-6-6 16:17 | 显示全部楼层
单片机是否能真正实现“后台运算”,还是必须NOP等待加速器结果?
mollylawrence 发表于 2026-6-6 17:15 | 显示全部楼层
G32R501如何使用Zidian指令进行编程?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0