CUDA结构体内指针问题

tianyihan163 2013-06-03 09:43:08
初学CUDA,想请教一下:
/** a node in a k-d tree */
#pragma pack(16)
struct kd_node
{
int index;
int index_left;
int index_right;
int ki; /**< partition key index */
double kv; /**< partition key value */
int leaf; /**< 1 if node is a leaf, 0 otherwise */
struct feature* features; /**< features at this node */
int n; /**< number of features */
struct kd_node* kd_left; /**< left child */
struct kd_node* kd_right; /**< right child */
};
#pragma pack()
struct feature
{
int d; /*descriptor length*/
double descr[FEATURE_MAX_D]; /*descriptor*/
void* feature_data; /*user-definable data*/
};

其中,struct kd_node中的int n,为kd_node中features的个数,对不同的kd_node,features的个数是不同的。
然后定义两个结构体指针:
struct kd_node* d_expl;
cudaMalloc((void**)&d_expl,n2*sizeof(struct kd_node));

struct feature* d_tree_feat;
cudaMalloc((void**)&d_tree_feat,n2*sizeof(struct feature));

在global函数中这样写:
int tid=threadIdx.x+blockIdx.x*blockDim.x;
d_tree_feat[tid]=d_expl[tid].features[0];
貌似不对,我想是不是因为没有给d_expl中的feature分配显存造成的,要是这样的话,这个应该怎样分配显存啊???
有没有谁能给解答一下,急。。。这个问题纠缠了一个一星期了,没时间浪费了。先谢谢了。
...全文
981 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianyihan163 2013-06-03
  • 打赏
  • 举报
回复
初学CUDA,这个问题真的不知道该怎么办了,大神们多多帮帮我啊。。。急。。。

231

社区成员

发帖
与我相关
我的任务
社区描述
CUDA on Windows XP
社区管理员
  • CUDA on Windows XP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