RISC-V在云端、数据中心、汽车与网络技术中的频繁创新和亮相,已经让这一成长中的ISA一只脚迈入了高性能计算场景。然而缺少强大的性能监测工具让RISC-V的应用优化成了问题,尤其是在RISC-V如今不少软件源于从非原生移植的情况下,运算性能不能发挥出百分百的实力成了令人头疼的问题。
与此同时,英特尔和ARM都拥有自己专用的性能监控方案,让开发者可以发挥出其硬件的全部效力,但RISC-V仍然依靠定制或厂商特定的方案,而缺少通用性能监控软件工具的完整支持。
PeRF对RISC-V的支持
系统级的性能优化往往是靠性能剖析和代码优化来实现的,前者是为了寻找性能瓶颈,后者则是为了改善软件性能,因此这类性能分析/监控工具成了处理器开发时必不可少的软件。尽管RISC-V的ISA规范已经定义了硬件性能监控(HPM),但总体支持程度上仍未完善。
就以Linux上的性能分析工具Perf为例,该工具可以借助PMU(性能监控单元)、tracepoint和内核计数器来分析程序中的硬件事件,比如处理器时钟周期、指令计数器等,也可以分析一些软件事件,比如Page Fault等。
Perf分为两种模式,一种是perf stat,一种是perf record。如今上游Linux的perf虽然已经对RISC-V有了支持,但仅对perf stat有一些基本的支持。比如mcycle这一CSR用于处理器运行的时钟周期计数,而minstret这一CSR则用于退休指令计数。
目前RISC-V特权规范中的支持 / 西部数据
|