Frage

Wenn ich so etwas habe wie:

err = clEnqueueReadBuffer(cmdQueue, output, CL_TRUE, 0, sizeof(float) * data_sz, &results, 0, NULL, NULL);

Ich würde gerne tun:

if (err != CL_SUCCESS){
    perror("Read Failed!");
}

Aber die Fehlerkonstanten wie "cl_host_out_of_memory" und dergleichen sind (verständlicherweise) Perror () nicht bekannt.

Ich könnte die mit OpenCL verbundenen .h -Dateien umgehen, aber das ist keine ideale Lösung. Ich bin offen für andere bequeme Möglichkeiten, die Fehlerzahlen aufzuspüren. Ich bin auf OSX Snow Leopard (einschließlich dessen nur für den Fall, aber ich denke nicht, dass es relevant ist)

War es hilfreich?

Lösung

Wenn Sie das Nvidia opencl SDK haben, können Sie die verwenden oclErrorString() Funktion von Oclutils.

Andere Tipps

Es gibt derzeit keine. Am Ende schrieb ich meinen eigenen, im Stil von gluErrorString(). Ich habe einfach alle eingefügt cl_error Codiert in eine Datei und verarbeitete jede Zeile in EMACs, um sie in eine Reihe von Fällen innerhalb einer Switch -Anweisung (um distanzierte Einträge zu ermöglichen), die konstante Zeichenfolgen zurückgeben. Es war ziemlich einfach und sehr nützlich. Ich kann es irgendwo posten, wenn Sie möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top