A quoi sert un device_vector en CUDA vu que l'on ne peut pas l'utiliser dans le GPU ?
En faite pour passer mon objet sur le GPU j'ai voulu voulais faire une structure contenant des vecteurs de vecteurs mais en cuda ON PEUT PAS imbriquer des vecteurs ensuite je suis passer aux pointeurs en calculant l'adresse de l'élément que je recherche depuis celle de mon pointeur mais dans une structure ON PEUT PAS copier de valeur dans le pointeur donc il devient inutilisable. Du coup je me suis dis que je j'allais utiliser un vecteur comme tableau mais là non plus ON PEUT PAS car les device_vector de cuda ne peuvent pas être appeler dans le code du processeur.
Du coup la SEULE SOLUTION que j'ai trouvé c'est de passer par un seul pointeur puis j'alloue un gros bloc mémoire avec cudamalloc() et j'utilise des fonctions pour accéder aux valeurs que je souhaite.
Je trouve ça hyper compliquer pour pas grand-chose mais si c'était que ça ... Le gros problème c'est que pour accéder à mes variables je dois passer par des calculs avec des additions et multiplications et j'ai peur que cela ralentisse mon programme, le but étant d'être rapide sinon je n'utiliserais pas la programmation GPU.
Quelqu'un aurait une meilleur solution s'il vous plaît ?
PS : Ça commence à m'énerver grave ce truc.
Partager