我必须使用 OpenACC 指令实现我在 CUDA-C 中已有的功能(我必须进行比较)。在原始代码中有 cubasSgemv 调用,有什么方法可以在 openacc 下使用 cublas 库?
问问题
602 次
1 回答
1
是的,您可以使用该host_data
构造来执行此操作。下面是如何从 OpenACC 调用 cublasSaxpy 的示例:
#pragma acc data create(x[0:n]) copyout(y[0:n])
{
#pragma acc kernels
{
for( i = 0; i < n; i++)
{
x[i] = 1.0f;
y[i] = 0.0f;
}
}
#pragma acc host_data use_device(x,y)
{
cublasSaxpy(n, 2.0, x, 1, y, 1);
}
}
我在几个月前写的一篇关于 OpenACC 互操作性的文章中还有其他示例。您可以在http://www.pgroup.com/lit/articles/insider/v5n2a2.htm找到它。
于 2014-02-04T03:33:03.170 回答