求教CUDA编程中device中动态内存分配问题

陆泽希 2016-04-16 07:40:22
大家好,初学CUDA编程,现在已有C语言代码,在将其用CUDA C改写的时候遇到了内存分配的问题,希望大家可以指点一下,谢谢~~

是这样子的,C语言代码中有个4阶复数矩阵求逆的子函数,其中有这么一句话:

int *a_inv = (int*)malloc(sizeof(int)*N);


并将a_inv这个指针变量作为返回值。在C中这么写应该是没有问题的,但是这个子函数在CUDA中是定义为__device__的,并且在
__global__中需要调用它,那么我该如何在CUDA编程的时候在__device__中动态分配内存呢?

我在网上查了一下,GPU端的内存都是在host端管理的,也就是说我需要用cudamalloc在__device__中分配内存,至于传输是不是就不能用cudamemcpy了?而是要用cudamemcpytosymbol?也就是说,在host分配内存之后如何将分配的空间与在__device__中定义的指针变量联系起来呢?

我不知道我有没有把问题说清楚,有哪里没说清楚的跟我提一下哈,希望大家帮忙解答一下这个问题,再次谢谢~~
...全文
491 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
陆泽希 2016-04-19
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/391928275 建议看下这个帖子。。 至于关键词高亮,你有没有把.cu文件加入高亮的设置?如果加入的话,就是头文件问题了, 你要#include一些CUDA的头文件
chen0yi 2016-04-18
  • 打赏
  • 举报
回复
我也初学~我是过来问楼主咋配置的环境,为啥你的malloc就能变色,我的__global__这些都是未声明

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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