我正在使用OpenACC在C ++中进行稀疏矩阵计算。
我需要在OpenACC区域内使用矩阵运算。
是否有与OpenACC兼容的稀疏矩阵库?
我已经习惯了Eigen,但是除非我手动修改源代码,否则它似乎与OpenACC不兼容,这听起来不是一个好主意...
最佳答案
如果您以NVIDIA GPU为目标,则PGI的OpenACC实现可与cuSparse互操作,这意味着您可以在库调用和OpenACC代码之间共享数据。假设您正在使用PGI,可以在$ PGI / linux86-64 / 2016 / examples / CUDA-Libraries / cuSPARSE /中找到示例。请注意,cuSPARSE没有设备端例程,必须从主机调用。但是,可以通过“ host_data”指令将OpenACC管理的设备数据传递到cuSPARSE例程。
cuBLAS确实具有可在OpenACC计算区域中使用的设备例程。当然,这些没有针对稀疏矩阵运算进行调整。
关于c++ - OpenACC-稀疏矩阵库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43397506/