Je souhaite passer un contexte Cuda entre deux processus Linux indépendants (en utilisant les files d'attente de messages POSIX, que j'ai déjà configurées).Est-il possible de partager un contexte Cuda entre des applications?
En utilisant cuCtxPopCurrent()
et cuCtxPushCurrent()
, je peux obtenir le pointeur de contexte, mais ce pointeur est référencé dans la mémoire du processus dans lequel j'appelle la fonction, et le passer entre les processus est sans signification.
Je suis à la recherche d'autres solutions. Mes idées à ce jour sont:
- Essayez de copier en profondeur la structure
CUcontext
, puis passez la copie. - Voyez si je peux trouver une solution de mémoire partagée où tous mes pointeurs Cuda sont placés là pour que les deux processus puissent y accéder.
- Fusionner les processus en un seul programme.
- Il est possible qu'il y ait un meilleur partage de contexte dans Cuda 4.0, sur lequel je pourrais passer.
Je ne suis pas sûr que l'option (1) soit possible, ni si (2) est disponible ou possible. (3) n'est pas vraiment une option si je veux rendre les choses génériques (c'est dans un shim de piratage). (4) Je vais regarder Cuda 4.0, mais je ne suis pas sûr que ça marchera là non plus.
Merci!
J'ai compris - merci! Je vais devoir trouver comment fusionner mes applications, ou avoir un soin des appels Cuda. –