基于批量LU分解的矩阵求逆在GPU上的有效实现

LIU Shi-Fang,ZHAO Yong-Hua, HUANG Rong-Feng, YU Tian-Yu, ZHANG Xin-Yin

Journal of Software(2023)

引用 0|浏览0
暂无评分
摘要
给出批量矩阵的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×.
更多
关键词
batched LU decomposition,pivoting,row interchange,batched inversion,delayed-correction,dynamic method
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要