__constant__
すべてのカーネルのすべてのスレッドがアクセスするメモリを使用したいと考えています。
宣言はこのようなものです
extern __constant__ float smooth [8 * 1024];
を使用してこの変数にデータをコピーしています
cudaMemcpyToSymbol("smooth", smooth_local, smooth_size, 0, cudaMemcpyHostToDevice);
Smooth_size = 7K バイト
それは私に間違った出力を与えていました
しかし、-deviceemu
モードで実行し、カーネル内のこれらの両方の変数の内容を出力しようとすると、スムーズですべてゼロになり、smooth_local は正しくなりました。
cudaMemcpyToSymbol
まだ0が表示された直後に出力を印刷しようとしました。
誰でも私の問題に光を当てることができますか?