【发布时间】:2019-07-01 23:06:27
【问题描述】:
是否可以从routine 指令中调用cuSPARSE 库。我在主机上有一个双 for 循环,它调用在 GPU 上运行的 cuSPARSE 函数,我假设将 for 循环放在设备上会有助于提高性能。
for ( int j = 0; j < nxChunk; j++ )
{
for ( int i = 0; i < nyChunk; i++ )
{
#pragma acc parallel
setDiag( eig );
triDiagCusparse( dl, ds, du, tmpMGReal );
}
}
感谢您的帮助。
【问题讨论】:
-
您的代码调用的 cusparse 函数不在 GPU 上运行。它们在主机上运行并在内部启动内核。所以没有。
-
您显示的代码中没有
routine指令。但无论如何,只要同意@talonmies,cusparse 函数不能从 CUDA 设备代码调用,也不能从 OpenACC 加速器区域调用,或者当加速器区域以 CUDA GPU 为目标时,它们也不能从加速器区域调用的任何 OpenACC 例程调用。目前。 -
这也是我的理解,但希望得到更多专家的确认