我們需要做些什麼來使用cuPrintf()? (設備計算能力爲1.2,Ubuntu的12)我找不到「cuPrintf.cu」和「cudaPrintf.cuh」,於是我下載了他們的代碼,並將它們包括:我們如何使用cuPrintf()?
#include "cuPrintf.cuh"
#include "cuPrintf.cu"
順便說一句,這是其他地區驗證碼:
__global__ void hello_kernel (float f) {
printf ("Thread number %d. f = %d\n", threadIdx.x, f);
}
int main() {
dim3 gridSize = dim3 (1);
dim3 blockSize = dim3 (16);
cudaPrintfInit();
hello_kernel <<< gridSize, blockSize >>> (1.2345f);
cudaPrintfDisplay (stdout, true);
cudaPrintfEnd();
return (0);
}
但NVCC還是給出了一個錯誤:
[email protected]:~/CUDA/matrixMult$ nvcc printfTest.cu -o printfTest
printfTest.cu(5): error: calling a __host__ function("printf") from a __global__
function("hello_kernel") is not allowed
謝謝!
調用'cuPrintf'在內核中沒有'printf' – talonmies