CUDAでRLEをデコードする必要があり、RLEをすべての自分の値でリストに展開する最も効率的な方法を考えようとしています。だから私の値は2、3、4で、私のランは3,3,1です。それを2、2、3、3、3、4に広げたいとします。CUDAでRLEを効率的にデコードする
最初は私が使うことができると思ったcudaMemset
しかし、私は今、カーネルを立ち上げ、CUDA Compute Capability 3.0を持っていると確信しています。これは、各値/実行ペアに対して新しいカーネルを起動するのはおそらく非効率ではないとしても、
CUDAでうまく動作しないようなことがたくさんあるので、このソリューションを試してみる前に、このソリューションが適切かどうかを知りたいと思っています。宛先に向かってcudaMalloc
、次にcudaMemCpyを呼び出すカーネルを作ることは合理的でしょうか?私は簡単に接頭辞の合計を計算して、どこからメモリをコピーするかを知り、すべての読書を少なくとも合体させることができます。私が心配しているのは、cudaMalloc
とcudaMemCpy
を何回も呼び出すことです。
これらの値を共有メモリに書き込み、それらをグローバルメモリにコピーすることも考えられます。私は、私の最初の解決策が効果的かどうか、あるいは後者をしなければならないかどうかを知りたい。
ロバートはあなたの周りの最も素晴らしい人のひとりです。私はこれまでにCUDAを実行したすべての問題を解決しました。ありがとうございました! – flips