Y a-t-il un chemin à partir d'un noyau (code GPU) pour savoir sur quel périphérique le code est exécuté? Vous pouvez trouver blockIdx, threadIdx, blockDim et gridDim, mais un moyen de trouver l'identifiant de périphérique CUDA?De quel périphérique un noyau cuda s'exécute-t-il?
Pour ceux qui se demandent, je prévois de l'utiliser dans un programme OptiX pour avoir plus de contrôle sur les tampons OptiX.
Vous pouvez certainement découvrir les données dont vous avez besoin sur l'hôte, puis les transmettre au noyau lorsque vous l'appelez. par exemple. 'cudaSetDevice (x); mykernel <<<...> >> (x, ...); ' –
Je suis limité par l'API OptiX qui ne me donne aucun contrôle sur la façon dont le travail est réparti sur plusieurs GPU. Pourtant, je voudrais déterminer quel périphérique le RT_PROGRAM est en cours d'exécution pour des raisons de stockage de mémoire. Par conséquent, je devrais trouver ceci du côté de l'appareil/du noyau, c.-à-d. J'ai besoin d'une fonction qui est __ device __ tagged. – apartridge
Vous pouvez utiliser une variable '__device__' pour stocker l'identifiant de l'appareil, puisque cela est évidemment par périphérique ... – tera