0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

性能突破 | SpacemiT-X60 在 LLVM 编译器上实现 16% 显著提升

进迭时空 2025-11-21 18:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

2025年10月,在北美RISC-V峰会上,Igalia编译器工程师Mikhail发表专题演讲《Unlocking 15% More Performance: A Case Study in LLVM Optimization for RISC-V》。演讲基于在进迭时空 SpacemiT-X60 RISC-V 处理器上开展的十个月优化实践,系统阐述如何通过上游 LLVM 的多项改进,显著提升 RISC-V 处理器性能,并在 SPEC CPU 2017 基准测试中实现最高达 16% 的性能提升。

本次优化的重点涵盖三大方面:

为 SpacemiT-X60 引入定制调度模型

增强向量化在跨函数调用场景下的分析能力

支持过程间寄存器分配(IPRA)以优化寄存器使用

SPEC 测试

SPEC CPU 2017 是业界公认的 CPU 性能评估标准,通过运行一系列计算密集型任务(如代码编译、科学计算、AI 推理等),全面测量处理器的整数与浮点运算性能。其测试结果能够客观反映 CPU 在实际应用中的执行效率,是衡量服务器、工作站及高端 PC 处理器性能的关键基准。

调度模型:性能提升的关键


调度模型的引入是本次性能提升的关键。SpacemiT-X60作为一款按序双发射CPU核心,其执行效率高度依赖于编译器生成的指令序列能否充分适配硬件特性。以LOAD指令为例,在等待数据就绪的周期内,通过智能调度插入其他可执行指令,可有效避免流水线空等——这正如点外卖后,在送达前处理其他事务,而非一味守在门口。


通过引入针对 X60 的调度模型,多个 SPEC 2017 子项目均实现性能提升,其中最高达 16.8%,整体性能平均提升 4.75%。由于该调度优化作用于指令序列层面,不依赖特定程序逻辑,因此大多数软件均可受益于该项改进。


6767517e-c6c1-11f0-8ce9-92fbcf53809c.png


目前,LLVM 中的 RISC-V 后端尚缺乏一个默认的调度模型。此次为 SpacemiT-X60 开发的模型,有望成为LLVM RISC-V 目标默认的调度模型,为更多RISC-V场景提供优化支持。

突破难点:跨函数调用的向量化优化


SpacemiT-X60 支持 256 位宽的 RISC-V Vector (RVV) 1.0 扩展。在数据并行度高的任务中,正确使用向量指令可大幅提升程序性能,因此自动向量化始终是编译器优化的重点之一。然而,自动向量化的关键难点在于代价评估:编译器需准确判断在何种场景下向量化能带来性能提升,又在哪些情况下可能带来性能回退。


Mikhail 在报告中重点分析了跨函数调用这一典型场景。最终落地的 SLP fix 方案取得了显著优化效果,在测试中实现单个用例最高11.9%的性能提升,整体平均提升幅度也接近 1%。


67762582-c6c1-11f0-8ce9-92fbcf53809c.png


减少冗余:过程间寄存器分配(IPRA)


报告同时介绍了对过程间寄存器分配(IPRA,Inter-Procedural Register Allocation)的技术支持。在函数调用过程中,为确保程序正确执行,需对寄存器进行保存与恢复。传统编译方式下,由于编译器无法预知被调用函数的具体寄存器使用情况,往往采取保守策略,对所有可能涉及的寄存器执行保存与恢复操作,造成不必要的性能开销。


而 IPRA 技术通过过程间分析,使编译器能够精确掌握被调用函数的寄存器使用情况。当确认某些寄存器不会被破坏时,即可省略相应的保存与恢复指令,从而减少内存访问、提升执行效率。目前IPRA还有bug尚在修复,暂未默认启用,但在Spec上的测试已经显示出0.5%的稳定性能提升,其优化效果已经得到验证。


67834d16-c6c1-11f0-8ce9-92fbcf53809c.png


结语


从报告展示的最终数据来看,当前 GCC 与 LLVM 两大开源编译器在 RISC-V 平台上的表现各有优势,在不同测试项目中互有领先,这也表明未来仍有广阔的协同优化空间。


678f5624-c6c1-11f0-8ce9-92fbcf53809c.png


6799fd86-c6c1-11f0-8ce9-92fbcf53809c.png


本次优化工作获RISE(RISC-V Software Ecosystem)项目RP009课题支持。RISE是由Linux基金会托管的全球合作计划,汇聚行业领导者共同推动RISC-V开源软件发展。作为RISE成员,进迭时空荣幸见证 SpacemiT-X60被选用于 RISC-V 的编译器性能优化研究并取得显著成果,特此感谢 Mikhail 及所有开发者的贡献。


截至目前,进迭时空 8 核 RISC-V AI CPU 芯片 K1 累计量产交付量突破 13 万颗,已成为量产速度最快的 RISC-V 高算力芯片。同时,公司通过 Bianbu Cloud 等云服务方式,为开发者提供便捷、即时的 RISC-V 算力服务。我们坚信,随着更多行业伙伴与开发者的加入,RISC-V 生态将加速迈向成熟。


附录


1.RISC-V Summit 2025:

https://riscvsummit2025.sched.com/event/28OTp/unlocking-15-more-performance-a-case-study-in-llvm-optimization-for-risc-v-mikhail-r-gadelha-igalia

2.RISE RP009:

https://blogs.igalia.com/compilers/2025/05/05/boosting-risc-v-application-performance-an-8-month-llvm-journey/

3.RISE BLOG :

https://riseproject.dev/2025/05/08/project-rp009-llvm-spec-optimization/

