提问人:Peter Newman 提问时间:11/6/2023 最后编辑:paleonixPeter Newman 更新时间:11/7/2023 访问量:37
将自定义数据类型与 Thrust Vectors 和 Cuda 一起使用时出现构建错误
build error using Custom data types with Thrust Vectors and Cuda
问:
我正在将 Thrust 向量用于 cuda 内核,并且我创建了自己的结构,因此我可以将所有数据一起传递,当我初始化自定义类型的主机向量时,我从 thrust 中得到构建错误。
向量的初始化:
host_vector<PhysicsData> physicsDataVector(numPeople + 1, 0);
自定义数据类型:
__device__ __host__ struct PhysicsData {
vector3 position;
vector3 velocity;
vector3 acceleration;
vector3 force;
float massInvert = 1.f;
float drag = 1.f;
bool dead = false;
__device__ __host__ PhysicsData(){
massInvert = 1.f;
drag = 1.f;
dead = false;
position = vector3();
velocity = vector3();
acceleration = vector3();
force = vector3();
};
};
错误:
Severity Code Description Project File Line Suppression State
Error C2664 'void thrust::detail::vector_base<T,Alloc>::fill_init(unsigned __int64,const T &)': cannot convert argument 2 from 'IteratorOrIntegralType' to 'const T &' DefinitelyNotGodzillaCuda C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include\thrust\detail\vector_base.inl 208
答:
0赞
Peter Newman
11/6/2023
#1
问题是我为向量使用了错误的构造函数,由于某种原因,我的构造函数中有一个,因此将其更改为此修复了它, 0
physicsDataVector(numPeople + 1);
评论
int
PhysicsData
PhysicsData
vector3