B.21. マップされたメモリオブジェクトをアンマップ

B.21.1. clEnqueueUnmapMemObject

表B.61 表:clEnqueueUnmapMemObject

関数

cl_int

clEnqueueUnmapMemObject (
    cl_command_queue command_queue,
    cl_mem memobj,
    void *mapped_ptr,
    cl_uint num_events_in_wait_list,
    const cl_event *event_wait_list,
    cl_event *event
)

以前にマップされたメモリオブジェクトの 領域をアンマップ(マップの解除)する コマンドを挿入。clEnqueueMapBuffer またはclEnqueueMapImage が戻したポインタを使ってホストからの読 み込みや書き込みは終了したものと見なされる。

引数

memobj

有効なメモリオブジェ
クトを指定。
command_queueと
memobjに関連付けら
れたOpenCLコンテキ
ストは同じになる
必要がある。

mapped_ptr

前に呼び出した
clEnqueueMapBuffer
または
clEnqueueMapImage
が戻したmemobjのホ
ストアドレスを指定。

num_events_ in_wait_list

event_wait_list
で指定したイベント
オブジェクトの数
を指定。

event_wait_ list

このコマンドが実行
される前に完了されて
いるイベントを指定。

event_wait_listが
NULLの場合、この
コマンドはどのイベント
の完了待機もしない。

event_wait_listが
NULLの場合、num_
events_in_wait_
listは0となる必要
がある。

event_wait_list
がNULLではない場合、
event_wait_listが
指す各イベントは有効
となり、またnum_
events_in_wait_
listは0より大きな値
となる必要がある。

event_wait_list
に指定したイベントは
同期点としてふるまう。

event_wait_list内の
イベントと関連付けられた
OpenCLコンテキストと
command_queueと関連付
けられたOpenCLコンテキ
ストは同じとなる必要
がある。

event_wait_listと
関連付けられたメモリ
領域は関数が戻った後に、
再利用か解放できる。

event

複製コマンドを識別
するイベントオブジェ
クトが戻され、コマン
ド完了の確認やコマン
ド完了の待機に使える。

eventがNULLの場合、
アプリケーションはコ
マンドの状況確認やコ
マンド完了待ちができ
なくなる。

event_wait_listと
eventがNULLでない
場合、eventはevent_
wait_list配列の要素
を参照すべきでない。

clEnqueueBarrier
WithWaitListを代
わりに使うことができ
る。event_wait_
listとevent引数NULL
でない場合、event
引数はevent_wait_
list内の要素を参照
すべきでない。

成功した場合の戻り値

CL_SUCCESS

失敗した場合の戻り値

CL_INVALID_ COMMAND_QUEUE

command_queueが
有効なコマンドキュー
でない場合。

CL_INVALID_ MEM_OBJECT

memobjが有効な
メモリオブジェクト
でない場合。

CL_INVALID_ VALUE

mapped_ptrが
clEnqueueMapBuffer
または
clEnqueueMapImage
が戻したメモリオブジ
ェクトの有効なポイン
タでない場合。

CL_INVALID_ CONTEXT

command_queueと
memobjが関連付けら
れたコンテキストが同
じでない場合。

command_queueと
event_wait_list内
のイベントが関連付け
られたコンテキストが
同じでない場合。

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内
のイベントオブジェ
クトが有効なイベント
でない場合。

CL_OUT_OF_ RESOURCES

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

CL_OUT_OF_ HOST_MEMORY

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

Copyright 2018-2019, by Masaki Komatsu