push_back 使用推力库

Posted

技术标签:

【中文标题】push_back 使用推力库【英文标题】:push_back using Thrust library 【发布时间】:2012-09-05 08:18:04 【问题描述】:

是否可以将 push_back 与 Thrust 库一起使用?那么向量的向量呢?我想在 GPU 中使用 CPu 中的内容:

 vector< vector<int> > MyVector( 100 );
 ...
 MyVector[i].push_back(j);

有没有办法使用它,例如:

thrust::device_vector<thrust::device_vector<int>> d_vec(4);

那么创建一个 device_vectors 数组呢?有可能吗?

【问题讨论】:

【参考方案1】:
    是的,thrust::device_vector 有一个 push_back 方法,就像 std::vector 一样。 不,不可能有一个包含device_vectorsdevice_vector。如果您在推力中需要这种功能,我建议您查看thrust::zip_iterator,它可以提供“结构数组”,例如访问一系列不同的向量或迭代器。

【讨论】:

我想要的是以这种方式访问​​device_vector dvdv[i][j] @Manolete:我不相信这是可能的。 但是你可以做 dv[i*width + j].

以上是关于push_back 使用推力库的主要内容,如果未能解决你的问题,请参考以下文章

nVidia 推力:device_ptr 常量正确性

使用 Thrust CUDA 对对象进行排序

推力::设备向量使用推力::替换或推力::转换与自定义函子/谓词

将 cv::cuda::GpuMat 与推力和测试推力 API 一起使用时出现问题

在线程内使用推力::排序

使用推力的向量数组