printf-Funktion funktioniert nicht in den OpenCL-kernel
Hallo ich Debuggen von OpenCL-kernel-code auf der PS3. Hier ist der 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();
}
In IBM OpenCL_guide.pdf in Abschnitt 4.3.3 auf Seite 18, gibt es beschreiben kernel-debugging mit printf-Methode.
So füge ich die printf-Funktion zu meinem kernel und versuchen, es zu testen. Aber OpenCL kompilieren gab mir diese Fehlermeldung:
"IBM_OpenCL_kernel.cl" - Linie 9.15: 1506-766 (S) Das universal-Zeichen-name "?" ist nicht im zulässigen Bereich für einen Bezeichner.
Ich habe auch exportiert LD_LIBRARY_PATH-variable. Kann jemand dieses problem?
ich vermute, dass dein Zitat-Zeichen nicht ascii...
InformationsquelleAutor pierre tautou | 2011-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, über die IBM-Implementierung, aber printf() ist eine nicht-standard OpenCL-Funktion. Auf der AMD-Plattform, die Sie haben, um die Erweiterung zu aktivieren durch:
bevor printf() arbeiten. Vielleicht eine Erweiterung aktiviert sein muss, um auf die IBM-Plattform auch?
(Update) Von auf dieser Seite, die mögliche Erweiterung name könnte cl_intel_printf, so versuchen:
InformationsquelleAutor prunge
Scheint es, dass Ihre Implementierung von OpenCL nicht unterstützt, printf, oder vielleicht sind Sie mit der hardware-Gerät, anstelle von emulierten.
Meiner Meinung nach sollten Sie nicht verwenden printf überhaupt, ist es nicht scharf genug Werkzeug, Antworten zu geben, mit komplexer hardware-abhängige Probleme. Versuchen Sie es mit zusätzlichen argument aka '__global float* output'. Füllen Sie es in den kernel mit so etwas wie
if (something_happened) { output[get_global_id(0)] = the_value_you_need_to_debug; }
dies wird Ihnen helfen, zu diagnostizieren, mögliche Problem-und dieser Ansatz ist Plattform-unabhängigInformationsquelleAutor Lu4