国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:刘世芳,赵永华,黄荣锋,于天禹,张馨尹
单位:刘世芳,中国科学院 计算机网络信息中心, 北京 100190;中国科学院大学, 北京 10004911,赵永华,中国科学院 计算机网络信息中心, 北京 10019002,黄荣锋,中国科学院 计算机网络信息中心, 北京 100190;中国科学院大学, 北京 10004903,于天禹,中国科学院 计算机网络信息中心, 北京 100190;中国科学院大学, 北京 10004904,张馨尹,中国科学院 计算机网络信息中心, 北京 100190;中国科学院大学, 北京 10004905
关键词:批量LU分解;选主元;行交换;批量矩阵求逆;延迟修正;动态方法
基金:国家重点研发计划(2020YFB0204802, 2017YFB0202202); 中国科学院战略性先导科技专项(C类)(XDC05000000); 光合基金A类(20210701)
给出批量矩阵的LU分解和批量求逆算法在GPU上实现及优化方法. 针对批量LU分解问题, 分析Left-looking和Right-looking等常用LU分解块算法在GPU上实现时对全局内存的数据读写次数, 针对GPU架构特点, 选择具有较少访存数据量的Left-looking块算法. 在LU分解的选主元过程, 采用适合GPU架构的并行二叉树搜索算法. 此外, 为了降低选主元引起的行交换过程对算法性能的影响, 提出Warp分组行交换和行交换延迟2个优化技术. 针对LU分解后的批量求逆问题, 分析矩阵求逆过程中修正方法, 为了减少修正过程对全局内存的访问, 在批量求逆的GPU实现中采用延迟修正的矩阵求逆块算法. 同时, 为了加快数据读写速度, 采用更多利用寄存器和共享内存的优化方法和减少访存数据量的列交换优化方法. 另外, 为了避免线程的闲置和共享内存等GPU资源浪费, 提出运行时动态GPU资源分配方法, 相较于一次性分配的静资源分配方法性能得到明显提升. 最终, 在TITAN V GPU上, 对10000个规模在33–190之间的随机矩阵进行测试, 测试的数据类型为单精度复数、双精度复数、单精度实数和双精度实数. 所实现的批量LU分解算法的浮点计算性能分别可达到约2 TFLOPS、1.2 TFLOPS、1 TFLOPS、0.67 TFLOPS, 与CUBLAS中的实现相比加速比最高分别达到了约9×、8×、12×、13×, 与MAGMA中的实现相比加速比分别达到了约1.2×–2.5×、1.2×–3.2×、1.1×–3×、1.1×–2.7×. 批量求逆算法的浮点计算性能分别可达到约4 TFLOPS、2 TFLOPS、2.2 TFLOPS、1.2 TFLOPS, 与CUBLAS中的实现相比加速比最高分别达到了约5×、4×、7×、7×, 与MAGMA中的实现相比加速比分别达到了约2×–3×、2×–3×、2.8×–3.4×、1.6×–2×.
来源:2023年第11期
《软件学报》期刊编辑部