-2

cuda 4.2 でプログラムを作成していますが、この問題が発生しています...

2 つの画像に対して同じコードを実行する必要があります。そのため、コードをループに入れて、for ループの前に一度だけfor呼び出しています。cudaMallocループ内のコードはcudaMemcpy(..,..,..,cudaMemcpyHostToDevice)、同じデバイス配列ポインターを使用します。そのため、2 番目のループで新しい値 (最初の画像から) が古い値 (2 番目の画像から) に置き換わると考えました。でもcudaMemcpy(..,..,..,cudaMemcpyHostToDevice)失敗…

別の機能を使用する必要がありますか?

どうもありがとう!

4

1 に答える 1

1

同様の問題が発生する可能性がありました。ループの最後で cudaFree() を呼び出していましたが、 cudaMalloc() はループの前に 1 回だけ呼び出していました。つまり、最初にメモリが割り当てられなくなった後に値を GPU にコピーしようとしたときに、CudaMalloc と CudaFree がすべてループの外にあることを確認し、問題なく動作したことを意味していました。

于 2015-03-25T16:54:59.110 に答える