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
17497
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
602
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
17497
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
602
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