gcc不能识别cuda的<<<>>>该怎么调用gpu程序

2025-04-27 03:51:10
推荐回答(2个)
回答1:

你好, CUDA默认的都是pageabled的memory,page-locked也就是pinned memory可以加快host和device之间的数据传输速度,但是使用太多的page-locked的memory会带来整个程序的效率降低。如果程序中存在频繁的cudaMemcpy

回答2:

在cu文件里面增加一个函数来调用这个<<<>>> 然后g++编译的文件里直接调用这个函数就行
举个例子
原来你的函数是这样的
//hellocuda.cc
__global__ void hello_cuda(){
(省略)
}
//main.cc:
int main(){
hello_cuda<<<1,1>>>();
return 0;
}
改成这样:
//hellocuda.cu
__global__ void hellocuda(){
(省略)
}
void hi_cuda(){
hellocuda<<<1,1>>>();
}
//main.cc:
int main(){
hi_cuda();
return 0;
}
另外 g++编译要的最后一步记得链接cuda运行库 不然有些函数g++找不到定义的