4.Igalia BLOG :

https://blogs.igalia.com/compilers/2025/05/05/boosting-risc-v-application-performance-an-8-month-llvm-journey/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译器
    +关注

    关注

    1

    文章

    1673

    浏览量

    52116
  • RISC-V处理器
    +关注

    关注

    0

    文章

    87

    浏览量

    11158
  • 进迭时空
    +关注

    关注

    0

    文章

    77

    浏览量

    672
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PIC16(L)F170X/171X:高性价比8位智能模拟闪存微控制的卓越之选

    PIC16(L)F170X/171X:高性价比8位智能模拟闪存微控制的卓越之选 电子设计领域,选择一款合适的微控制
    的头像 发表于 04-29 17:05 686次阅读

    单片机开发功能安全中编译器

    期间显示的防御代码。仅仅因为单元测试期间已经实现了防御性代码的覆盖范围,因此并不能保证其已存在于完整的系统中。 功能安全这个陌生的领域,编译器可能超出了其要素。这就是为什么目标代
    发表于 12-01 06:44

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    万物智联的时代背景下,操作系统底层能力的构建离不开编程语言与编译器的关键支撑。作为开源鸿蒙生态的核心技术,语言设计与编译器、虚拟机实现的进步直接关系到开发效率、运行
    的头像 发表于 11-20 17:24 1293次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>编译器</b>与编程语言分论坛:语言驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    Altera发布 Quartus® Prime 专业版和 FPGA AI 套件 25.3 版:编译更快,智能更强

    投产以来编译时间缩短多达 27%,同时显著提升了 AI 工具的易用性; 得益于增强型编译器和架构优化,设计人员平均可节省
    的头像 发表于 11-13 09:24 7.6w次阅读
    Altera发布 Quartus® Prime 专业版和 FPGA AI 套件 25.3 版:<b class='flag-5'>编译</b>更快,智能更强

    Arm Neoverse CPU大代码量Java应用的性能测试

    Java 是互联网领域广泛使用的编程语言。Java 应用的一些特性使其性能表现与提前编译的原生应用(例如 C 程序)大相径庭。由于 Java 字节码无法直接在 CPU 执行,因此通常运行时
    的头像 发表于 11-05 11:25 1042次阅读
    Arm Neoverse CPU<b class='flag-5'>上</b>大代码量Java应用的<b class='flag-5'>性能</b>测试

    【CPKCOR-RA8D1】AI人脸检测(安装对应版本的FSP及LLVM

    \\\\toolchains\\\\llvm_arm\\\\LLVMEmbeddedToolchainForArm-17.0.1-Windows-x86_64)。 确认添加成功: e² studio
    发表于 10-31 11:22

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译呢?

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译?有什么编译选项可以设置吗? 移植代码,有些函数没被调用的函数想留在代码里,但不想被编译
    发表于 09-28 12:25

    如何在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6?

    Keil中将NuMicro BSP从Arm编译器5迁移到编译器6!
    发表于 08-20 06:29

    【HZ-T536开发板免费体验】2 - 交叉编译仓颉编程语言程序到开发板运行

    AARCH64的编译器(我使用的是WSL2): sudo apt install gcc-aarch64-linux-gnu 然后需要拷贝aarch64开发包中以下三个目录的文件到x86_64的Linux软件包
    发表于 07-16 21:27

    边缘设备AI部署:编译器如何实现轻量化与高性能

    、ASIC等)上高效执行的机器代码。AI编译器AI模型的部署和优化中扮演着关键角色,能够显著提升模型的运行效率和性能。   AI
    的头像 发表于 07-06 05:49 7068次阅读

    编译器功能安全验证的关键要素

    汽车、工业、医疗等安全关键型应用中,确保功能安全合规性需要严格的工具链验证。开发安全关键型软件的企业必须遵守ISO 26262、IEC 61508、ISO 62304等国际标准对编译器工具链进行全面的验证。
    的头像 发表于 07-05 13:37 1771次阅读

    兆松科技发布高性能RISC-V编译器ZCC 4.0.0版本

    近日,兆松科技(武汉)有限公司(以下简称“兆松科技”)宣布正式发布高性能 RISC-V 编译器 ZCC 4.0.0 版本。新版本性能优化、厂商自定义指令支持和软件库等方面
    的头像 发表于 06-27 14:48 4144次阅读
    兆松科技发布高<b class='flag-5'>性能</b>RISC-V<b class='flag-5'>编译器</b>ZCC 4.0.0版本

    兆松科技ZCC编译器全面支持芯来科技NA系列处理

    近日,兆松科技(武汉)有限公司(以下简称“兆松科技”)宣布正式发布高性能RISC-V编译器ZCC 4.0.0版本。
    的头像 发表于 06-11 09:56 2118次阅读

    RISC-V架构下的编译器自动向量化

    性能算力生态的建设,正投入编译器自动向量化优化等多项关键技术,全面助力RISC-V的高性能发展。RISC-V向量设计SpacemiT现代
    的头像 发表于 06-06 16:59 1587次阅读
    RISC-V架构下的<b class='flag-5'>编译器</b>自动向量化

    先楫 x 兆松:打造国产高性能 RISC-V MCU生态里程碑

    2025年06月06日,兆松科技(武汉)有限公司(以下简称“兆松科技”)宣布正式发布高性能RISC-V编译器ZCC4.0.0版本。新版本性能优化、厂商自定义指令支持和软件库等方面
    的头像 发表于 06-06 15:53 2594次阅读
    先楫 <b class='flag-5'>x</b> 兆松:打造国产高<b class='flag-5'>性能</b> RISC-V MCU生态里程碑