用户
 找回密码
 立即注册
huanhuan 该用户已被删除
发表于 2013-10-20 22:06:46
103512
,之前也看了论坛有人发的帖子,但是和我的情况不太一样,琢磨了好久,还是没搞明白,索性再发一次。


class implicant
{
public:
string info;
string includes;
int weight;
bool mark;
implicant()
{
  weight = 0;
  mark = true;
}
implicant &operator=(const implicant &s)
{
  info = s.info;
  includes = s.includes;
  weight = s.weight;
  mark = s.mark; //标志也要赋值,否则原来memcpy拷过去的有可能mark=false的
  
  return *this;
}
};

在这里,我可以做如下处理吗?maxSize*maxSize/2表示分配的数组的大小,表示常数

unsigned int mem_size = sizeof(implicant)*maxSize*maxSize/2
implicant* h_imp = (implicant*)malloc(mem_size);

//在device端分配显存,d_表示device端
implicant* d_imp;
CUDA_SAFE_CALL(cudaMalloc((void**)&d_imp,mem_size));

//将内存中的输入数据读入显存,这样就完成了主机对设备的数据写入
CUDA_SAFE_CALL(cudaMemcpy(d_imp,h_imp,mem_size,cudaMemcpyHostToDevice));

还是分别将h_imp.info  h_imp.includes   h_imp.weight   h_imp.mark  在device端分配显存,再从主机传到设备显存





使用道具 举报 回复
发表于 2013-10-21 11:52:09
楼主您好,我不是C++用户,无法为您回答此问题。

建议您等待其他会员,版主,NVIDIA原厂支持和总版主为您解答。
使用道具 举报 回复 支持 反对
发表于 2013-10-28 11:12:18
横扫千军 发表于 2013-10-21 11:52
楼主您好,我不是C++用户,无法为您回答此问题。

建议您等待其他会员,版主,NVIDIA原厂支持和总版主为您 ...

因为您的问题长期无人回复,因为将被移动到灌水专区,请您谅解。
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册