2010-12-03 2 views
7

Ceci est une question assez simple, mais googling ne semble pas avoir la réponse, donc. Ce que je veux savoir, c'est que si j'ai deux cartes gpu (identiques) capables d'exécuter cuda, est-ce que mon noyau peut couvrir ces cartes? Ou est-ce lié à une carte ou à l'autre? C'est à dire. Cuda est présenté avec l'ensemble des cœurs gpu disponibles, ou seulement ceux sur la carte sur laquelle il est exécuté.Est-il possible d'exécuter un noyau cuda sur plusieurs gpus

Si oui, y at-il quelque chose de spécial que je dois savoir pour y arriver et y a-t-il des exemples au-delà du cuda sdk?

La langue cible est bien sûr C/C++.

Merci d'avance.

Répondre

4

Un seul lancement de noyau CUDA est lié à un seul GPU. Afin d'utiliser plusieurs GPU, plusieurs lancements de noyau seront nécessaires.

L'API d'exécution du périphérique cuda focuses on whichever device is selected. Tout lancement du noyau donné sera lancé sur quel appareil a été le plus récemment sélectionné à l'aide cudaSetDevice()

Exemples de programmation multi-GPU sont données dans les échantillons de cuda simple multi-gpu with P2P et simple multi-gpu

Questions connexes