我有一段CUDA代码中的可重用函数,需要从设备和主机两端调用。是否有适当的限定符可以使用?
例如,在这种情况下,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() {
// Normal cuda memory set-up
// Call func1 from inside main:
int j = func1(2,4)
// Normal cuda memory copy / program run / retrieve data
}
我目前只能通过两次调用函数来使其在设备和宿主机上分别运行。是否有更好的方式?