B.29. プログラムオブジェクトのクエリ

B.29.1. clGetProgramInfo

Table B.73. 表:clGetProgramInfo

関数
cl_int
clGetProgramInfo (
    cl_program program,
    cl_program_info param_name,
    size_t param_value_size,
    void *param_value,
    size_t *param_value_size_ret
)
 プログラムオブジェクトについての情報を取得。
 引数
program
有効なプログラム
オブジェクトを指定。
param_name
取得する情報を指定。
param_value_
size
param_valueが指す
メモリのサイズをバイト
で指定。このサイズは戻
り値型のサイズ以上とな
る必要がある。
param_value
param_nameに指定した
情報についての値が返され
るメモリ空間へのポインタ。
NULLの場合は無視。
param_value_
size_ret
param_valueに複製さ
れるデータの実際のサイ
ズをバイトで戻す。NULL
の場合は無視。
 成功した場合の戻り値
 CL_SUCCESS
 失敗した場合の戻り値
CL_INVALID_
VALUE
param_nameが有効
でない場合。

param_value_sizeで
指定したバイトサイズが
戻り値型のサイズより小
さく、param_valueが
NULLの場合。
CL_INVALID_
PROGRAM
programが有効な
プログラムオブジェクト
でない場合。
CL_INVALID_
PROGRAM_
EXECUTABLE
param_nameがCL_
PROGRAM_NUM_KERNELS
またはCL_PROGRAM_
KERNEL_NAMESで、
programと関連付けられ
たデバイスのリストで一
つのデバイスでも、実行
可能プログラムのビルド
に成功してない場合。
CL_OUT_
OF_RESOURCES
デバイス上のOpenCL実
装が必要とするリソース確
保に失敗した場合。
CL_OUT_OF_
HOST_MEMORY
ホスト上のOpenCL実装が
必要とするリソース確保に
失敗した場合。

B.29.2. cl_program_info

Table B.74. 表:cl_program_info

cl_program_
info


戻り値型



param_value
に戻る情報

CL_PROGRAM_
REFERENCE_
COUNT
cl_uint


programの参照カ
ウントを戻す。


CL_PROGRAM_
CONTEXT
cl_context
programを作成する
際に指定したOpenCL
コンテキストを戻す。


CL_PROGRAM_
NUM_DEVICES
cl_uint
program と関連付
けられているデバイス
の数を戻す。
CL_PROGRAM_
DEVICES
cl_device_id[]
programと関連付け
られているデバイス
のリストを戻す。
programを生成したコ
ンテキストに関連付け
られたデバイスまたは
clCreateProgram
WithBinaryを使用し
てprogramを生成した
際に指定したデバイス
のサブセット。
CL_PROGRAM_
SOURCE
char[]
clCreateProgram
WithSourceで指定
したプログラムソース
コードを戻す。戻される
ソース文字列は全ての
ソース文字列を結合し
NULL終端をつけたも
のとなる。結合した文字
列はどのNULL値も取り
去る。

clCreateProgram
WithBinaryまたは
clCreateProgram
WithBuiltinKernels
でプログラムを生成し
た場合は、NULL文字列
または、プログラム
ソースコードがバイナリ
に格納されているので
あれば適切なプログラム
ソースコードが戻される。

CL_PROGRAM_
BINARY_SIZES
size_t[]
プログラムに関連付
けられた各デバイスに対
して、プログラムバイナリ
のバイトサイズを含む配列
を戻す。配列のサイズは
プログラムに関連付けら
れたデバイスの個数となる。
バイナリが使用可能でない
場合は、0サイズが戻る。
プログラムが
clCreateProgram
WithBuiltinKernelsで
生成された場合、OpenCL
実装は戻される配列のどの
エントリでも0を戻す。
CL_PROGRAM_
BINARIES

unsigned char *[]
programに関連付けられ
た全てのデバイス用のプ
ログラムバイナリ(実行可
能バイナリ、コンパイル済
みバイナリ、ライブラリバ
イナリ)を戻す。プログラ
ム内の各デバイスに対して、
戻されるバイナリは、プロ
グラムがclCreateProgram
WithBinaryで生成される
際のデバイスに指定したバ
イナリとなる。もしくは、
clBuildProgramまたは
clLinkProgramで生成した
実行可能バイナリとなる。
clCreateProgramWith
Sourceでプログラムを生成
した場合、戻されるバイナリ
はclBuildProgram、
clCompileProgram、
clLinkProgramのいずれ
かで生成したバイナリとなる。
CL_PROGRAM_
NUM_KERNELS
size_t
プログラム内の
clCreateKernelで生成
されたkernelsの個数
を戻す。
CL_PROGRAM_
KERNEL_NAMES
char[]
プログラム内の
clCreateKernelで生成
されたカーネルの名称を
セミコロン区切りのリス
トで戻す。

