2014-09-19 59 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