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