我是CUDA编程的初学者,有一个问题。
当我按值传递参数时,如下所示:
__global__ void add(int a, int b, int *c) {
// some operations
}
由于变量a和b被传递给内核函数添加作为函数调用堆栈中的复制值,所以我猜想需要一些内存空间来复制。
如果我是对的,是在GPU或主机的主内存中复制这些参数的额外内存空间吗?
我想知道这个问题的原因是我应该把一个大的结构传递给内核函数。
我还以为传递一个结构指针,但这种方式似乎需要为结构和每个成员变量调用cudamalloc。