printf la fonction ne fonctionne pas en OpenCL noyau
Salut, j'ai essayer de déboguer OpenCL code du noyau sur PS3. Voici le code:
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
int offset() {
return 'A' - 'a';
}
__kernel void tKernel(__global unsigned char *in, __global unsigned char *out) {
size_t i;
printf(“var”);
for (i = 0; i < 10; i++)
out[i] = in[i] + offset();
}
Dans IBM OpenCL_guide.pdf dans la section 4.3.3 de la page 18, il y a décrire le débogage du noyau avec printf méthode.
J'ai donc ajouter la fonction printf pour mon noyau et d'essayer de le tester. Mais OpenCL compiler m'a donné ce message d'erreur:
"IBM_OpenCL_kernel.cl", ligne 9.15: 1506-766 (S) Le caractère universel de nom "?" n'est pas dans la plage autorisée pour un identificateur.
J'ai aussi exporté variable LD_LIBRARY_PATH. Peut-on avoir ce problème?
je soupçonne que votre devis personnages ne sont pas en ascii...
OriginalL'auteur pierre tautou | 2011-04-25
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas à propos de l'IBM mise en œuvre, mais printf() est une organisation non-standard OpenCL fonction. Sur la plateforme AMD, vous devez activer l'extension par le biais de:
avant de printf() fonctionne. Peut-être une extension doit être activé sur la plate-forme IBM?
(Mise à jour) à Partir de cette page, la possible extension de nom à utiliser et peut être cl_intel_printf, alors essayez:
OriginalL'auteur prunge
Il semble que votre mise en œuvre de la prise en charge d'OpenCL ne prend pas en charge printf, ou peut-être vous êtes à l'aide de matériel de l'appareil au lieu de émulé.
À mon avis, vous ne devriez pas utiliser printf, il n'est pas assez nette de l'outil est de donner des réponses plus complexes en fonction du matériel de problèmes. Essayez d'utiliser argument supplémentaire aka '__globale float* sortie". Remplir l'intérieur du noyau avec quelque chose comme
if (something_happened) { output[get_global_id(0)] = the_value_you_need_to_debug; }
cela vous aidera à diagnostiquer tout problème possible, et cette démarche est indépendante de la plateformeOriginalL'auteur Lu4