2014-09-19 41 views
0

最近我开始学习CUDA。这是我从内核打印的简单代码。无法理解简单CUDA函数中的错误

#include"cuPrintf.cu" 
#include"cuPrintf.cuh" 
#include<cuda.h> 
#include<stdio.h> 
__global__ void cuprint() 
{ 
    cuPrintf("He he, I am printing from here"); 
} 
main() 
{ 
    cuprint<<<1,1>>>cuprint(); 
} 

cuPrintf.cucuPrintf.cuh下载并保存在我写这个程序的目录。我收到以下错误。

cuprint.cu(11): error: expected a "(" 
cuprint.cu(13): error: expected a declaration 

任何人都可以告诉我为什么我得到这些错误。

回答

4

要调用了错误的方式,你应该称呼它cuprint<<<1,1>>>();
并根据此页:https://code.google.com/p/stanford-cs193g-sp2010/wiki/TutorialHelloWorld你需要添加一些更多的功能(init()和东西)),但我无法证实因为我在这里没有CUDA PC)

+0

这消除了我的错误。但cuPrintf不在我的屏幕上打印任何东西 – Pawan 2014-09-19 10:04:49

+0

您正在使用哪种CUDA版本? – 2014-09-19 10:06:13

+0

我正在使用cuda 6 – Pawan 2014-09-19 10:06:47

6

有没有必要使用cuPrintf与CUDA 6.0和计算能力3.5卡。

这个简单的代码将工作

#include<stdio.h> 

__global__ void cuprint() 
{ 
    printf("Printing...\n"); 
} 

main() 
{ 
    cuprint<<<1,1>>>(); 
    cudaDeviceSynchronize(); 
} 
+0

我收到以下错误:不允许从__global__函数(“cuprint”)调用__host__函数(“printf”) – Pawan 2014-09-22 06:36:46

+0

@ user130004您正在编译正确的计算能力吗? – JackOLantern 2014-09-22 07:09:37