二十年代初期,冯·诺依曼体系结构的出现,是人工智能和计算机技术造梦的开始,为互联网的繁荣发展奠定了基础。如今,几十年的历史演变下,电子计算能力呈现出几何指数增长,传统的计算架构面临着各种挑战,包括散热、存储和摩尔定律,这些挑战源于存储能力瓶颈以及存储器与处理器之间的特定的数据转移速度所带来的高成本,冯·诺依曼瓶颈越发显著。
在冯·诺依曼结构中,计算模块和存储单元是分离的,CPU在执行命令时必须先从存储单元中读取数据。试想一下,每一项任务如果有十个步骤,那么CPU会依次进行十次读取和执行,延时不说,还会在数据读取上花费大量功耗,尽管多核、多CPU或一些常用数据的就地存储会一定程度上缓解这些问题,但也只是治标不治本而已,路最终也会被堵死。
尽管弊端凸显,冯·诺依曼结构仍然是现在的主流结构,计算机形态各异,但是究其本质,几乎全部采用了该结构。在此背景下,硬件算力如何才能突破现有瓶颈实现提升?从“软硬协同”驱动算力增长来看,软件性能调优是一个值得研究的课题。
以编译器为例,如何优化才能打破CPU/内存瓶颈?基于芯片微架构,华为鲲鹏在实践中总结了几点优化方式:
• 指令布局优化:拆分函数代码,按照冷热指令重新排布,提升指令Cache命中率
• 内存布局优化:按照内存数据访问频度,组合热数据区域,提升数据Cache命中率
• 循环优化:分析循环迭代间数据访存依赖关系, 对无依赖的循环并行到多核执行,无依赖的数据自动矢量化计算,加速程序运行
6月19日,鲲鹏计算技术专家将会就软件性能调优这一课题展开详细的介绍,提供技术问题解决建议,为开发者提供交流实践平台,助力开发者快速提升鲲鹏软件开发水平,共赢计算新时代。


