完整的Perf支持缺少了什么

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 privileged规范中,risc-v定义了几种特权模式,分别是u-mode(用户模式)、s-mode(管理员模式)和m-mode(机器模式)。但目前只有在机器模式下才能对这些寄存器进行读写,管理员模式下缺乏可写入的寄存器。
计数器却又是每时每刻运行中的,所以现在可以做到周期和指令计数,却无法启用、禁用和暂停计数器,无法使用任何可编程计数器和事件采样。不仅如此,risc-v的perf不仅无法处理计数器溢出,也不支持溢出中断。虽然市面上很多risc-v处理器已经考虑到了这一点,采用定制的形式来完成部分任务,比如esperanto就为自己的et-soc-1千核risc-v处理器加入了商业级的芯片除错与性能监控能力,但risc-v规范本身缺少这些支持,这也就不利于当下risc-v的开源生态。
完整的perf支持缺少了什么?
于是我们现在发现管理员模式下无法写入计数器,也无法改变mcountinhibit来直接开启或停止计数器,也无法改变mhpmcountern来开启或禁用直接读取。接着就是没有中断指示器,我们不知道哪一个计数器出现了数值溢出,也没有事件筛选功能。那么针对这些问题的解决方案是什么,哪些措施才能实现完整的perf支持呢?来自西部数据的atish patra在近期的risc-v峰会上提出了他以及开发社区所青睐的答案——sbi pmu扩展和sscofpmf isa扩展。
sbi pmu扩展将作为一个接口,让管理员模式下的软件发现硬件计数器的细节,针对特定的perf事件来配置硬件计数器,在请求下开始或停止计数器。除此之外,sbi pmu扩展还引入了固件性能计数器来监控固件事件,比如未对齐的存取指令数、rfence和ipi数等等。如今在risc-v的sbi 1.0版本中我们也可以看到,pmu扩展已经成了该规范的一部分。
接着是sscofpmf扩展,ss代表的是特权架构和管理员级的扩展,cofpmf代表的是溢出计数和特权模式筛选。该扩展新增了一个32位的scountovf只读寄存器,该寄存器存储的是29个mhpmcounter的第63位(of),如此一来就能准确快速地判断究竟是哪个事件的计数器溢出了。这一扩展已经冻结,目前处于审查状态,预计不久的将来就会批准,来自linux内核的支持工作也在推进中。
小结
risc-v作为一个尚处于发展初期的架构,在某些方面确实还有不及其前辈x86和arm的地方,我们这次从性能监控上就能看出一些端倪,但risc-v自身的特性也为它带来了不小的优势。
首先,risc-v是站在巨人的肩膀上发展的,它可以有效地规避以上那些架构走错的老路。其次,开源开放让risc-v有了庞大的社区支持,像以上这些解决方案,其实已经被多次提及,来自社区的力量势必可以让risc-v走得更远。


实验室中和离子风枪防护技术
中国人工智能产业繁荣 催生这一热门工作
工息部标准化工作将聚焦制造强国、人工智能等领域
半导体产业抵抗不景气 创新是唯一良药
差分放大器和运算放大器区别
完整的Perf支持缺少了什么
苹果iPhone8:你喜欢翻盖的iPhone手机吗?看了你可能会哭
麻省理工学院计算机科学与人工智能实验室研究新的系统复合翼无人机
三极管和场效应管引脚
CV大牛沈春华新算法获GitHub 1400多颗Star
某些生物医药领域使用人工智能技术或将得出一些不准确的结论
无线充电线圈绕制方法及安装注意事项
机油常识
基于PLC和触摸屏的食品包装自动化生产线物联网系统
上位机通过Modbus转Profinet网关与变频器通讯应用在卷材机上案例
下一代线路传感器:功率收集、连接和低维护
联通混改制定解锁期 持股员工将被捆绑五年
康宁发布光纤和光缆创新产品 可满足超大规模数据中心
环球晶圆加入增建大军 硅晶圆预定2025年正式量产
《布拉格提案》绝非“非约束性建议”那么简单!