最終更新: mikk_ni3_92 2010年06月05日(土) 14:29:01履歴
現在地 >> メニュー >> OpenCL >> OpenCL編02 >> OpenCL編02_3
INDEX:OpenCL編01 <<OpenCL編02、OpenCL編02_2、OpenCL編02_3 >> OpenCL編03?
CPU側で呼び出されるGPUの関数のことを「カーネル」という。
本来は色々あるがまずはとりあえず、次のようにして書けばいい。
【例】
INDEX:OpenCL編01 <<OpenCL編02、OpenCL編02_2、OpenCL編02_3 >> OpenCL編03?
CPU側で呼び出されるGPUの関数のことを「カーネル」という。
本来は色々あるがまずはとりあえず、次のようにして書けばいい。
- GPU側のソースコードの拡張子は「.cl」
- GPU側のメイン関数の修飾子には「__kernel」をつける
- 関数の引数には「__global」をつける
【例】
//-- gpuMain.cl --// __kernel void gpuMain(__global int *Ary) { unsigned int id = get_global_id(0);//配列の通し番号でID取得 Ary[id] += 1000; }
↑の例で書いた「get_global_id関数」のような、
Work-Item(cudaのthreadにあたるもの)内で使用できる
あらかじめ用意された関数がある。
Work-Item(cudaのthreadにあたるもの)内で使用できる
あらかじめ用意された関数がある。
- uint get_work_dim()
- size_t get_global_size (uint dimindx)
- size_t get_global_id (uint dimindx)
- size_t get_local_size (uint dimindx)
- size_t get_local_id (uint dimindx)
- size_t get_num_groups (uint dimindx)
- size_t get_group_id (uint dimindx)