Dot-product CUDA, résultats incorrects

Résolu
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 7 mai 2014 à 02:03
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 8 mai 2014 à 14:04
Bonjour,

J'ai développé un début de bibliothèque Mathématique Python (plutôt à titre de tests pour le moment) mais je bute sur un problème étrange.

Le code est disponible ici : https://github.com/dubzzz/cuda-mathmodule-for-python

Mon script de tests semble fonctionner parfaitement pour des vecteurs de tailles conséquentes (>256) mais peut renvoyer des résultats incohérents pour de petits tableaux (10 par exemple). Bien qu'ayant essayé de trouver d'où provenait exactement le problème, je suis toujours dans l'incapacité de trouver un fix permettant de le résoudre.

Merci d'avance pour vos réponse.
Bien cordialement,
Nicolas DUBIEN

5 réponses

Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
7 mai 2014 à 07:43
Déplacé vers la catégorie Python
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
7 mai 2014 à 12:22
Euhh, CUDA c'est en C/C++.
Le bug est côté C/C++ et non Python, merci de le remettre dans la bonne catégorie.
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
7 mai 2014 à 14:58
Au temps pour moi, un autre modo qui passait par là s'en est chargé.
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
7 mai 2014 à 15:00
Pas de problèmes, j'aurais pu être plus précis et mettre plus explicitement C/C++ ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
8 mai 2014 à 14:04
Je crois avoir trouvé la raison de mon problème.

Lors d'un produit vectoriel avec moins de MAX_THREADS membres, je faisais un return pour ceux qui ne nécessitaient pas de traitement particulier (en dehors des bornes) et un __syncthreads() pour les autres.
Dans les deux cas, je procédais à une initialisation du cache. Cependant contrairement à ce que je pouvais penser __syncthreads() n'attendait pas l'appel à return, d'où le problème de valeur évoqué.
0
Rejoignez-nous