私は以下の方法を使って、ホストからデバイスへのmemcpyを避けることを期待しています。スラストライブラリは、プロセス中のホストからデバイスへのmemcpyがないことを保証しますか?ホストからデバイスへの推力がmemcpyになっていないことを確認してください。
void EScanThrust(float * d_in, float * d_out)
{
thrust::device_ptr<float> dev_ptr(d_in);
thrust::device_ptr<float> dev_out_ptr(d_out);
thrust::exclusive_scan(dev_ptr, dev_ptr + size, dev_out_ptr);
}
ここ
d_in
とd_out
cudaMalloc
を用いて調製し、d_in
れ
ホストからデバイスへのmemcopyingはありません。あなたの説明によれば、ホストポインタやデータはどこにもありません。ホストから何かをコピーするにはどうすればいいですか?とにかく、 'nvprof --print-gpu-trace ... 'のようなプロファイラを使ってこれを検証することは自明です。もしあれば、cudaMemcpy H-> Dがトレースにはっきりと現れます。ありがとうございます。 –