Comment CUDA attribuer des Identifiants de l'appareil pour les Gpu?

Lorsqu'un ordinateur a plusieurs CUDA compatible Gpu, chaque GPU est affecté à une device ID. Par défaut, les noyaux CUDA exécuter sur device ID 0. Vous pouvez utiliser cudaSetDevice(int device) pour sélectionner un autre périphérique.

Disons que j'ai deux Gpu sur ma machine: une GTX 480 et GTX 670. Comment CUDA décider quel GPU est device ID 0 et dont le GPU est device ID 1?


D'idées pour CUDA peut attribuer des Identifiants de l'appareil (seulement remue-méninges):

  • ordre décroissant de calculer la capacité de
  • Numéro de logement PCI
  • date/heure lorsque le dispositif a été ajouté au système (appareil qui vient d'être ajouté à l'ordinateur est plus un numéro d'identification)

Motivation: je travaille sur quelques HPC algorithmes, et je suis d'analyse comparative et de réglage automatique de plusieurs Gpu. Mon processeur est assez voies PCIe pour lecteur cudaMemcpys à 3 Gpu en pleine largeur de bande. Donc, au lieu de constamment à la permutation de Gpu dans et hors de ma machine, je suis tout simplement l'intention de garder 3 Gpu dans mon ordinateur. J'aimerais être capable de prédire ce qui va se passer quand je ajouter ou de remplacer certains Gpu dans l'ordinateur.

OriginalL'auteur solvingPuzzles | 2012-12-08