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

    文章

    1670

    浏览量

    51083
  • RISC-V处理器
    +关注

    关注

    0

    文章

    86

    浏览量

    10917
  • 进迭时空
    +关注

    关注

    0

    文章

    50

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    请问基于GCC编译器的initcallSTM32如何实现

    请问各位基于GCC编译器的initcallSTM32如何实现?有哪位实现了吗?
    发表于 03-13 06:24

    什么样的代码会被编译器优化

    现在的编译器有多智能,可能你辛辛苦苦写的代码,在编译器看来就是几句废话,直接被删除掉。
    的头像 发表于 01-16 16:38 936次阅读

    Triton编译器与GPU编程的结合应用

    Triton编译器简介 Triton编译器是一种针对并行计算优化的编译器,它能够自动将高级语言代码转换为针对特定硬件优化的低级代码。Triton编译器的核心优势在于其能够识别并行模式,
    的头像 发表于 12-25 09:13 1319次阅读

    Triton编译器如何提升编程效率

    现代软件开发中,编译器扮演着至关重要的角色。它们不仅将高级语言代码转换为机器可执行的代码,还通过各种优化技术提升程序的性能。Triton 编译器
    的头像 发表于 12-25 09:12 1204次阅读

    Triton编译器性能计算中的应用

    先进的编译技术,为高性能计算提供了强大的支持。 Triton编译器简介 Triton编译器是一种开源的编译器框架,旨在为异构计算环境提供高效
    的头像 发表于 12-25 09:11 1576次阅读

    Triton编译器的优化技巧

    现代计算环境中,编译器性能对于软件的运行效率至关重要。Triton 编译器作为一个先进的编译器框架,提供了一系列的优化技术,以确保生成的
    的头像 发表于 12-25 09:09 1849次阅读

    Triton编译器的优势与劣势分析

    Triton编译器作为一种新兴的深度学习编译器,具有一系列显著的优势,同时也存在一些潜在的劣势。以下是对Triton编译器优势与劣势的分析: 优势 高效
    的头像 发表于 12-25 09:07 1878次阅读

    Triton编译器机器学习中的应用

    多种深度学习框架,如TensorFlow、PyTorch、ONNX等,使得开发者能够轻松地将不同框架下训练的模型部署到GPU。 2. Triton编译器的工作原理 Triton编译器通过以下几个步骤
    的头像 发表于 12-24 18:13 1636次阅读

    Triton编译器的常见问题解决方案

    Triton编译器作为一款专注于深度学习的高性能GPU编程工具,使用过程中可能会遇到一些常见问题。以下是一些常见问题的解决方案: 一、安装与依赖问题 检查Python版本 Triton编译器
    的头像 发表于 12-24 18:04 6431次阅读

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言和编译器的访问,使得用户可以Pyt
    的头像 发表于 12-24 17:33 1477次阅读

    Triton编译器与其他编译器的比较

    的GPU编程框架,使开发者能够编写出接近手工优化的高性能GPU内核。 其他编译器 (如GCC、Clang、MSVC等): 定位:通用编译器,支持多种编程语言,广泛应用于各种软件开发场景。 目标:提供稳定、高效的
    的头像 发表于 12-24 17:25 1597次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    。以下是 Triton 编译器的一些功能介绍和使用教程。 Triton 编译器功能介绍 多语言支持 :Triton 支持多种编程语言,使得开发者可以同一个编译器框架下处理不同的语言。
    的头像 发表于 12-24 17:23 2717次阅读

    HighTec C/C++编译器套件全面支持芯来RISC-V IP

    是基于LLVM开源汽车级C/C++编译器工具,已通过ISO 26262 ASIL D的安全认证。从事RISC-V架构开发的汽车软件开发者受益于这些工具来无缝支持芯来经过功能安全认证的RISC-V内核,进而
    的头像 发表于 12-23 09:04 2008次阅读
    HighTec C/C++<b class='flag-5'>编译器</b>套件全面支持芯来RISC-V IP