Top > Programming > OpenCL > JpnReference > clEnqueueTask
Last-modified: Fri, 13 Sep 2013 12:06:06 JST
Counter:1352 Today:1 Yesterday:0 Online:8
このエントリーをはてなブックマークに追加

clEnqueueTask

About

OpenCLデバイス上のOpenCLカーネルにコマンドキューを追加します。

C/C++

cl_int clEnqueueTask (cl_command_queue command_queue ,
                      cl_kernel kernel ,
                      cl_uint num_events_in_wait_list ,
                      const cl_event *event_wait_list ,
                      cl_event *event)

C#

        public static extern int clEnqueueTask
            (IntPtr command_queue,
            IntPtr kernel,
            uint num_events_in_wait_list,
            IntPtr[] event_wait_list,
            IntPtr eventobj);

Args

  • command_queue
    • 有効な OpenCL コマンドキューを指定します。
  • kernel
    • 有効な OpenCL カーネルを指定します。カーネルに関連付けられた OpenCL コンテキストと、command_queue に関連付けられた OpenCL コンテキストは同一のものである必要があります。
  • num_events_in_wait_list
    • event_wait_list に指定されるイベントオブジェクトの数を指定します。
  • event_wait_list
    • このコマンドが実行される前に完了する必要があるイベントを指定します。NULL を指定するとき、任意のイベントを待機しません。NULL を指定するとき、num_events_in_wait_list は 0 である必要があります。NULL でないとき、 num_events_in_wait_list は 0 より大きい値である必要があります。event_wait_list と、command_queue に関連付けられたOpenCLコンテキストは同一のものである必要があります。event_wait_list に関連付けられたメモリは、処理が返った後に、解放ないし再利用することができます。
  • eventobj
    • このカーネルの実行を識別するイベントオブジェクトの出力先を指定します。イベントオブジェクトは一意であり、カーネルの実行を識別するために利用することができます。NULL を指定するとき、このカーネルの実行はイベントを生成しません。したがってそのような時には、特定のカーネルの実行(のインスタンス)に対し、実行を待機させるクエリまたはキューを実行できません。

Return

実行に成功したとき、CL_SUCCESSを返します。それ以外のとき、次のうち1つのエラーを返します。

  • CL_INVALID_PROGRAM_EXECUTABLE
    • command_queue と関連付けられたデバイス上で、正常にビルドされた実行可能なプログラムがないとき。
  • CL_INVALID_COMMAND_QUEUE
    • command_queue に無効な値が指定されたとき。
  • CL_INVALID_KERNEL
    • kernel に無効な値が指定されたとき。
  • CL_INVALID_CONTEXT
    • command_queue と関連付けられたコンテキストと kernel と関連付けられたコンテキストが同じでないとき。command_queue と関連付けられたコンテキストと event_wait_list 内のイベントと関連付けられたコンテキストが同じでないとき。
  • CL_INVALID_KERNEL_ARGS
    • カーネルの引数が指定されていないとき。
  • CL_INVALID_WORK_GROUP_SIZE
    • [正確な訳ではないかもしれません] work-group の大きさが kernel のプログラムソース中に '__attribute__ ((reqd_work_group_size(X, Y, Z)))' 修飾子を用いて定義されていて、それが (1, 1, 1) でないとき。
  • CL_MISALIGNED_SUB_BUFFER_OFFSET
    • カーネルの引数にサブバッファオブジェクトを指定していて、そのサブバッファオブジェクトを生成するときに指定した offset が、command_queue と関連付けられたデバイスの CL_DEVICE_MEM_BASE_ADDR_ALIGN と整列していないとき。
  • CL_INVALID_IMAGE_SIZE
    • [正確な訳ではないかもしれません] カーネルの引数にイメージオブジェクトが指定され、そのイメージの次元数(横幅, 縦幅, ストライド?)が command_queue と関連付けられたデバイスでサポートされていないとき。
  • CL_INVALID_IMAGE_FORMAT
    • カーネルの引数にイメージオブジェクトが指定され、そのイメージ(の画像チャネルの順序とデータ型)が command_queue と関連付けられたデバイスによってサポートされないとき。
  • CL_MEM_OBJECT_ALLOCATION_FAILURE
    • kernel の引数に指定されたバッファやイメージオブジェクトに関連付けられた、データを保存するためのメモリ領域の確保に失敗したとき。
  • 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
    • カーネルを実行するために必要なリソースが不足し、カーネルの実行を挿入できないとき。 デバイス上でリソースの確保、割り当てに失敗したとき。
  • CL_OUT_OF_HOST_MEMORY
    • ホスト上でリソースの確保、割り当てに失敗したとき。