我正在尝试在我的 cuda 设备上复制一个包含大量变量和方法的大类。我已将类定义放入 .cuh 文件中,并且能够创建对象并在我的设备代码中使用它们。
现在的问题是,有没有办法将已经存在的对象从主机获取到设备?我仍在使用我的代码的串行版本来读取一些几何和物理数据。如果可以在不使用中间数组的情况下将其复制到设备上,那么设备如何在不使用 sizeof 的情况下处理其大小?
我是否使用类似的东西进行分配?
MyClass *MyObject;
int size = sizeog(MyClass);
cudaMalloc((void**)&MyObject_device, size);
cudaMemCpy(Myobject_device, MyObject, size, cudaMemcpyHostToDevice);
任何建议将不胜感激。