付録D OpenCLエラーコード

表D.1 表:ランタイムエラー一覧

コード
OpenCLエラーフラグ
関数
詳細
0
CL_SUCCESS
成功した場合の戻り値
-1
CL_DEVICE_
NOT_FOUND
clGetDeviceIDs
device_typeにマッチ
したOpenCLデバイスが
見つからない場合。
-2
CL_DEVICE_
NOT_AVAILABLE
clCreateContext
devices内のデバイス
が、clGetDeviceIDsで
返されたデバイスであ
るものの現在利用可能で
ない場合。
-3
CL_COMPILER_
NOT_AVAILABLE
clBuildProgram
programがclCreate
ProgramWithSourceで
生成され、コンパイラが
使用できない場合。(CL_
DEVICE_COMPILER_
AVAILABLEがCL_FALSEに
設定されている場合)
-4
CL_MEM_OBJECT
_ALLOCATION_FAILURE
バッファオブジェク
トのメモリを割り当てる
のに失敗した場合。
-5
CL_OUT_
OF_RESOURCES
デバイス上のOpenCL
実装が必要とするリソース
確保に失敗した場合。
-6
CL_OUT_OF_
HOST_MEMORY
ホスト上のOpenCL
実装が必要とする
リソース確保に失敗
したとき。
-7
CL_PROFILING_
INFO_NOT_AVAILABLE
clGetEventProfilingInfo
command-queueに
CL_QUEUE_PROFILING_
ENABLEが設定されて
ない場合。

イベントに識別されるコマ
ンドの実行ステータスが
CL_COMPLETEでない場合。

イベントがユーザイベント
オブジェクトの場合。
-8
CL_MEM_
COPY_OVERLAP
clEnqueueCopyBuffer,
clEnqueueCopyBufferRect,
clEnqueueCopyImage
src_bufferとdst_buffer
が同じバッファオブジェクト
またはサブバッファオブ
ジェクトで、かつ複製元と
複製先の領域が重なって
いる場合。

src_bufferとdst_buffer
が同じ関連付けされた
バッファオブジェクトの
異なるサブバッファで、
領域が重なる場合。

src_offset <=
dst_offset <=
src_offset + size – 1
で、領域が重なる場合。

dst_offset <=
src_offset <=
dst_offset + size – 1
で、領域が重なる場合。
-9
CL_IMAGE_
FORMAT_MISMATCH
clEnqueueCopyImage
src_imageとdst_image
が同じイメージ型式でない場合。
-10
CL_IMAGE_FORMAT_
NOT_SUPPORTED
clCreateImage
image_formatが
サポートされてない場合。
-11
CL_BUILD_
PROGRAM_FAILURE
clBuildProgram
実行可能プログラムの
ビルドに失敗した場合。
-12
CL_MAP_FAILURE
clEnqueueMapBuffer,
clEnqueueMapImage
指定された領域のホスト
アドレス空間へのマップに
失敗した場合。このエラー
は、CL_MEM_USE_HOST_PTR
またはCL_MEM_ALLOC_
HOST_PTRを指定して生成し
たバッファオブジェクトで
は発生しない。
-13
CL_MISALIGNED_
SUB_BUFFER_OFFSET
bufferがサブバッ
ファオブジェクトで、
このサブバッファオブ
ジェクトを生成する際
に指定したオフセットが
command_queueと関連
付けられたデバイスの
CL_DEVICE_MEM_BASE_
ADDR_ALIGNにアライン
されていない場合。
-14
CL_EXEC_STATUS_
ERROR_FOR_EVENTS_
IN_WAIT_LIST
マップ操作がブロッ
キングで、event_wait_
list内のイベントのい
ずれかの実行状況が負の
整数値の場合。
-15
CL_COMPILE_
PROGRAM_FAILURE
clCompileProgram
プログラムソースのコン
パイルに失敗した場合。
-16
CL_LINKER_
NOT_AVAILABLE
clLinkProgram
リンカーが利用可能で
ない場合。CL_DEVICE_
LINKER_AVAILABLEが
CL_FALSE。
-17
CL_LINK_
PROGRAM_FAILURE
clLinkProgram
コンパイル済みバイナ
リないしはライブラリを
リンクするのに失敗し
た場合。
-18
CL_DEVICE_
PARTITION_FAILED
clCreateSubDevices
パーティション名は
実装がサポートするが、
in_deviceがこれ以上
分割できない場合。
-19
CL_KERNEL_
ARG_INFO_
NOT_AVAILABLE
clGetKernelArgInfo
引数情報がカーネル
で利用可能でない場合。

