9.18. カーネルオブジェクト

kernel関数はプログラム内で宣言された関数です。kernel関数は、__kernel修飾子で識別されます。カーネルオブジェクトはプログラム内で宣言されたkernel関数の実行の際に使う引数の値をカプセル化するために必要となります。

9.18.1. clCreateKernel

clCreateKernel関数はカーネルオブジェクトを生成します。

注記

詳しくは「表:clCreateKernel」(表B.77「表:clCreateKernel」)を参照ください。

cl_kernel org.jocl.CL.clCreateKernel(
    cl_program program, //(1)
    String kernel_name, //(2)
    int[] errcode_ret) //(3)

(1)

正常にビルドが行われた有効なプログラムオブジェクトを指定。

(2)

プログラム内で__kernel修飾子をつけて宣言された関数の関数名。

(3)

適切なエラーコードを戻す。

9.18.2. clCreateKernelsInProgram

clCreateKernelsInProgram関数はprogram内の全てのカーネル関数のカーネルオブジェクトを生成します。

実行可能プログラムが正常に生成された全てのデバイスにおいて関数定義が異なるカーネル関数のカーネルオブジェクトは生成しません。

注記

詳しくは「表:clCreateKernelsInProgram」(表B.78「表:clCreateKernelsInProgram」)を参照ください。

int org.jocl.CL.clCreateKernelsInProgram(
    cl_program program, //(1)
    int num_kernels, //(2)
    cl_kernel[] kernels, //(3)
    int[] num_kernels_ret) //(4)

(1)

正常にビルドが行われた有効なプログラムオブジェクトを指定。

(2)

kernelsが指すメモリのサイズをcl_kernelエントリの数として指定。

(3)

program内のカーネルについてのカーネルオブジェクトが返されるバッファ。

(4)

program内のカーネルの数を戻す。

9.18.3. clRetainKernel

clRetainKernel関数はkernelの参照カウントをインクリメント。

注記

詳しくは「表:clRetainKernel」(表B.79「表:clRetainKernel」)を参照ください。

int org.jocl.CL.clRetainKernel(
    cl_kernel kernel) //(1)

(1)

カーネルオブジェクトを指定。

9.18.4. clReleaseKernel

clReleaseKernel関数はkernelの参照カウントをデクリメントします。

注記

詳しくは「表:clReleaseKernel」(表B.80「表:clReleaseKernel」)を参照ください。

int org.jocl.CL.clReleaseKernel(
    cl_kernel kernel) //(1)

(1)

カーネルオブジェクトを指定。

Copyright 2018-2019, by Masaki Komatsu