C++ 设备或主机均可调用CUDA函数
我在一些CUDA代码中有一个可重用的函数,需要从设备和主机调用。是否有合适的限定符 e、 g.在这种情况下,func1的正确定义是什么:C++ 设备或主机均可调用CUDA函数,c++,function,scope,cuda,C++,Function,Scope,Cuda,我在一些CUDA代码中有一个可重用的函数,需要从设备和主机调用。是否有合适的限定符 e、 g.在这种情况下,func1的正确定义是什么: int func1 (int a, int b) { return a+b; } __global__ devicecode (float *A) { int i = blockDim.x * blockIdx.x + threadIdx.x; A[i] = func1(i,i); } void main() { // No
int func1 (int a, int b) {
return a+b;
}
__global__ devicecode (float *A) {
int i = blockDim.x * blockIdx.x + threadIdx.x;
A[i] = func1(i,i);
}
void main() {
// Normal cuda memory set-up
// Call func1 from inside main:
int j = func1(2,4)
// Normal cuda memory copy / program run / retrieve data
}
到目前为止,我只能通过两次使用该函数来实现这一点:一次显式地用于设备,一次用于主机。有更好的方法吗?来自CUDA编程指南:
\uuuu设备\uuuu
和\uuuu主机\uuuu
限定符可以一起使用,但是在
在这种情况下,将为主机和设备编译函数