~~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);