2013年09月09日

参照渡しとデバイス関数内でのPrintf

以下のように,C++と同様に参照渡しが出来ます.

また,デバイス関数内でもPrintf()出来るのを,今日知ったのでメモ.
Printfは,ComputeCapability2.0以上でないと使用できないようです.
つまり,sm20以上にコンパイルオプションを指定しなければなりません.
他にも,C++とは違った制限・制約・機能があるようですが…
とりあえず動けば良いや的な



__device__ void D_func2(float3 &b)
{
b.x++;
return;
}
__global__ void D_func()
{
float3 a;
a.x= threadIdx.x;
a.y= threadIdx.x;
a.z= -1;
printf("Hello thread %d\n", threadIdx.x);
printf("a.x=%f, a.y=%f, a.z=%f\n", a.x, a.y, a.z);
D_func2(a);
printf("a.x=%f, a.y=%f, a.z=%f\n", a.x, a.y, a.z);
return;
}
posted by にゃんこ at 17:25| Comment(0) | TrackBack(0) | CUDA C
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/74465529
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック