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

多加速器共享存储器结构的工程布尔矩阵乘法

Engineering Boolean Matrix Multiplication for Multiple-Accelerator Shared-Memory Architectures

Matti Karppa, Petteri Kaski

摘要:

研究布尔代数$(0,1,\vee,\wedge)$上或二元域$(0,1,+,\cdot)$上的二元矩阵的乘法问题。我们为当代多加速器共享内存架构设计高性能开源算法实现,目标是以时间和能源效率扩展到接近可用共享内存容量的输入大小。例如,给定两个太二进制方阵作为输入,我们的实现在大约2100秒内计算布尔乘积(1.0 Pbop/s,3.3 pJ/bop,总计2.1 kWh/产品)和二元产品,(2.4有效Pbop/s,1.5有效pJ/bop,总计0.92 kWh/产品),功率消耗为峰值系统功率(3.5 kW)。我们的贡献是(a)对于二进制乘积,我们使用Karstadt和Schwartz [SPAA '17]的交替基技术来设计用于$2\times 2$块乘法的Strassen递归的新的交替基变体[Numer. Math.13(1969)],(b)构造并行块递归和存储器布局,用于加速器硬件上的合并和寄存器局部化执行,(c)用于特定目标硬件的最内层块乘积的低级工程,以及(d)构造顶层共享存储器实现,以向加速器馈送数据,并针对超出可用加速器的总存储器容量的输入和输出大小来整合结果。

英文摘要:

We study the problem of multiplying two bit matrices with entries either over the Boolean algebra $(0,1,\vee,\wedge)$ or over the binary field $(0,1,+,\cdot)$. We engineer high-performance open-source algorithm implementations for contemporary multiple-accelerator shared-memory architectures, with the objective of time-and-energy-efficient scaling up to input sizes close to the available shared memory capacity. For example, given two terabinary-bit square matrices as input, our implementations compute the Boolean product in approximately 2100 seconds (1.0 Pbop/s at 3.3 pJ/bop for a total of 2.1 kWh/product) and the binary product in less than 950 seconds (2.4 effective Pbop/s at 1.5 effective pJ/bop for a total of 0.92 kWh/product) on an NVIDIA DGX-1 with power consumption at peak system power (3.5 kW). Our contributions are (a) for the binary product, we use alternative-basis techniques of Karstadt and Schwartz [SPAA '17] to design novel alternative-basis variants of Strassen's recurrence for $2\times 2$ block multiplication [Numer. Math. 13 (1969)] that have been optimized for both the number of additions and low working memory, (b) structuring the parallel block recurrences and the memory layout for coalescent and register-localized execution on accelerator hardware, (c) low-level engineering of the innermost block products for the specific target hardware, and (d) structuring the top-level shared-memory implementation to feed the accelerators with data and integrate the results for input and output sizes beyond the aggregate memory capacity of the available accelerators.

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

↑