新兴计算架构上的稀疏张量分解软件
摘要:软件的开发是为了将稀疏张量分解的过程在多核、众核和GPU计算架构上实现便携性和性能。其结果是一个单一的代码,其性能与经过优化的特定架构实现相媲美。实现便携性的关键是确定可以在不同架构上以不同方式映射的多个并行级别,并且我们解释了如何对经典分解中的关键核心- 马特里采时域Khatri-Rao乘积(MTTKRP)进行此操作。我们的实现利用了Kokkos框架,该框架使得单一代码可以在多种以不同方法处理细粒度并行性的架构上获得高性能。我们还引入了一个用于便携式线程本地数组的新构造,称之为编译时多态数组。我们的方法和实现不仅对于调整张量计算非常有趣,而且还为开发其他具有便携式高性能代码的路线图提供了参考。在优化性能的最后一步中,我们修改了MTTKRP算法本身,以进行乘积排列遍历,从而减少原子写入争用。我们在16个和68个核的Intel CPU以及K80和P100的NVIDIA GPU上测试了我们实现的性能,表明我们在与最先进的特定架构代码竞争时具有运行在多种架构上的优势。
作者:Eric Phipps and Tamara G. Kolda
论文ID:1809.09175
分类:Mathematical Software
分类简称:cs.MS
提交时间:2019-07-30