我有一个用 C++ 编写的 VS2010 项目,想使用推力::sort 函数。我的数据当前位于 POD(普通旧日期)结构中。推力::排序例程需要主机和设备向量容器才能工作。连接我的 POD 数据以供thrust::sort 使用的最简单方法是什么?
谢谢,戴夫
我有一个用 C++ 编写的 VS2010 项目,想使用推力::sort 函数。我的数据当前位于 POD(普通旧日期)结构中。推力::排序例程需要主机和设备向量容器才能工作。连接我的 POD 数据以供thrust::sort 使用的最简单方法是什么?
谢谢,戴夫
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 结构代替,您可以将比较器传递给排序算法。