現在地 >> メニュー >> OpenCL >> OpenCL編02 >> OpenCL編02_3
INDEX:OpenCL編01 <<OpenCL編02OpenCL編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にあたるもの)内で使用できる
あらかじめ用意された関数がある。
  • 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)

サンプルコード

×

この広告は60日間更新がないwikiに表示されております。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます