在BLIS框架中支持混合数据类型的矩阵乘法

摘要:在BLIS框架的通用矩阵乘法(GEMM)操作中实现混合数据类型支持的问题。其中每个矩阵操作数A、B和C可以存储为单精度或双精度的实数或复数值。讨论中还包括了允许计算在与A或B的存储精度不同的精度上进行的复杂性因素。我们首先将问题分解为大多数正交维度,分别考虑混合域和混合精度的混合。通过枚举情况并描述每个实现方法,绘制出在实数或复数域中存储的矩阵操作数的所有组合的支持情况。通过在计算的关键阶段(如打包和/或累加)对矩阵进行强制类型转换,支持在存储和计算精度的所有组合。还记录了几种可选的优化方案。在56核Marvell ThunderX2和52核Intel Xeon Platinum上收集的性能结果表明,大部分高性能得到了保留,只有从不可避免的类型转换指令中产生了适度的减速。混合数据类型的实现证实了避免组合无法处理性的特性,该框架仅依赖两个汇编微内核来实现128种数据类型的组合。

作者:Field G. Van Zee, Devangi N. Parikh, Robert A. van de Geijn

论文ID:1901.06015

分类:Mathematical Software

分类简称:cs.MS

提交时间:2019-05-03

PDF 下载: 英文版 中文版pdf翻译中