Erzeugt ein Kernel Objekt aus einem Programm-Objekt.
cl_kernel clCreateKernel ( cl_program program, const char *kernel_name, cl_int *errcode_ret)
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. | 
Kernel-Objekt
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.
// program=clCreateProgramWithSource(...) // clBuildProgram(program,...) int ret=0; cl_kernel kernel = clCreateKernel(program, "vector_add", &ret);