性能分析组
在龙芯自研芯片产品和x86架构、ARM架构的芯片产品上进行多角度和多维度的性能测试,对比不同芯片产品在计算、访存、功耗等方面的性能差异,从指令集、微架构以及操作系统等方面分析性能瓶颈,提出性能优化的可行性方法。
现代高性能处理器设计高度复杂,其性能表现很难通过直觉和简单数据来准确判断,需要一套完整的分析工具平台和细致的数据收集及分析。同时,随着技术发展应用负载也不断出现新的变化。除了很多应用负载规模不断变大之外,云计算等新型应用环境也导致新的负载行为。处理器和负载越复杂,在流片生产之前准确判断其性能的难度就越大。因此实验室需要通过缩减数据集或者用若干片段的行为拟合大型负载表现等技术来实现高效准确的硅前性能预测方案。此外,通过在处理器内部设计各种性能数据收集设施,能够从微结构层次分析各种负载行为,在了解负载和处理器的行为之后可进行针对性优化。性能分析工作贯穿了芯片的硅前设计阶段到流片后的实机测试阶段,通过对CPU在各种情景负载下的测试和分析,找到性能瓶颈和可能的优化方法,为芯片设计的后续工作提供反馈和指导。
研究方向
对一款芯片产品来说,影响性能的因素可能来自芯片设计和生产的每一个环节,我们的研究方向包括:
- 硅前性能分析:在仿真加速器上模拟芯片在某些负载下的性能,通过捕获仿真波形,分析在特定负载下的硬件行为。在硅前性能分析的工作中,我们重点关注硅前性能分析方法,让硅前性能分析能够有很好的准确性;
- 系统性性能分析方法探索:了解和汇总不同功能芯片在开展性能分析工作中普遍需要关注的性能点,思考系统性、全面性、统一性的性能分析方法,以便在不同架构CPU、不同操作系统的机器上快捷的部署性能测试工作;
- 现有Benchmark的探究:对现有的主流Benchmark进行分析,如SPEC CPU2006,SPEC CPU2017,Phoronix Test Suite测试套件等,了解程序行为来指导性能分析工作中对应的关键点;
- 新Benchmark开发: 在对已有Benchmark的深层次认知下,针对现有Benchmark的薄弱点进行新Benchmark的开发;
- 性能瓶颈优化: 根据性能测试结果分析得到性能的瓶颈点,针对性的展开优化工作。
现有工作
龙芯3A系列、3C系列芯片性能测试
在龙芯的桌面端CPU 3A5000、3A6000和服务器端CPU 3C5000上进行了包括SPEC CPU2000、SPEC CPU2006、SPEC CPU2017、STREAM、SPECjvm2008、UnixBench、CPUBench等测试,并将测试结果对比x86、ARM芯片产品,了解芯片在同类型产品中的性能水平,定位性能差异项。 在针对3A6000的测试中,我们重点关注了CPU在定点计算、浮点计算和访存带宽方面的性能,不仅和x86架构下的10100等芯片进行了横向比较,同时也和3A5000芯片进行了纵向对比,特别是在3A6000上首次使用的单核双线程究竟能带来多大的性能提升。
CPUBench开发
为了弥补国内CPU性能评测工具的空白,联合中国电子技术标准化研究所,开发了对通用计算场景下的CPU、内存子系统以及所依赖的编译器进行综合计算能力评估的Benchmark——CPUBench。目前CPUBench 1.0已经全面应用于龙芯性能分析的测试工作中,并针对测试反馈计划改进并推出CPUBench 2.0版本。 有关CPUBench的内容参见CPUBench: 一款开放的通用计算CPU性能基准工具。
GCC性能优化
针对3A5000在SPEC CPU2006测试结果中的性能瓶颈点,从编译器角度进行性能调优。
- 在Loongarch的GCC编译器中实现指针压缩;
- GCC编译器基于程序性能的自动调优功能的尝试。
加入我们
欢迎大家联系我们了解更多。
发布于