Bibliothèque dynamique CUDA / C
Bonjour à toutes et tous,
Dans le cadre de mon stage je travaille sur les cartes graphiques et je dois bien séparé les composants du projet.
Une partie Cuda, une partie C et enfin une partie Matlab ... c'est comme ca je suis obligé.... et c'est la m***e ... enfin bref.
Je voudrais donc créer une bibliotheque dynamique regroupant mes fonctions pour le traitement graphique (cuda) : déjà là je sais pas si c'est mieux de créer une bibliothèque directement avec nvcc ou passer par du c ou c++ pour faire une "surcouche" (moi j'ai fais diectement avec nvcc).
Ensuite, pour compliquer un peu, il faut que je créé une nouvelle bibliothèque dynamique (.so) qui est du code C utilisant la bibliothèque faite pour cuda.
J'ai donc une bib pour "linker" Cuda à C qui est utilisée par une autre bib qui "linke" C à Matlab ...
En gros mon problème c'est que je ne sais pas si c'est mieux de faire une bib pour cuda directement avec nvcc ou de passer par une "encapsulation" C/C++, ET SURTOUT je n'arrive pas à compiler le fichier C utilisant la bib précédemment créée ...
Petit récap : - hello.cu => en faire une bib soit directement, soit en passant par du C/C++
- hello.c => utilise les fonctions cuda de la bib précéndente ET doit créer une nouvelle bib que j'utilise pour Matlab
Si par chance quelqu'un a compris ce que je raconte et qui est gère la compilation ... merci de bien vouloir m'aider !
Pour info, pour compiler les fonctions cuda j'ai fais :
Code:
nvcc --shared -o libhello.so hello.cu --compiler-options '-fPIC'
ca marche, du moins sa créer le .so
Problème résolu ... normalement
Le problème a été résolu ...
La solution était déjà trouvé mais le contexte de compilation (2 serveurs différents sur le réseau mais ayant les mêmes bibliothèques) faisait que l'édition des liens n'était pas correcte.
J'ai tout fait sur le même serveur et ça l'air de marcher ...
L'utilisation de
est nécessaire pour ce que ca interresse ...