PyCUDA; la façon de répartir la charge de travail à plusieurs périphériques dynamiquement

StackOverflow https://stackoverflow.com/questions/5810401

Question

PyCUDA, malgré tous ses défauts, a généralement de très bons exemples fournis avec elle / téléchargeables à partir du wiki. Mais je ne pouvais pas trouver quoi que ce soit dans les exemples ou dans la documentation (ou une recherche google rapide) démontrant la façon d'allouer PyCUDA dyanmically les charges de travail à plusieurs appareils.

Quelqu'un peut-il me allusion soit vers ce que je devrais faire ou me donner des exemples?

Une idée qui a surgi dans ma tête en utilisant multitraitement, générant un pool de N processus, chacun lié à un appareil, et puis quand la classe est appelée (j'ai toutes mes fonctions gpu dans une catégorie distincte, sans doute pas le meilleur idée, mais cela fonctionne) il les multiprocesses de la ronde préliminaire. Comment est-ce bon / retardé une idée?

PS Ma machine dev est 1 GPU et ma machine de test dans 4 GPU, donc j'ai besoin toute solution pour pouvoir faire face à un certain nombre de dynamique des périphériques (il fait aussi pas d'aide qu'ils différentes capacités de calcul, mais des thats vie)

Était-ce utile?

La solution

Pycuda n'a pas eu de soutien multi-GPU intrinsèque car CUDA a pas eu de soutien multi-GPU intrinsèque. Cela va changer dans CUDA 4.0 parce que l'API a été modifiée pour être thread-safe et conscient multi-GPU. Mais Pycuda n'a pas encore que le soutien AFAIK. Même quand il est, chaque appareil doit être géré de façon explicite, et la charge de travail divisé par vous. Il n'y a pas de distribution de la charge de travail automatique ou quelque chose comme ça.

Pour multi-GPU, j'ai normalement utilisé mpi4py. Vous pouvez éventuellement utiliser un système de python multithread, chaque fil l'ouverture d'un autre contexte dans Pycuda. Ce qui fonctionne le mieux probablement dépendra de la quantité de communication est nécessaire entre les périphériques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top