- 主题:c++往cuda函数传参的问题,int类型是正确输出,int*则出现问题
大佬说的对,传给核函数的参数,如果需要改变值则需要传cudamalloc的指针;否则只能通过cpu传值的形式传入核函数中
【 在 leslin 的大作中提到: 】
:
: 给自己写的kernel传递指针的话,需要保证指针指向的内容是可以被gpu访问的
: kernel只能访问gpu可以访问的内存地址
: ...................
--
FROM 159.226.182.*
是的是的,需要cudamalloc得到device的地址,处理完成后需要cudamemcpy从device拷贝到host中
【 在 Bernstein 的大作中提到: 】
: 不太了解现在的cuda模型
: 不过你传的那些参数,指向的地址是在宿主机的内存空间中,还是在gpu的内存空间中?传给kernel的地址难道不应该先复制到gpu的内存中吗?
: (如果现在是编译器自动生成复制的代码,就当我没说...)
: ...................
--
FROM 159.226.182.*
1111 对的对的
【 在 z16166 的大作中提到: 】
: 楼主肯定没调用cudaMallocManaged(),所以也不是unified memory
: 就是试图直接在GPU里引用host的内存,那肯定是不行的,概念错误。
: cuda有个自带的memcheck工具。
--
FROM 159.226.182.*