2010-09-29 14 views
2

Je suis nouveau à cuda et graphiques. J'ai eu plusieurs questions sur cuda, quelqu'un espoir aura des réponses appropriées:API Cuda Runtime et questions API de pilote

Ce sont pour l'API du pilote:

- Quelle est la signification d'un contexte de cuda? Quand je lisais le livre cuda c (3.1), j'ai appris qu'il est analogue à un processus dans le processeur. Je ne comprends pas cela, le code hôte réel c devient un processus en CPU et le code de l'appareil devient un code qui est appelé un contexte?

- Il a également dit que les bibliothèques peuvent créer et se joindre à un contexte cuda. Si cela est vrai, pourquoi les bibliothèques ne s'attachent-elles pas toujours à un contexte et s'embarrassent-elles de créer un autre contexte? la même raison pourquoi faire un nouveau processus dans le processeur? Aussi, quel est le sens des bibliothèques dans ce cas ?? bibliothèques hôte ou périphérique? notre code de périphérique sur PTX ou cubin?

- Cuda est-il basé sur la préemption ou la planification? Je veux dire cuda court le contexte jusqu'à ce qu'il soit fait (0 références) ?? puis apparaît la pile ou une sorte de deque est impliqué dans ce cas?

Ce sont pour Cuda C (API d'exécution):

- Si nous utilisons Cuda C quelle est la ligne de buttom du code de l'appareil? Le contexte? Cubin? ...? ou une sorte d'Assemblée GPU quelque peu?

Merci.

Répondre

1

La plupart de vos questions sont traitées dans le CUDA Programming Guide. Vous pouvez trouver des informations supplémentaires sur le CUDA Toolkit sur le site Web du développeur http://developer.nvidia.com/object/cuda_3_2_toolkit_rc.html. En particulier, le guide Best Pratices et le manuel de référence pourraient s'avérer utiles.

Vous pouvez également consulter les exemples de code SDK. Il y a un exemple démontrant l'utilisation de contextes dans CUDA. D'autres exemples sont disponibles au Cuda Zone. Pour répondre plus ou moins à vos questions: Un contexte dans CUDA est comme un processus sur l'hôte dans le sens où tous les pointeurs de périphériques ne sont valides que dans leur contexte associé. La création de contexte est implicite avec l'API Runtime. Il est construit au-dessus de l'API Driver. Il ne devrait pas être nécessaire d'utiliser l'API Driver directement. J'espère que cela aide.

+0

Merci pour vos conseils. J'ai déjà regardé ces références. Il n'y avait pas de vraies réponses, alors je viens de demander ici. Tanx quand même –