庄秋彬-RISC-V编译器优化探索_os2atc_spacemit_.pdf

编号:159328 PDF 13页 1.70MB 下载积分:VIP专享
下载报告请您先登录!

庄秋彬-RISC-V编译器优化探索_os2atc_spacemit_.pdf

1、RISC-V 编译器优化探索硬件特性-指令RISC-V的不同寻常之处,除了在于它是最近诞生的和开源的以外,还在于和几乎所有以往的ISA不同,它是模块化的。基础ISA仅47条指令,永远不会改变。模块化来源于可选的标准扩展,根据应用程序的需要,硬件可以包含或不包含这些扩展。硬件特性-指令 zba zbb zbs更高效的基础指令,广泛使用。zicond使用条件移动代替分支,可降低branch miss带来的性能损失。但对于branch miss rate比较低的场景则不一定有优势,需要编译器有更好的方式来评估是否使用zicond。硬件特性-指令 zicboz 可用于实现快速memset清0。zicb

2、op 通过 prefetch 来减少cache miss,在mcf上带来了25%的性能提升。但对于其他用例,可能反而导致性能略微下降。编译器插入prefetch的分析机制需要增强。硬件特性-指令 vector在合适的场景下用上vector能带来较明显的提升hmmer:提升30%linpack:提升80%编译器的自动向量化还需要继续完善,以充分发挥vector算力。硬件特性-调度 基础适配需要详细了解芯片的流水线信息,并提供给编译器,以生成较佳的指令序列。coremark添加调度信息后提升15%+。深入挖掘对于关键场景,通过结合仿真波形分析空泡,寻找优化空间硬件特性-FusionRISC-V的基

3、础指令因其简洁相较ARM存在一定的效率不足,很多RISC-V处理器核通过扩展指令的方式部分解决该问题,但是这种方法也存在基础指令碎片化的缺陷。在保持ISA不变的前提下,由硬件对指令序列进行监测与智能融合,可以有效提高指令执行效率。硬件特性-Fusion基础适配在调度阶段,判断指令序列,将满足fusion条件的指令调度到一起。但仅在PostRA阶段进行Fusion判断,存在局限性。深入挖掘 在PreRA阶段进行部分Fusion 修改函数prolog和epilog的指令序列 支持load/store cluster 调整commutable的指令 添加RA hint影响寄存器分配优化实例 core

4、mark针对程序的特征,单个优化提升20%dhrystone使用优化的strcmp实现,提升30%+xalancbmk使用jemalloc库,提升30%+优化实例 mcf通过 perf 抓取硬件PMU信息,可分析出性能瓶颈在于dcache miss较高。进一步识别出热点代码,分析原因在于热点结构体本身较大,但热点操作仅需访问其中一个成员。优化实例 mcf通过 instance interleaving将原结构体拆分,并配合插入软件prefetch指令,可明显改善cache miss状况。结构体优化配合prefetch,累计提升37%。结语进迭时空专注于研发下一代RISC-V架构的高性能CPU并提供软硬一体优化的计算解决方案。RISC-V的高性能之路,离不开包括编译器在内的软硬件全栈优化,进迭时空愿携手行业各方共同丰富 RISC-V 生态,助推 RISC-V 迈向更大的成功。THANK YOU!进迭时空-RISC-V高性能芯片c

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(庄秋彬-RISC-V编译器优化探索_os2atc_spacemit_.pdf)为本站 (张5G) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