中文

NVIDIA GPU 上二维矩阵与三维数组的批处理 Kronecker 积

数学软件 2013-04-29 v1 分布式、并行与集群计算 数值分析

摘要

我们描述了一种在 NVIDIA GPU 上对作为批处理并行处理的多个小二维矩阵和三维数组执行 Kronecker 积操作的接口与实现。该方法适用于 Kronecker 积分量矩阵相同但无矩阵应用中的操作数在批处理中变化的情况。任何批处理 GEMM(通用矩阵乘法)实现(例如我们的 [1] 或 cuBLAS 中的实现)也可用于在 GPU 上执行批处理 Kronecker 积。然而,此处提出的专用实现速度更快且占用内存更少。部分原因在于,基于简单 GEMM 的方法需要额外往返主内存的复制操作。我们专注于尺寸小于或等于 16 的矩阵,因为这是有限元中典型的多项式次数,但该实现可轻松扩展至其他尺寸。在使用 CUDA 5.0 的 NVIDIA Tesla K20c 上处理尺寸为 10 和 16 的矩阵时,单精度实数运算分别达到 143 和 285 GFlop/s。三维数组 Kronecker 积的相应速度分别为 126 和 268 GFlop/s。利用 C++ 模板机制可轻松支持双精度。

关键词

引用

@article{arxiv.1304.7054,
  title  = {Batched Kronecker product for 2-D matrices and 3-D arrays on NVIDIA GPUs},
  author = {Chetan Jhurani},
  journal= {arXiv preprint arXiv:1304.7054},
  year   = {2013}
}