C ++で記述されたVS2010プロジェクトがあり、thrust::sort関数を使用したいと思います。私のデータは現在POD(Plain Old Date)構造体にあります。推力::ソートルーチンが機能するには、ホストとデバイスのベクトルコンテナが必要です。推力::ソートで使用するためにPODデータをインターフェースする最も簡単な方法は何ですか?
ありがとう、デイブ
C ++で記述されたVS2010プロジェクトがあり、thrust::sort関数を使用したいと思います。私のデータは現在POD(Plain Old Date)構造体にあります。推力::ソートルーチンが機能するには、ホストとデバイスのベクトルコンテナが必要です。推力::ソートで使用するためにPODデータをインターフェースする最も簡単な方法は何ですか?
ありがとう、デイブ
Thrust ユーザー ガイドの最初のページには、まさにそれを行う例が示されています。
thrust::host_vector<int> hv = populate(); // make data on host
thrust::device_vector<int> dv(hv.begin(), hv.end()); // copy to device
thrust::sort(dv.begin(), dv.end()); // sort on device
thrust::copy(dv.begin(), dv.end(), hv.begin()); // copy back
代わりにint、独自の POD 構造を使用して、ソート アルゴリズムにコンパレータを渡すことができます。