OpenACC - 稀疏矩阵库

OpenACC - Sparse Matrix Library

我在 C++ 中使用 OpenACC 进行稀疏矩阵计算。 我需要在 OpenACC 区域内使用矩阵运算。

是否有与 OpenACC 兼容的稀疏矩阵库?

我用惯了Eigen,但好像和OpenACC不兼容,除非我手动修改源代码,这听起来不是个好主意...

如果您的目标是 NVIDIA GPU,PG​​I 的 OpenACC 实现可与 cuSparse 互操作,这意味着您可以在调用库和 OpenACC 代码之间共享数据。假设您正在使用 PGI,可以在 $PGI/linux86-64/2016/examples/CUDA-Libraries/cuSPARSE/ 中找到示例。请注意,cuSPARSE 没有设备端例程,必须从主机调用。但是,OpenACC 管理的设备数据可以通过 "host_data" 指令传递给 cuSPARSE 例程。

cuBLAS 确实有您可以在 OpenACC 计算区域内使用的设备例程。当然,这些都没有针对稀疏矩阵运算进行调整。