我正在尝试CUDA推力。
但我正在工作的环境需要我将最后的数据复制到char*
而不是thrust::host_vector<char>
所以我的代码现在看起来像下面的内容。
thrust::device_vector<unsigned int> sortindexDev(filesize);
thrust::host_vector<char>BWThost(filesize);
thrust::device_vector<char>BWTdev(filesize);
thrust::device_vector<char>inputDataDev(filesize);
.
.
some code using thrust:: sort, thrust::transform, etc
.
.
.
.
BWThost = BWTdev;
我在BWThost
中复制了数据。
我想将它复制到char*
以满足我的框架需求。
我该怎么做?
下面的代码不起作用。
for(int i = o; i < upper; i++) {
charData[i] = BWThost[i]
}
答案 0 :(得分:3)
只需使用thrust::copy
,例如:
thrust::device_vector<char>BWTdev(filesize);
char *chardata = malloc(filesize);
thrust::copy(BWTdev.begin(), BWTdev.end(), &chardata[0]);
[免责声明:用浏览器编写,未编译或测试,使用风险自负]
这是直接从device_vector
复制到主机阵列,无需任何中间host_vector
或显式主机端循环。