如何访问 CUDA 中的稀疏张量核心功能?

whn*_*whn 2 cuda gpu nvidia cuda-wmma

张量核心可以通过 CUDA 中的 WMMA 接口以编程方式访问(请参阅https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#wmmahttps://developer.nvidia.com/博客/programming-tensor-cores-cuda-9/)。最近,在 Ampere 一代卡中,Nvidia 宣布能够使用稀疏矩阵执行稀疏张量运算,如下所示:https ://developer.nvidia.com/blog/acceleating-inference-with-sparsity-using-ampere-和-tensorrt/

所呈现的格式似乎采用元素对及其在四个元素段(2 位索引)内的顺序。然而,查看wmma 文档,我找不到任何提及这一点的内容,也找不到如何访问这些特殊的张量核心操作。AFAICT 的该功能的公告页面也没有说明这一点。

如何访问 cuda 中的稀疏张量核心功能?

小智 5

您问题中的博客文章链接到以下论文:\n加速稀疏深度神经网络https://arxiv.org/pdf/2104.08378.pdf

\n

第 3.2 节说

\n
\n

应用程序\xe2\x80\x99 负责确保第一个操作数是以压缩的2:4 格式存储的矩阵。cuSPARSELt 和其他库提供用于压缩和稀疏数学运算的 API,而从版本 8.0 开始,TensorRT\nSDK 自动执行 2:4 稀疏权重的这些函数。对于 16 位 (FP16/BF16) 和 8b 整数格式,NVIDIA 库要求稀疏矩阵乘法的输入维度分别为 16 和 32 的倍数。

\n
\n

可以使用 ptx 手动执行稀疏张量操作mma.sp,这在 ptx 文档第 9.7.13.5 节中进行了解释:https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-instructions -对于稀疏MMA

\n