我正在使用 CUSPARSE 函数来执行稀疏矩阵向量/矩阵矩阵乘法。
稀疏矩阵以 CSR 格式存储。在 Visual Profiler 下分析应用程序时,我注意到每次调用 cusparse(S/D)csrmv 或 cusparse(S/D)csrmm 都有一个内存分配/memset/copy。
通过查看分析器中的内核名称,看起来 CUSPARSE 在每次调用时都会将矩阵从 CSR 格式转换为 HYB 格式,这在我的情况下是浪费时间,因为我可以在启动计算之前以正确的格式创建矩阵。
虽然 CUSPARSE 有 HYB 版本的矩阵向量乘法 (hybmv),但它没有对应的矩阵矩阵乘法版本,看起来只支持 CSR 格式。
在 CUSPARSE 中进行矩阵-矩阵 muls 时是否可以避免矩阵转换?