表B.82 表:clGetKernelInfo
関数 | ||
cl_int | clGetKernelInfo ( cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret ) | |
カーネルオブジェクトについての情報を取得。 | ||
引数 | ||
kernel | 有効なカーネル オブジェクトを指定。 | |
param_name | 取得する情報を指定。 | |
param_value | param_nameに指定 した情報についての値 が戻されるメモリ空間 へのポインタ。NULLの 場合は無視。 | |
param_value_ size | param_valueが指す メモリのサイズをバイ トで指定。このサイズ は戻り値型のサイズ以上 となる必要がある。 | |
param_value_ size_ret | param_valueにコ ピーされるデータの実 際のサイズをバイトで 戻す。NULLの場合は無 視。 | |
成功した場合の戻り値 | ||
CL_SUCCESS | ||
失敗した場合の戻り値 | ||
CL_INVALID_ VALUE | param_nameがサ ポートされている値で ない場合 param_value_size で指定されたサイズが 戻り値の型のサイズよ り小さく、 param_valueがNULL でない場合。 | |
CL_INVALID_ KERNEL | kernelが有効な カーネルオブジェクト でない場合。 | |
CL_OUT_OF_ RESOURCES | デバイス上のOpenCL 実装が必要とする リソース確保に失敗 した場合。 | |
CL_OUT_OF_ HOST_MEMORY | ホスト上のOpenCL 実装が必要とする リソース確保に失敗 した場合。 |
表B.83 表:cl_kernel_info
cl_kernel_ info   | 戻り値型    | param_value に戻す情報  |
CL_KERNEL_ FUNCTION_ NAME | char[] | kernelの関数名を 戻す。 |
CL_KERNEL_ NUM_ARGS | cl_uint | kernelの引数の数 を戻す。 |
CL_KERNEL_ REFERENCE_ COUNT | cl_uint | kernelの参照カウ ントを戻す。  |
CL_KERNEL_ CONTEXT | cl_context   | kernelと関連付けら れたOpenCLコンテ キストを戻す。  |
CL_KERNEL_ PROGRAM | cl_program   | kernelと関連付け られたプログラムオブ ジェクトを戻す。 |
CL_KERNEL_ ATTRIBUTES | char[]   | プログラムソース内 のカーネル関数で宣言 した__attribute__ 修飾子を使って指定し た属性を戻す。 属性は __attribute__((...)) として宣言したように 戻る。(スペースと改 行は除去) 複数の属性がある場合、 戻り値は一つのスペース で区切られた文字列と なる。 |
表B.84 表:clGetKernelWorkGroupInfo
関数 | ||
cl_int | clGetKernelWorkGroupInfo ( cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret ) | |
カーネルオブジェクトに関するデバイス特有の情報を取得。 | ||
引数 | ||
kernel | カーネルオブジェクト を指定。 | |
device | kernelに関連付け られたOpenCLデバイ スデバイスのリストの 中からひとつを指定。 デバイスのリストは、 カーネルと関連付けら れたOpenCLコンテキス ト内のデバイスのリスト となる。カーネルと関連 付けられたデバイスの リストにデバイスが1つ しかない場合、このパラ メータにNULLを設定 できる。 | |
param_name | 取得する情報を指定。 | |
param_value | param_nameに指定し た情報についての値が 戻されるメモリ空間へ のポインタ。NULLの場 合は無視。 | |
param_value_ size | param_valueが指 すメモリのサイズを バイトで指定。この サイズは戻り値型の サイズ以上でなけれ ばなりません。 | |
param_value_ size_ret | param_valueに複 製されるデータの実 際のサイズをバイト で戻す。NULLの場合 は無視。 | |
成功した場合の戻り値 | ||
CL_SUCCESS | ||
失敗した場合の戻り値 | ||
CL_INVALID_ DEVICE | deviceがkernelに 関連付けられたリス トの中にない場合 deviceにNULL値が指 定されてるのにカーネ ルに複数の関連付けが ある場合。 | |
CL_INVALID_ VALUE | param_nameがサポ ートされている値でな い場合 param_value_size で指定されたサイズが 戻り値型のサイズより 小さくかつ param_valueがNULL でない場合。 | |
CL_INVALID_ VALUE | param_nameが CL_KERNEL_GLOBAL_ WORK_SIZEで、デバイ スがカスタムデバイス でない場合か、kernel が組込みカーネルでな い場合。 | |
CL_INVALID_ KERNEL | kernelが有効な カーネルオブジェク トでない場合。 | |
CL_OUT_ OF_RESOURCES | デバイス上のOpenCL 実装が必要とする リソース確保に失敗 した場合。 | |
CL_OUT_OF_ HOST_MEMORY | ホスト上のOpenCL 実装が必要とする リソース確保に失敗 した場合。 |
表B.85 表:cl_kernel_work_group_info
cl_kernel_ work_group_ info   | 戻り値型    | param_value に戻す情報  |
CL_KERNEL_ GLOBAL_WORK_ SIZE | size_t | deviceで指定した カスタムデバイス上、 またはdeviceで指定し たOpenCLデバイス上の 組込みカーネルでアプリ ケーションがカーネルを 実行するときに使える 最大グローバルサイズを 取得する仕組みを提供。 (clEnqueueNDRange Kernelで宣言する global_work_size引数) デバイスがカスタム デバイスでない場合や、 kernelが組込みカーネ ルでない場合は、 clGetKernelArgInfo はCL_INVALID_VALUE エラーを戻す。 |
CL_KERNEL_ WORK_ GROUP_SIZE | size_t   | deviceで指定したデ バイス上でカーネルを 実行する際に利用できる 最大ワークグループサイ ズを戻す。OpenCL実装 は指定したカーネルが 必要とするリソース (レジスタの使用量な ど)をもとに、ワーク グループサイズを決定。  |
CL_KERNEL_ COMPILE_ WORK_GROUP_ SIZE | size_t   | `__attribute__((reqd_` `work_group_size(X, Y, Z)))` 修飾子で指定されている ワークグループサイズを 戻す。この修飾を使った指 定をしない場合、 (0, 0, 0)が戻る。  |
CL_KERNEL_ LOCAL_MEM_SIZE | cl_ulong | カーネルによって使用さ れるローカルメモリの量 をバイトで戻す。 カーネルの実行、カーネ ル内で `__local`アド レス修飾子を用いて宣言さ れた変数、__localアド レス修飾子を用いてポイン タとして宣言されたカーネ ルの引数について確保さ れるclSetKernelArgで 指定されたサイズのロー カルメモリなどで必要と なるローカルメモリを含 む。 __localアドレス修飾子 を用いて宣言されたカー ネル引数のローカルメモ リサイズを指定しない場 合、サイズは0を前提と する。 |
CL_KERNEL_ PREFERRED_ WORK_GROUP_ SIZE_MULTIPLE | size_t | ワークグループサイズ の推奨の倍数を戻す。 |
CL_KERNEL_ PRIVATE_MEM_ SIZE | cl_ulong   | カーネル内の各ワーク アイテムで使われる プライベートメモリの 最小量をバイトで戻す。 |
表B.86 表:clGetKernelArgInfo
関数 | ||
cl_int | clGetKernelArgInfo ( cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret ) | |
カーネル引数に関する情報を戻す。カーネル引数 の情報は、kernelと関連付けられたプログラムオブジェ クトがclCreateProgramWithSourceで生成され、 実行可能プログラムが、clBuildProgramまたは clCompileProgramのオプション引数の-cl-kernel -arg-infoオプションを指定しビルドした場合に限り、使用が可能。 | ||
引数 | ||
kernel | カーネルオブジェ クトを指定。 | |
arg_indx | 引数添字(インデックス) を指定。kernelへの引 数は、0からn - 1で定義 ( nはkernelに宣言し た引数の総数)される添字 で参照することができる。 | |
param_name | 調べたい引数情報を指定。 サポートされる param_name型のリスト とparam_valueで戻さ れる情報はcl_kernel_ arg_infoを参照のこと。 | |
param_value | 適切な結果が戻るメ モリを指すポインタ。 param_valueがNULL の場合は無視。 | |
param_value_ size | param_valueが指す メモリのバイトサイズ (バイトで表す)を指定。 このサイズは戻り値型の サイズよりも大きい必要 がある。 | |
param_value_ size_ret | param_valueに複製 されるデータのサイズの バイトを戻す。param_ value_size_retが NULLの場合は無視。 | |
成功した場合の戻り値 | ||
CL_SUCCESS | ||
失敗した場合の戻り値 | ||
CL_INVALID_ ARG_INDEX | arg_indxが有効な 引数添字でない場合。 | |
CL_INVALID_ VALUE | param_nameが有効 でない場合。 param_value_sizeが 指定するバイトサイズ が戻り値の型より小さく、 param_valueがNULL の場合。 | |
CL_KERNEL_ ARG_INFO_NOT_ AVAILABLE | 引数情報をkernel が利用できない場合。 | |
CL_INVALID_ KERNEL | kernelが有効な カーネルオブジェクト でない場合。 |
表B.87 表:cl_kernel_arg_info
cl_kernel_ arg_info   | 戻り値型    | param_value に戻る情報  |
CL_KERNEL_ ARG_ ADDRESS_ QUALIFIER | cl_kernel_ arg_ address_ qualifier | arg_indxで指定 した引数のアドレス 修飾子を戻す。次 のどれかの値をとる。 CL_KERNEL_ARG_ ADDRESS_GLOBAL CL_KERNEL_ARG_ ADDRESS_LOCAL CL_KERNEL_ARG_ ADDRESS_CONSTANT CL_KERNEL_ARG_ ADDRESS_PRIVATE アドレス修飾子を指定 しない場合は、 CL_KERNEL_ARG_ ADDRESS_PRIVATE が既定の値となる。 |
CL_KERNEL_ ARG_ACCESS_ QUALIFIER  | cl_kernel_ arg_ access_ qualifier | arg_indxで指定 した引数のアクセス 修飾子を戻す。次の どれかの値をとる。 CL_KERNEL_ARG_ ACCESS_READ_ONLY CL_KERNEL_ARG_ ACCESS_WRITE_ONLY CL_KERNEL_ARG_ ACCESS_READ_WRITE CL_KERNEL_ARG_ ACCESS_NONE 引数がイメージ型でな い場合、 CL_KERNEL_ARG_ ACCESS_NONEが戻される。 引数がイメージ型の場合 は、指定したアクセス 修飾子か既定値が戻さ れる。 |
CL_KERNEL_ ARG_TYPE_ QUALIFIER | cl_kernel_ arg_ type_qualifier | arg_indxで指定した 引数のタイプ修飾子 を戻す。次のどれか の値をとる。 CL_KERNEL_ARG_ TYPE_CONST CL_KERNEL_ARG_ TYPE_RESTRICT CL_KERNEL_ARG_ TYPE_VOLATILE CL_KERNEL_ARG_ TYPE_NONE 例: CL_KERNEL_ARG_ TYPE_VOLATILEは、 global int volatile *x と宣言した場合に戻る。 CL_KERNEL_ARG_ TYPE_CONSTは global int const *x と宣言した場合に戻る。 |
CL_KERNEL_ ARG_NAME | char[] | arg_indxで指定し た引数の名称を戻す。 |
Copyright 2018-2019, by Masaki Komatsu