表D.2 表:コンパイルタイムエラー一覧

コード
OpenCL エラーフラグ
関数
詳細
-30
CL_INVALID_
VALUE
clGetDeviceIDs,
clCreateContext
関数に依存しますが、
2つ以上の一対の(結合
した)パラメーターに
エラーがあります。
-31
CL_INVALID_
DEVICE_TYPE
clGetDeviceIDs
device_typeが
無効な場合。
-32
CL_INVALID_
PLATFORM
clGetDeviceIDs
プラットフォームが
無効な場合。
-33
CL_INVALID_ DEVICE
clCreateContext,
clBuildProgram
デバイスが無効なデ
バイスを含む場合。

デバイスが有効なプラッ
トフォームを関連付け
られてない場合。
-34
CL_INVALID_
CONTEXT
コンテキストが
無効な場合。
-35
CL_INVALID_
QUEUE_PROPERTIES
clCreateCommandQueue
command-queue-
propertiesは有効だが、
デバイスでサポートし
ていない場合。
-36
CL_INVALID_
COMMAND_QUEUE
command_queue
が無効な場合。
-37
CL_INVALID_
HOST_PTR
clCreateImage,
clCreateBuffer
host_ptrとCL_MEM_
COPY_HOST_PTR、
CL_MEM_USE_HOST_
PTRの組み合わせが無
効な場合。
-38
CL_INVALID_
MEM_OBJECT
memobjが無効な場合。
-39
CL_INVALID_
IMAGE_FORMAT_
DESCRIPTOR
OpenGL/DirectX
の内部テキスチャ型式
がOpenCLがサポートす
るイメージ型式にマップ
できない場合。
-40
CL_INVALID_
IMAGE_SIZE
イメージオブジェ
クトが引数として指定
されたが、イメージの
次元がコマンドキュー
と関連付けられたデバ
イスでサポートされて
いない場合。
-41
CL_INVALID_
SAMPLER
clGetSamplerInfo,
clReleaseSampler,
clRetainSampler,
clSetKernelArg
有効なサンプラー
でない場合。
-42
CL_INVALID_
BINARY
clCreateProgram
WithBinary,
clBuildProgram
バイナリが選択された
デバイスに適しない場合。
プログラムがclCreate
ProgramWithBinaryで
生成され、デバイスリス
ト内のデバイスが有効な
バイナリをロードしてい
ない場合。
-43
CL_INVALID_
BUILD_OPTIONS
clBuildProgram
指定されたビルドオプ
ションが不正な場合。
-44
CL_INVALID_
PROGRAM
有効なプログラムオ
ブジェクトでない場合。
-45
CL_INVALID_
PROGRAM_EXECUTABLE
コマンドキューに関
連付けられたデバイスに
対して利用可能なビルド
済みの実行可能プログラ
ムがない場合。
-46
CL_INVALID_
KERNEL_NAME
clCreateKernel
kernel_nameがプロ
グラム内で見つからな
い場合。
-47
CL_INVALID_
KERNEL_DEFINITION
clCreateKernel
カーネル関数の定義(引
数の個数や、データ型)が
全デバイスで同じでない
場合。
-48
CL_INVALID_
KERNEL
無効なカーネルオブ
ジェクトの場合。
-49
CL_INVALID_
ARG_INDEX
clSetKernelArg,
clGetKernelArgInfo
arg_indexが有効な
引数インデックスで
ない場合。
-50
CL_INVALID_
ARG_VALUE
clSetKernelArg,
clGetKernelArgInfo
arg_valueが有効
値でない場合。
-51
CL_INVALID_
ARG_SIZE
clSetKernelArg
arg_sizeがデータ
型のサイズと合わな
い場合。

引数がメモリオブジェ
クトで
`arg_size!=sizeof(cl_mem)`
の場合。

arg_sizeが0で、
引数が__local修飾子
で宣言されている場合。

