B.30. カーネルオブジェクト

B.30.1. clCreateKernel

表B.77 表:clCreateKernel

関数

cl_kernel

clCreateKernel (
    cl_program program,
    const char *kernel_name,
    cl_int *errcode_ret
)

カーネルオブジェクトを生成。

引数

program

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

kernel_name

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

errcode_ret

適切なエラーコ
ードを戻す。
errcode_retが
NULL値の場合、
エラーコードは
戻さない。

成功した場合の戻り値

プログラム オブジェクトの作成 が成功すると、 clCreateKernel は有効な非ゼロのカー ネルオブジェクトを返し errcode_ret に CL_SUCCESS を設定 します。そうでない 場合は NULL を返して errcode_ret に以下 のエラーのうちのひとつ を設定します。

失敗した場合の戻り値

CL_INVALID_ PROGRAM

programが有効な
プログラムオブジェクト
でない場合。

CL_INVALID_ PROGRAM_EXECUTABLE

programに正常に
ビルドされた実行可能
プログラムがない場合。

CL_INVALID_ KERNEL_NAME

kernel_nameが
program内で見つか
らない場合。

CL_INVALID_ KERNEL_ DEFINITION

kernel_nameで指定
した__kernel関数の、
引数や引数の型といっ
た関数定義が、program
がビルドされたすべて
のデバイスで同じで
ない場合。

CL_INVALID_ VALUE

kernel_nameが
NULL値の場合。

CL_OUT_OF_ RESOURCES

デバイス上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

CL_OUT_OF_ HOST_MEMORY

ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

B.30.2. clCreateKernelsInProgram

表B.78 表:clCreateKernelsInProgram

関数
cl_int
clCreateKernelsInProgram (
    cl_program program,
    cl_uint num_kernels,
    cl_kernel *kernels,
    cl_uint *num_kernels_ret
)
program内の全てのカーネル関数のカーネルオブジェクトを生成。

実行可能プログラムが
正常に生成された全て
のデバイスにおいて関
数定義が異なるカーネル
関数のカーネルオブジェ
クトは生成しません。
 引数
program
正常にビルドが行われ
た有効なプログラムオ
ブジェクトを指定。
num_kernels
kernelsが指すメモ
リのサイズをcl_kernel
エントリの数として指定。
kernels
program内のカーネル
についてのカーネルオ
ブジェクトが返される
バッファ。

NULLを指定した場合は無視。
kernelsがNULLでない
場合、num_kernelsの
値はprogram内のカーネル
の数と同じかそれより大
きくなる必要がある。
num_kernels_
ret
program内のカーネル
の数を戻す。NULLを指定
した場合は無視。
 成功した場合の戻り値
 CL_SUCCESS
 失敗した場合の戻り値
CL_INVALID_PROGRAM
programが有効なプログラ
ムオブジェクトでない場合。
CL_INVALID_
PROGRAM_
EXECUTABLE
programに、どのデバイス
も正常にビルドされた実行
可能プログラムがない場合。
CL_INVALID_
VALUE
kernelsがNULLでなく
num_kernelsの値が
program内のカーネルの
数より小さい場合。
CL_OUT_OF_
RESOURCES
デバイス上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。
CL_OUT_OF_
HOST_MEMORY
ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

B.30.3. clRetainKernel

表B.79 表:clRetainKernel

関数

cl_int

clRetainKernel
(
    cl_kernel kernel
)

kernelの参照 カウントをインクリメント。

成功した場合の戻り値

CL_SUCCESS

失敗した場合の戻り値

CL_INVALID_ KERNEL

kernelが有効なカーネ
ルオブジェクトでない場合。

CL_OUT_OF_ RESOURCES

デバイス上のOpenCL
実装が必要とするリソース
確保に失敗した場合。

CL_OUT_OF_ HOST_MEMORY

ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

B.30.4. clReleaseKernel

表B.80 表:clReleaseKernel

関数

cl_int

clReleaseKernel (cl_kernel kernel)

kernelの参照カウントをデクリメント。

成功した場合の戻り値

CL_SUCCESS

失敗した場合の戻り値

CL_INVALID_ KERNEL

kernelが有効な
カーネルオブジェクト
でない場合。

CL_OUT_OF_ RESOURCES

デバイス上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

CL_OUT_OF_ HOST_MEMORY

ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

Copyright 2018-2019, by Masaki Komatsu