~~NOTOC~~
====== clCreateKernel ======
Erzeugt ein Kernel Objekt aus einem Programm-Objekt.
===== Signatur =====
cl_kernel clCreateKernel ( cl_program program,
const char *kernel_name,
cl_int *errcode_ret)
===== Parameter =====
**prorgam:** Programm-Objekt mit erfolgreich gebauter Executable
**kernel_name:** Ein Funktionsname in dem Programm, welcher mit dem ''__kernel''-Qualifier deklariert wurde.
**errcode_ret:** Gibt den entsprechenden Fehlercode zurück. Wenn das Argument NULL ist, wird kein Fehlercode zurückgegeben. Mögliche Fehlercodes:
^ Wert ^ Beschreibung ^
| CL_SUCCESS | Die Funktion wurde erfolgreich ausgeführt und liefert ein Kernel-Objekt zurück, was nicht 0 ist. |
| CL_INVALID_PROGRAM | //program// ist kein gültiges Programm |
| CL_INVALID_PROGRAM_EXECUTABLE | Es gibt kein erfolgreich gebautes Executable für das Programm |
| CL_INVALID_KERNEL_NAME | //kernel_name// ist nicht gefunden worden in dem Programm |
| CL_INVALID_KERNEL_DEFINITION | die Argumenttypen der Argumente der Kernel-Funktion für verschiedene Devices (für die die Executable gebaut wurde) sind nicht gleich. |
| CL_INVALID_VALUE | //kernel_name// ist NULL |
| CL_OUT_OF_RESOURCES | Es ist ein Fehler beim Reservieren von Speicher aufgetreten, der für die OpenCL-Implementation auf dem Gerät gebraucht wird. |
| CL_OUT_OF_HOST_MEMORY | Es ist ein Fehler beim Reservieren von Speicher aufgetreten, der für die OpenCL-Implementation auf dem Hostprozressor gebraucht wird. |
===== Rückgabewert =====
Kernel-Objekt
===== Hinweise =====
Ein Kernel ist eine Funktion, die in einem Programm deklariert wurde. Eine Funktion wird durch den ''__kernel''-Qualifier zum Kernel. Ein Kernel-Objekt schließt die spezifizierte ''__kernel''-Funktion ein und die Werte der Argumente die beim Aufruf der Kernel-Funktion verwendet werden sollen ein.
===== Beispiel =====
// program=clCreateProgramWithSource(...)
// clBuildProgram(program,...)
int ret=0;
cl_kernel kernel = clCreateKernel(program, "vector_add", &ret);