最近はスラストを多用しています。スラストを使用するには、常に CPU メモリから GPU メモリにデータをコピーする必要があることに気付きました。
次の例を見てみましょう。
int foo(int *foo)
{
host_vector<int> m(foo, foo+ 100000);
device_vector<int> s = m;
}
コンストラクターがどのように機能するかはよくわかりませんhost_vector
が、からの初期データを*foo
2回コピーしているようです-1回は初期化時にhost_vectorに、もう1回device_vector
は初期化時に。中間データのコピーを作成せずに CPU から GPU にコピーするより良い方法はありますか? ラッパーとして使用できることはわかってdevice_ptr
いますが、それでも問題は解決しません。
ありがとう!