我一直在尝试将一些cuda / C代码转换为更多的OO代码,但就我目前对cuda功能机制的理解而言,我的目标似乎并不容易实现。对于这种情况,我也都找不到很好的解释。毕竟这不可能。
我有一个myclass类的全局对象,其中包含要填充到内核中的数组。
如何定义myClass中的方法,以便从设备可见数组和布尔成员,然后可以将数组复制回主机?我使用的是cuda 7.5,我的卡的计算能力为3.5。
这是描述情况的临时结构:
#include <cstdio>
#include <cuda.h>
#include <cuda_runtime.h>
class myClass
{
public:
bool bool_var; // Set from host and readable from device
int data_size; // Set from host
__device__ __host__ myClass();
__device__ __host__ ~myClass();
__host__ void setValues(bool iftrue, int size);
__device__ void dosomething(int device_parameter);
__host__ void export();
// completely unknown methods
__host__ void prepareDeviceObj();
__host__ void retrieveDataToHost();
private:
int *data; // …Run Code Online (Sandbox Code Playgroud)