引数がサンプラで
`arg_size!=sizeof(cl_sampler)`
の場合。
-52
CL_INVALID_
KERNEL_ARGS
カーネル引数の
値が指定されない場合。
-53
CL_INVALID_
WORK_DIMENSION
work_dimが無
効な値の場合。
-54
CL_INVALID_
WORK_GROUP_SIZE
local_work_sizeを
指定していて、
global_work_sizeで
指定したワークアイテム
数がlocal_work_size
で指定したワークグルー
プサイズの値で整除で
きない場合。

プログラムソース内で
__attribute__((reqd_work_
group_size(X, Y, Z)))
修飾子を利用して指定したワ
ークグループサイズと
local_work_sizeで指定し
た値が一致しない場合。

local_work_sizeを指定
し、local_work_size[0]
* ... * local_work_size
[work_dim - 1]で求められ
るワークグループ内のワークア
イテムの総数がCL_DEVICE_
MAX_WORK_GROUP_SIZEの値
をこえている場合。

local_work_sizeがNULLで、
プログラムソース内で
((reqd_work_group_
size(X, Y, Z))) 修飾子を
利用してワークグループサイ
ズを宣言している場合。
-55
CL_INVALID_
WORK_ITEM_SIZE
local_work_size[0],
... local_work_size
[work_dim – 1]で求めら
れるワークアイテムの総数
が、対応するCL_DEVICE_
MAX_WORK_ITEM_SIZES[0],
.... CL_DEVICE_MAX_
WORK_ITEM_SIZES[work_
dim – 1]で指定した値が
大きい場合。
-56
CL_INVALID_
GLOBAL_OFFSET
いずれかの次元での (
global_work_size
で指定した値 + 対応する
global_work_offset
の値) がカーネルを実行す
るデバイス上での
sizeof(size_t)をこえ
ている場合。
-57
CL_INVALID_
EVENT_WAIT_LIST
event_wait_listが
NULLでnum_events_
in_wait_listが0より
大きい場合。

event_wait_listが
NULLでなくnum_events_
in_wait_listが0の場合。
event_wait_list内の
イベントオブジェクト
が有効なものでない場合。
-58
CL_INVALID_
EVENT
eventが有効なイベン
トオブジェクトでない場合。
-59
CL_INVALID_
OPERATION
CL_CONTEXT_
ADAPTER_D3D9_KHR、

CL_CONTEXT_
ADAPTER_D3D9EX_KHR

またはCL_CONTEXT_
ADAPTER_DXVA_KHRの
いずれかに非NULL値に
設定されてにも関わらず、
他のグラフィックAPIと
の互換性が指定された場合。
-60
CL_INVALID_
GL_OBJECT
テキスチャがtexture_
targetに適合するGLテキス
チャオブジェクトでない場合。

指定されたテキスチャの
miplevelの値が定義され
てない場合。

miplevelの幅または高
さが0の場合。
-61
CL_INVALID_
BUFFER_SIZE
clCreateBuffer,
clCreateSubBuffer
指定されあsizeが0の場合
指定されたsizeが
CL_DEVICE_MAX_MEM_
ALLOC_SIZEより大き
い場合。
-62
CL_INVALID_
MIP_LEVEL
OpenGL関数
miplevelが0より大き
く、OpenGL実装が非ゼロ
のmipmapレベルをサポ
ートしない場合。
-63
CL_INVALID_
GLOBAL_WORK_SIZE
global_work_sizeが
NULLの場合。

global_work_size[0],
... global_work_size
[work_dim - 1`で指定し
た値のいずれかが0の場合。

カーネルを実行するデバ
イス上での
sizeof(size_t)で与えら
れる範囲をこえている場合。
-64
CL_INVALID_
PROPERTY
clCreateContext
曖昧なエラー。各関数
の資料を参照ください。
-65
CL_INVALID_
IMAGE_DESCRIPTOR
clCreateImage
image_descの値が
有効でない場合。

image_descの値が
NULL値の場合。
-66
CL_INVALID_
COMPILER_OPTIONS
clCompileProgram
コンパイラオプショ
ンが無効な場合。
-67
CL_INVALID_
LINKER_OPTIONS
clLinkProgram
リンカーオプション
が無効な場合。
-68
CL_INVALID_
DEVICE_PARTITION_
COUNT
clCreateSubDevices
プロパティで指定した
パーティション名が
CL_DEVICE_
PARTITION_BY_COUNTSで、
サブデバイスの個数が
CL_DEVICE_PARTITION_
MAX_SUB_DEVICESを超
える場合。

Copyright 2018-2019, by Masaki Komatsu