SEMD:一种面向实际数值模拟软件的跨平台自动性能优化编程工具

SEMD: A Cross-platform Automatic Performance Optimization Programming Tool for Real Numerical Simulation Software

  • 摘要: 针对手工软件性能优化缺乏可复用性和可移植性的问题, 设计实现一种面向实际数值模拟软件的跨平台自动性能优化编程工具SEMD (Single element-based computing multiple data)。SEMD采用数值模拟领域基于网格的高层语义对数值计算循环进行抽象, 完全屏蔽底层硬件特征和性能优化实现, 使得基于其编写的数值计算子程序能够自动实现跨平台性能可移植。典型算例测试结果显示: 在X86、ARM、GPU三种不同架构的处理器上, SEMD的整体性能优化效果超过国际上的同类产品。此外, SEMD在结构、流体、电磁等领域实际数值模拟软件的研制中也得到了初步应用, 支撑4款软件热点数值计算子程序平均性能提升164%.

     

    Abstract: Aiming at the lack of reusability and portability in the manual optimization of software, we propose and implement SEMD, a cross-platform automatic performance optimization programming tool for numerical simulation software. It abstracts numerical computing loop programming using high-level semantics, which is prevalent in the field of numerical simulation, completely shielding underlying hardware features and performance optimization implementations. Therefore, any numerical subroutines written based on SEMD can attain automatic cross-platform performance portability. Our tests demonstrate that SEMD's performance optimization effects exceed those of comparable products on three different processor architectures, including X86, ARM and GPU. Furthermore, SEMD has been successfully applied in the development of four real numerical simulation software programs in the fields of structure, fluid, and electromagnetic, resulting in an average performance improvement of 164% on hotspot subroutines.

     

/

返回文章
返回