arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1809.09175cs.MS
收藏

新兴计算架构上的稀疏张量分解软件

Software for Sparse Tensor Decomposition on Emerging Computing Architectures

Eric Phipps, Tamara G. Kolda

摘要:

在本文中,我们开发了用于分解稀疏张量的软件,该软件可移植到各种多核,众核和GPU计算架构上并具有高性能。其结果是一个单一的代码,其性能匹配优化的特定于体系结构的实现。便携式方法的关键是确定可以以不同方式映射到不同架构的多个级别的并行性,我们解释了如何为矩阵化张量乘以Khatri-Rao乘积(MTTKRP)做到这一点,这是规范polyadic张量分解中的关键内核。我们的实现利用了Kokkos框架,该框架使单个代码能够在多个架构中实现高性能,这些架构在如何实现细粒度并行方面有所不同。我们还介绍了一个新的可移植的线程本地数组,我们称之为编译时多态数组的构造。我们的方法和实现的细节不仅对调整张量计算感兴趣,而且还为开发其他可移植的高性能代码提供了路线图。作为优化性能的最后一步,我们修改了MTTKRP算法本身,对张量非零进行置换遍历,以减少原子写入争用。我们在16核和68核英特尔CPU以及K80和P100 NVIDIA GPU上测试了我们实现的性能,表明我们与最先进的特定于架构的代码相比具有竞争力,同时具有能够在各种架构上运行的优势。

英文摘要:

In this paper, we develop software for decomposing sparse tensors that is portable to and performant on a variety of multicore, manycore, and GPU computing architectures. The result is a single code whose performance matches optimized architecture-specific implementations. The key to a portable approach is to determine multiple levels of parallelism that can be mapped in different ways to different architectures, and we explain how to do this for the matricized tensor times Khatri-Rao product (MTTKRP) which is the key kernel in canonical polyadic tensor decomposition. Our implementation leverages the Kokkos framework, which enables a single code to achieve high performance across multiple architectures that differ in how they approach fine-grained parallelism. We also introduce a new construct for portable thread-local arrays, which we call compile-time polymorphic arrays. Not only are the specifics of our approaches and implementation interesting for tuning tensor computations, but they also provide a roadmap for developing other portable high-performance codes. As a last step in optimizing performance, we modify the MTTKRP algorithm itself to do a permuted traversal of tensor nonzeros to reduce atomic-write contention. We test the performance of our implementation on 16- and 68-core Intel CPUs and the K80 and P100 NVIDIA GPUs, showing that we are competitive with state-of-the-art architecture-specific codes while having the advantage of being able to run on a variety of architectures.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