跳到主要内容

地表最强 最高 90% 代码密度优化,64% 性能提升,兆松 RISC-V 工具链正式发布

· 阅读需 30 分钟

Talk is cheap, show me the data.  说得天花乱坠,不如给出实际的测试数据来 pk 一下,今天这篇文章直接切入主题,介绍一下我们的 zstudio 集成开发环境的全套工具以及性能测试详细数据。


这次兆松科技发布的 zstudio IDE 包括全套 RISC-V elf/linux工具链, newlib, glibc 以及 c++ 函数库, 高性能 libml DSP 函数库,调试器 zdb, 仿真器 zemu, ISO 26262 MISRA C 安全检测工具等。


代码密度和速度是 MCU 应用等领域非常关心的问题。所以,兆松的第一代 RISC-V 工具链在这方面做了大量优化。



1.DSP 函数库


业界普遍使用的是 ARM 的 CMSIS DSP 函数库,但是经我们调研发现,CMSIS DSP 函数库中某些算法有非常大的改进空间,目前我们研发的纯算法版 libml DSP 函数库,实现了 transformation 类的函数代码密度比 CMSIS DSP 小 90% 至 50% 的同时性能超过 CMSIS DSP,且误差比 CMSIS DSP 小一个数量级。下图是 CMSIS DSP 和兆松 libml DSP 对比。


图片

Code size 对比 (左-CMSIS DSP, 右 - 兆松 libml DSP)


图片

算法版性能对比 (左-CMSIS DSP, 右 - 兆松 libml DSP)


图片

累积误差 (左-CMSIS DSP, 右 - 兆松 libml DSP)


图片

代码密度小 90% (不带 stdio 库函数) (左-CMSIS DSP, 右 - 兆松 libml DSP)


图片

代码密度小 50% (带 stdio 库函数) (左-CMSIS DSP, 右 - 兆松 libml DSP)




2.编译器


我们的 zcc 编译器所编译出来的 coremark,在芯来的 N300 开发板上,跑分 3.78,比上游的 llvm 11.0 高出 64%,比上游的 RISC-V gcc11.1 高出 11.4%。


图片

GCC 11.1 在 N300 上面的跑分 3.32CoreMark/MHz


图片

zcc 在 N300 上面的跑分 3.78CoreMark/MHz


图片

llvm 11 在 N300 上面的跑分 2.23 CoreMark/MHz


在综合测试方面,embench-IoT 测试结果显示我们的 zcc 编译器在性能相当的情况下,代码密度比 gcc 11.1 平均小 33% 左右。对于 polybench 测试,zcc 的优势更加明显,代码密度比 gcc 11.1 平均小 38% 左右,这些对比测试,gcc 和 zcc 均使用的标准版 newlibnano 函数库,测试目标为 RV32IMAC,开启 Os 和 LTO 优化。


图片

Embench-IoT 代码密度和性能对比,zcc 比 gcc 11.1 平均小 33% 左右


图片

Polybench 代码密度和性能对比,zcc 比 gcc 平均小 38% 左右


目前我们编译器针对 RVV 的自动向量化进展也相当不错,预计 2022 年第一季度发布一个预览版,下图是和 EPI(欧洲超算中心编译器项目) 的代码质量对比,详细的对比可以参考文章

《RISC-V Vector 自动向量化及 llvm 当中的实现》


图片


下一个版本,除了在编译器层面有更优的性能提升以及代码密度优化之外,我们还会推出完整的支持 RVV 自动向量化的编译器,以及针对 RISC-V P 扩展优化过的的 libml DSP 函数库,其代码密度和性能较算法版将会有非常明显的提升。




3.调试器和仿真器



兆松的 zstudio 已经完美集成了调试器 zdb 和仿真器 zemu,下图所展示的是使用 zdb 连接仿真器 zemu 调试 RISC-V 程序的例子。我们的 zemu 除了支持 ISS 层级的 ISA 功能仿真之外,还支持 SoC 层级的虚拟建模和仿真功能,以及 near cycle accurate 的仿真。


图片

zdb 通过 zemu 调试 RISC-V 程序




4.ISO26262 车规安全检测


车规芯片,除了从硬件设计,制造工艺等方面需要保证符合 ISO26262 的规范之外,对于在芯片上面执行的应用程序,也需要通过 ISO26262 的安全规范标准。


兆松科技发布的第一版 zchecker 车规安全检测工具当中,包括 MSRA C 2012 的 143 条安全检测规范,以及修订版 1 和 2 里面新增的 23 条安全检测规范。后续产品会支持 MISRA C++ 202x 的安全检测。


图片MISRA C2012 检测页面


图片MISRA C2012 详细错误列表和源代码定位




5.zstudio 其他功能


zstudio IDE 除了支持各种编程语言的语法高亮,自动代码补全,git 版本管理,反汇编,控制流图分析,性能分析火焰图等功能之外,还支持丰富的 VS Code 插件。


图片Zstudio 反汇编功能


图片

Zstudio 汇编代码控制流图分析




6.未来可期


我们正在紧锣密鼓地部署云端 IDE SaaS 平台,预计将在 2022 春季推出,届时将免费开放给所有高校,非商业用户使用。同时,Mac OS 平台的 zstudio 也将在今年春季推出。


图片

兆松云端平台预览



--------END--------


兆松科技是一家专业做编译和仿真的初创公司,由前晶心科技研发副总王东华博士于 2019 年底创立。研发总监伍华林曾就职于晶心科技,S3 Graphics,Imagination,拥有 10 余年 CPU/GPU 编译器研发经验。欢迎关注兆松科技公众号!