2012-01-29 4 views
0

J'écris des fonctions de débogage/journalisation simples en utilisant le tampon d'anneau dans un morceau de la mémoire globale. Le problème est l'absence de toute fonction similaire à snprintf dans OpenCL. Quelle serait la suggestion? Pour utiliser une implémentation intégrée et étendre la spécification de format pour les types de vecteurs?mise en forme de chaîne dans OpenCL?

(S'il vous plaît ne pas répondre que ops de chaîne sont inefficaces et que OpenCL est conçu pour les calculs, je sais.)

Répondre

1

Certaines implémentations CPU prennent en charge printf etc, de sorte que pourrait aider si votre mise en œuvre ne repose pas sur unsported dimensions du groupe de travail. Lorsque je travaillais avec OpenCL, j'effectuais généralement la vérification du côté hôte, c'est-à-dire implémentais l'algorithme de lecture de tampon, puis réécrivais les données en utilisant une carte 1: 1 des éléments de travail dans le tampon de résultat. Cela rend assez facile à verfiy comme vous savez quel fil a écrit ce qui a donné l'index dans le tampon de résultat. Il peut être judicieux d'initialiser le tampon client avec des données connues (c'est-à-dire de copier un tampon hôte dans le tampon reuslt avant d'exécuter le noyau) pour éviter toute confusion. Je réalise que ce n'est pas une réponse très technique, mais j'espère que cela aide un peu.