Ho una funzione riutilizzabile in alcuni codici CUDA che devono essere richiamati dal dispositivo e dall'host. C'è un qualificatore appropriato per questo?Funzione CUDA in grado di chiamare dal dispositivo o dall'host
ad es. qual è la definizione corretta per func1 in questo caso:
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
}
Finora posso solo farlo funzionare avendo la funzione di due volte: una volta in modo esplicito per il dispositivo e una volta per l'host. C'è un modo migliore?