2010-10-20 5 views
1

Je voulais juste vous demander si quelqu'un peut me donner une idée de ce qu'il faut faire attention en utilisant plusieurs noyaux simples les uns après les autres. Puis-je utiliser le même CommandQueue?Plusieurs noyaux OpenCl

Est-ce que je peux juste courir plusieurs fois clCreateProgramWithSource + cl_program avec un différent cl_program? Qu'ai-je oublié?

Merci!

Répondre

9

Vous pouvez créer et compiler plusieurs programmes (et en créer des objets noyau), ou vous pouvez mettre tous les noyaux dans le même programme (clCreateProgramWithSource prend plusieurs chaînes après tout) et créer tous vos noyaux à partir de celui-ci. L'un ou l'autre devrait fonctionner correctement en utilisant le même CommandQueue. Utiliser plus d'un CommandQueue pour exécuter des noyaux qui devraient s'exécuter en série sur le même périphérique n'est pas une bonne idée, car dans ce cas, vous devez attendre manuellement la fin de l'événement au lieu de mettre en file d'attente asynchrone tous les noyaux. certaines opérations doivent s'exécuter en parallèle sur le périphérique et l'hôte, donc attendre au dernier moment est généralement plus rapide et plus facile).

Questions connexes