9.20. カーネルオブジェクト情報の取得

9.20.1. clGetKernelInfo

clGetKernelInfo関数はカーネルオブジェクトについての情報を取得します。

注記

詳しくは「表:clGetKernelInfo」(表B.82「表:clGetKernelInfo」)と「表:cl_kernel_info」(表B.83「表:cl_kernel_info」)を参照ください。

int org.jocl.CL.clGetKernelInfo(
    cl_kernel kernel, //(1)
    int param_name, //(2)
    long param_value_size, //(3)
    Pointer param_value, //(4)
    long[] param_value_size_ret) //(5)

(1)

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

(2)

取得する情報を指定。

(3)

param_valueが指すメモリのサイズをバイトで指定。

(4)

param_nameに指定した情報についての値が戻されるメモリ空間へのポインタを指定。

(5)

param_valueにコピーされるデータの実際のサイズをバイトで戻す。

戻された参照カウントの値はすぐに古くなるものと考えるべき。アプリケーションでの一般的な使用には向かず、メモリリークを検出する等の用途に使うことができる。

9.20.2. cl_kernel_info

注記

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

9.20.3. clGetKernelWorkGroupInfo

clGetKernelWorkGroupInfoはカーネルオブジェクトに関するデバイス特有の情報を取得します。

注記

詳しくは「表:clGetKernelWorkGroupInfo」(表B.84「表:clGetKernelWorkGroupInfo」)と「表:cl_kernel_work_group_info」(表B.85「表:cl_kernel_work_group_info」)を参照ください。

int org.jocl.CL.clGetKernelWorkGroupInfo(
    cl_kernel kernel, //(1)
    cl_device_id device, //(2)
    int param_name, //(3)
    long param_value_size, //(4)
    Pointer param_value, //(5)
    long[] param_value_size_ret) //(6)

(1)

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

(2)

kernelに関連付けられたOpenCLデバイスデバイスのリストの中からひとつを指定。デバイスのリストは、カーネルと関連付けられたOpenCLコンテキスト内のデバイスのリストとなる。

(3)

取得する情報を指定。

(4)

param_nameに指定した情報についての値が戻されるメモリ空間へのポインタ

(5)

param_valueが指すメモリのサイズをバイトで指定。

(6)

param_valueに複製されるデータの実際のサイズをバイトで戻す。

9.20.4. cl_kernel_work_group_info

注記

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

9.20.5. clGetKernelArgInfo

clGetKernelArgInfo関数はカーネル引数に関する情報を戻します。カーネル引数の情報は、kernelと関連付けられたプログラムオブジェクトがclCreateProgramWithSourceで生成され、実行可能プログラムが、clBuildProgramまたはclCompileProgramのオプション引数の-cl-kernel-arg-infoオプションを指定しビルドした場合に限り、使用が可能となります。

注記

詳しくは「表:clGetKernelArgInfo」(表B.86「表:clGetKernelArgInfo」)と「表:cl_kernel_arg_info」(表B.87「表:cl_kernel_arg_info」)を参照ください。

関数の定義は以下のようになります。

int org.jocl.CL.clGetKernelArgInfo(
    cl_kernel kernel, //(1)
    int arg_indx, //(2)
    int param_name, //(3)
    long param_value_size, //(4)
    Pointer param_value, //(5)
    long[] param_value_size_ret) //(6)

(1)

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

(2)

引数添字(インデックス)を指定。

(3)

調べたい引数情報を指定。

(4)

param_valueが指すメモリのバイトサイズ(バイトで表す)を指定。このサイズは戻り値型のサイズよりも大きい必要がある。

(5)

適切な結果が戻るメモリを指すポインタ。

(6)

param_valueに複製されるデータのサイズのバイトを戻す

9.20.6. cl_kernel_arg_info

注記

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

Copyright 2018-2019, by Masaki Komatsu