gpt4 book ai didi

vector - CUDA推力库: How can I create a host_vector of host_vectors of integers?

转载 作者:行者123 更新时间:2023-12-02 03:40:54 27 4
gpt4 key购买 nike

在 C++ 中,为了创建一个包含 10 个整数向量的向量,我将执行以下操作:

  std::vector< std::vector<int> > test(10);

因为我认为 Thrust 使用与 STL 相同的逻辑,所以我尝试做同样的事情:

  thrust::host_vector< thrust::host_vector<int> > test(10);

但是我遇到了太多令人困惑的错误。我尝试这样做:

  thrust::host_vector< thrust::host_vector<int> > test;

它有效,但是我无法向这个向量添加任何内容。正在做

  thrust::host_vector<int> temp(3);
test.push_back(temp);

会给我同样的错误(太多而无法将它们粘贴到此处)。

另外,一般来说,在使用 Thrust 时,使用 host_vector 和 STL 的 vector 之间有区别吗?

提前谢谢

最佳答案

Thrust 的容器仅设计用于 POD(普通旧数据)类型。无法通过在推力中实例化“向量的向量”来创建多维向量,主要是因为 GPU 端的限制导致无法在设备代码路径中传递和使用。

C++ 标准库类型和算法与这些 STL 派生模型的推力主机实现之间存在一定程度的兼容性,但是当您想要同时使用主机和设备库后端时,您应该真正坚持使用主机向量。

关于vector - CUDA推力库: How can I create a host_vector of host_vectors of integers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869049/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com