Je l'ai utilisé:manipulation de pointeur de périphérique CUDA
float *devptr;
//...
cudaMalloc(&devptr, sizeofarray);
cudaMemcpy(devptr, hostptr, sizeofarray, cudaMemcpyHostToDevice);
dans CUDA C pour allouer et remplir un tableau. Maintenant, je suis en train d'exécuter un noyau cuda, .: par exemple
__global__ void kernelname(float *ptr)
{
//...
}
dans ce tableau, mais avec une valeur de décalage. en C/C++, il serait someting comme ceci:
kernelname<<<dimGrid, dimBlock>>>(devptr+offset);
Cependant, cela ne semble pas fonctionner.
Existe-t-il un moyen de le faire sans envoyer la valeur de décalage au noyau dans un argument séparé et utiliser ce décalage dans le code du noyau? Des idées sur la façon de faire cela?
Merci pour la réponse. Je sais que ce n'est pas un décalage d'octets, cependant, je ne sais pas quelle est la taille d'un mot.J'ajoutais simplement le numéro d'index dont j'avais besoin du pointeur, comme je le fais en C++. Est-ce exact? – pmcr
Peut-être que l'édition rend les choses un peu plus claires? – talonmies
Nous vous remercions de votre temps. C'était très utile. Ça marche maintenant. C'était une erreur stupide. Je suis sincèrement désolé. – pmcr