У меня есть функция многократного использования в некотором коде 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
}
Пока я могу заставить это работать только при наличии функции дважды:явно для устройства и один раз для хоста.Есть ли лучший способ?