パート II. Java OpenCLランタイムAPI

目次

3. OpenCL開発環境
3.1. 検証環境
3.1.1. OpenCLのインストール
3.1.2. JOCLがサポートするSDK
4. JNI(Java Native Interface)
4.1. JNIの開発環境
4.1.1. JDK(Mac OS X)
4.2. ビルド
4.2.1. javah
4.2.2. JNIバイナリのビルド
4.3. ハローワールド (JNI) の続き
4.4. 型の対応
4.4.1. JNI引数の例
5. JNA(Java Native Access)
5.1. Maven2
5.2. 検証環境の構成
5.2.1. Maven (HomeBrew)
5.3. 関数のマッピング
5.4. Java・Cとネイティブ型の対応
5.5. ハローワールド (JNA)
5.6. ビルド
6. JOCL
6.1. java.nio.Buffer
6.2. Pointerオブジェクト
7. HelloWorldプログラム
7.1. HelloWorldプログラムの環境設定
7.2. カーネル・ソースファイル(.cl)の読み込み
7.3. HelloWorld(タスク並列プログラミング)
7.3.1. 出力
7.4. HelloWorld(データ並列プログラミング)
7.4.1. エラー表示関数
8. OpenCLホストAPI
8.1. Platform
8.1.1. clGetPlatformIDs
8.1.2. clGetPlatformInfo
8.1.3. cl_platform_info
8.2. Deviceのクエリー
8.2.1. clGetDeviceIDs
8.2.2. cl_device_type
8.2.3. clGetDeviceInfo
8.2.4. cl_device_info
8.3. Context
8.3.1. clCreateContext
8.3.2. cl_context_properties
8.3.3. clCreateContextFromType
8.3.4. clRetainContext
8.3.5. clReleaseContext
8.3.6. clGetContextInfo
8.3.7. cl_context_info
9. OpenCLランタイム
9.1. コマンドキュー
9.1.1. clCreateCommandQueue
9.1.2. cl_command_queue_properties
9.1.3. clRetainCommandQueue
9.1.4. clReleaseCommandQueue
9.1.5. cl_command_queue_info
9.2. バッファオブジェクト
9.2.1. clCreateBuffer
9.2.2. cl_mem_flags
9.2.3. Intel iGPU
9.3. バッファーの読み込み・書き込み・コピー
9.3.1. clEnqueueReadBufferとclEnqueueWriteBuffer
9.3.2. 矩形領域
9.3.3. clEnqueueReadBufferRectとclEnqueueWriteBufferRect
9.3.4. clEnqueueCopyBuffer
9.3.5. clEnqueueCopyBufferRect
9.3.6. clEnqueueFillBuffer
9.4. バッファオブジェクトのマップ
9.4.1. clEnqueueMapBuffer
9.5. オブジェクトのライフサイクル
9.5.1. clRetainMemObject
9.5.2. clReleaseMemObject
9.5.3. clSetMemObjectDestructorCallback
9.6. マップされたメモリオブジェクトをアンマップ
9.6.1. clEnqueueUnmapMemObject
9.7. イメージオブジェクト
9.7.1. 検証環境の準備
9.7.2. clCreateImage
9.7.3. 実装例
9.7.4. イメージデータのバッファ
9.7.5. cl_image_format
9.7.6. イメージ記述子
9.7.7. clGetSupportedImageFormats
9.7.8. サポートするイメージ型式
9.8. イメージの読み込みと書き込み
9.8.1. clEnqueueReadImageとclEnqueueWriteImage
9.8.2. clEnqueueCopyImage
9.8.3. clEnqueueFillImage
9.8.4. clEnqueueCopyImageToBuffer
9.8.5. clEnqueueCopyBufferToImage
9.9. イメージオブジェクトのマッピング
9.9.1. clEnqueueMapImage
9.9.2. cl_map_flags
9.10. イメージ情報取得
9.10.1. clGetImageInfo
9.10.2. cl_image_info
9.11. サンプラーオブジェクト
9.11.1. clCreateSampler
9.11.2. clRetainSampler
9.11.3. clReleaseSampler
9.11.4. clGetSamplerInfo
9.11.5. cl_sampler_info
9.12. プログラムオブジェクト
9.12.1. カーネルソースファイルの読み込みの復習
9.12.2. clCreateProgramWithSource
9.12.3. clCreateProgramWithBinary
9.12.4. clCreateProgramWithBuiltInKernels
9.12.5. clRetainProgram
9.12.6. clReleaseProgram
9.13. 実行プログラムのビルド
9.13.1. clBuildProgram
9.13.2. ビルドオプション
9.14. コンパイラ(ビルド)オプション
9.15. リンカーオプション
9.16. OpenCLコンパイラのアンロード
9.16.1. clUnloadPlatformCompiler
9.17. プログラムオブジェクトのクエリ
9.17.1. clGetProgramInfo
9.17.2. cl_program_info
9.17.3. clGetProgramBuildInfo
9.17.4. cl_program_build_info
9.18. カーネルオブジェクト
9.18.1. clCreateKernel
9.18.2. clCreateKernelsInProgram
9.18.3. clRetainKernel
9.18.4. clReleaseKernel
9.19. カーネル引数設定
9.19.1. clSetKernelArg
9.20. カーネルオブジェクト情報の取得
9.20.1. clGetKernelInfo
9.20.2. cl_kernel_info
9.20.3. clGetKernelWorkGroupInfo
9.20.4. cl_kernel_work_group_info
9.20.5. clGetKernelArgInfo
9.20.6. cl_kernel_arg_info
9.21. カーネルの実行
9.21.1. clEnqueueNDRangeKernel
9.21.2. clEnqueueTask
9.21.3. clEnqueueNativeKernel
9.22. イベントオブジェクト
9.22.1. clCreateUserEvent
9.22.2. clSetUserEventStatus
9.22.3. clWaitForEvents
9.22.4. clGetEventInfo
9.22.5. cl_event_info
9.23. マーカー・バリアー・イベント待機
9.23.1. clEnqueueMarkerWithWaitList
9.23.2. clEnqueueBarrierWithWaitList
9.24. プロファイリング
9.24.1. clGetEventProfilingInfo
9.24.2. cl_profiling_info
9.25. Flush・Finish
9.25.1. clFlush
9.25.2. clFinish

Copyright 2018-2019, by Masaki Komatsu