B.29.3. clGetProgramBuildInfo

Table B.75. 表:clGetProgramBuildInfo

関数
cl_int
clGetProgramBuildInfo (
    cl_program program,
    cl_device_id device,
    cl_program_build_info param_name,
    size_t param_value_size,
    void *param_value,
    size_t *param_value_size_ret
)
 プログラムオブジェクト内の各デバイスについての
ビルド情報を取得。
 引数
program
有効なプログラム
オブジェクトを指定。
device
ビルド情報を取得する
OpenCLデバイスを指定。
programと関連付けられ
た有効なデバイスとなる
必要がある。
param_name
取得する情報を指定。
param_value
param_nameに指定した
情報についての値が戻る
メモリ空間へのポインタ。
NULLの場合は無視。
param_value_
size
param_valueが指す
メモリのサイズをバイト
で指定。このサイズは戻り
値型のサイズ以上となる
必要がある。
param_value_
size_ret
param_valueに複製
されるデータの実際の
サイズをバイトで戻す。
NULLの場合は無視。
 成功した場合の戻り値
 CL_SUCCESS
 失敗した場合の戻り値
CL_INVALID_
DEVICE
デバイスがプログラムに
関連付けられたデバイス
のリストにない場合。
CL_INVALID_
VALUE
param_nameが有効
でない場合。
param_value_size
のバイトサイズが戻り
値の型より小さい場合。
param_valueがNULL
の場合。
CL_INVALID_
PROGRAM
programが有効な
プログラムオブジェクト
でない場合。
CL_OUT_
OF_RESOURCES
デバイス上のOpenCL
実装が必要とするリソース
確保に失敗した場合。
CL_OUT_OF_
HOST_MEMORY
ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
した場合。

B.29.4. cl_program_build_info

Table B.76. 表:cl_program_build_info

cl_program_
build_info
戻り値型

param_value
に戻す情報
CL_PROGRAM_
BUILD_STATUS
cl_build_
status
deviceについての
programのビルド状
況を戻す。戻す値は以
下のうちの一つとなる。

CL_BUILD_NONE
- device用のprogram
のビルドが行われてい
ない場合。

CL_BUILD_ERROR
- 最後に呼び出した
clBuildProgram、
clCompileProgram、
clLinkProgramでの、
device用の program
のビルドでエラーが
発生していた場合。

CL_BUILD_SUCCESS
- 最後に呼び出した
clBuildProgram、
clCompileProgram、
clLinkProgramでの、
device用のprogramの
ビルドが成功していた
場合。

CL_BUILD_IN_
PROGRESS
- 最後に呼び出した
clBuildProgram、
clCompileProgram、
clLinkProgramでの、
device用のprogram
のビルドが終了して
いない場合。
CL_PROGRAM_
BUILD_OPTIONS
char[]

clBuildProgram、
clCompileProgram、
clLinkProgramを呼
び出した際に options
引数に指定したビルド、
コンパイル、リンクオ
プションを戻す。
device用のprogram
のビルドステータスが
CL_BUILD_NONEの場合
は、空文字列が戻される。
CL_PROGRAM_
BUILD_LOG
char[]
clBuildProgram、
clCompileProgram、
clLinkProgramを呼
び出した際のビルドロ
グを戻す。

device用のprogram
のビルド状況が
CL_BUILD_NONEのとき
は、空文字列が戻される。

CL_PROGRAM_
BINARY_TYPE
cl_program_
binary_type

デバイスのプログラム
バイナリ型を戻す。
戻す値は以下のうちの
一つとなる。

CL_PROGRAM_
BINARY_TYPE_NONE
– デバイスに関連付けら
れたプログラムがない場合。

CL_PROGRAM_BINARY_
TYPE_COMPILED_
OBJECT
– コンパイル済みの
バイナリがデバイス
と関連付けられている。
clCreateProgram
WithSourceでprogram
を生成した場合や、
clCompileProgramを
使ってコンパイルしたり、
clCreateProgramWith
Binaryを使ってコンパイ
ル済みバイナリをロード
した場合に該当。

CL_PROGRAM_
BINARY_TYPE_
LIBRARY
– ライブラリバイナ
リがデバイスに関連付
けられる。programが
clLinkProgramで生成
され、-create-library
リンクオプションをつ
けた場合や、ライブラリ
バイナリをclCreate
ProgramWithBinaryを
使ってロードした場合
に該当。

CL_PROGRAM_
BINARY_TYPE_
EXECUTABLE
– 実行可能バイナリ
がデバイスに関連付
けられている。program
がclLinkProgram
で生成され、
-create-libraryリ
ンクオプションをつけ
ない場合や、program
がclBuildProgramで
生成された場合や、
実行可能バイナリを
clCreateProgramW
ithBinaryを使って
ロードした場合に該当。

Copyright 2018-2019, by Masaki Komatsu