J'ai une fonction réutilisable dans un code CUDA qui doit être appelée à la fois par le périphérique et par l'hôte. Y a-t-il un qualificatif approprié pour cela?Fonction CUDA pouvant être appelée par le périphérique ou l'hôte
par exemple. quelle est la définition correcte pour func1 dans ce cas:
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
}
Jusqu'à présent, je ne peut obtenir que cela fonctionne en ayant la fonction deux fois: une fois explicitement l'appareil et une fois pour l'hôte. Y a-t-il un meilleur moyen?