是否可以在例程指令中调用cuSPARSE库。在调用运行在GPU上的cuSPARSE函数的主机上有一个双for循环,我假设将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 );
}
}谢谢你的帮助。
发布于 2019-02-07 20:32:11
OpenACC加速器区域通常由acc parallel或acc kernels指令描述。可能从加速器区域调用的OpenACC routine指令是为了划定函数或过程。
加速器区域所支持的特性可能因该区域是或将要发生的加速器类型而有所不同。
对于以CUDA GPU为目标的加速器区域,这些区域将由OpenACC编译器转换为CUDA设备代码。cuSPARSE函数仅用于从主机代码调用,而不能从CUDA设备代码调用。因此,它们不能用于以CUDA设备为目标的OpenACC加速器区域(或从加速器区域调用的OpenACC例程)。
https://stackoverflow.com/questions/54579996
复制相似问题