提升多线程数值代码与三角矩阵函数性能的优化策略
在当今的计算机架构中,实现高性能计算是一项极具挑战性的任务。对于多线程数值代码和三角矩阵函数而言,需要巧妙地调整众多优化参数,以充分发挥硬件的潜力。本文将深入探讨多线程数值代码中可调参数的暴露以及三角矩阵函数的优化方法。
1. 多线程数值代码中可调参数的暴露
在多核架构中,共享缓存的存在使得在考虑并行性和数据局部性时需要综合权衡。传统的静态编译器启发式方法在处理众多性能影响参数时往往效果不佳,因此自动性能调优成为了一种有效的解决方案。
1.1 挑战与现状
现代计算机系统中,芯片多处理器系统的出现极大地提升了性能潜力,但编译器在利用片上并行性时面临诸多挑战。科学领域的数值代码通常具有高时间重用性和大工作集,难以完全适配高级缓存。共享缓存的存在使得数据局部性和并行性之间存在固有的权衡关系,并行分解应用程序会影响各线程的数据访问模式,而改善局部性的转换又会限制并行性的提取。
目前,虽然有一些自动调优的研究取得了一定的成功,但在考虑多核架构中并行性和数据局部性参数的搜索空间方面仍存在不足。部分自动调优工作仅关注单维问题分解,未综合考虑数据局部性;少数考虑了并行性粒度和数据局部性的工作,在搜索空间的探索上也是正交进行的,未考虑搜索维度之间的相互作用。
1.2 解决方案
本文采用系统的方法来表征和探索影响多线程应用程序中数据局部性和并行性的转换参数搜索空间。通过考虑问题分解的形状和大小,可以捕捉局部性和并行性之间的复杂相互作用。具体来说,本文确定了关键的调优参数,并提供了一种自动机制,将这些参数暴露给搜索工具。
一个简单的示例可以说明这种
超级会员免费看
订阅专栏 解锁全文
1499

被折叠的 条评论
为什么被折叠?



