オンラインドキュメントから:
cudaError_t cudaMemset (void * devPtr, int value, size_t count )
devPtrが指すメモリ領域の最初のカウントバイトを定数バイト値で埋めます。
パラメータ:devPtr-デバイスメモリ値へのポインタ-指定されたメモリカウントの各バイトに設定する値-設定するバイト単位のサイズ
この説明は次のように正しくないようです。
int *dJunk;
cudaMalloc((void**)&dJunk, 32*(sizeof(int));
cudaMemset(dJunk, 0x12, 32);
32個の整数すべてを0x12121212ではなく0x12に設定します。(整数vsバイト)
説明では、バイトの設定について説明しています。カウントと値はバイト単位で記述されます。countはsize_t型であり、valueはint型です。つまり、バイトサイズをint値に設定します。
cudaMemset()はprogガイドに記載されていません。私は私が見ている振る舞いが正しいと仮定しなければなりません、そしてドキュメンテーションは悪いです。
そこにもっと良いドキュメントソースはありますか?(どこで?)
他のタイプはサポートされていますか?つまり、float *dJunk;
動作しますか?その他?