Bonjour,

Afin d'optimiser un projet CUDA je cherche à utiliser la mémoire des textures.

J'ai donc besoin du type texture<float> toto.

Dans les samples CUDA ils déclarent leur texture en variable globale (ils ont juste un .cu, pas de header).

Dans mon projet j'ai, pour la partie qui m'intéresse, des .cuh et des .cu.

Lorsque je déclare mes textures dans les .cu (en dehors des fonctions), la compilation fonctionne. Par contre lorsque je déclare mes textures dans les .cuh, j'obtiens "texture does not name a type", alors que je prends grand soin d'avoir les mêmes include dans mes .cuh que dans le sample cuda ! Je n'ai d'ailleurs aucun include dans mes .cu et cela fonctionne dans les .cu.

Je cherche à les déclarer en global dans mes .cuh, ou même en global dans un fichier "Textures.cuh" car elles peuvent être utilisées par des kernels appartenant à des modules différents.

Auriez vous une idée de mon problème ?

Edit : J'ai également essayé la solution du tutoriel de tcuvelier qui consiste à mettre les textures dans le .cu, et à faire des getters, mais j'obtiens la même erreur (does not name a type) sur la déclaration du getter dans le .cuh.

Merci d'avance,

Cordialement,

Muska17