2013-03-15 71 views
0

我試圖跑,我在this線程發現CUDA的printf例如:Cuda的5.0 printf的工作不

#include <stdio.h> 

__global__ void helloCUDA(float f) 
{ 
    printf("Hello thread %d, f=%f\n", threadIdx.x, f); 
} 

int main() 
{ 
    helloCUDA<<<1, 5>>>(1.2345f); 
    cudaDeviceReset(); 
    return 0; 
} 

它被編譯:

nvcc -arch=sm_20 test.cu -run 

我沒有輸出,以及:

$ nvcc -arch=sm_20 test.cu -run 
$ 

這裏是我的CUDA版本:

$ nvcc --version 
nvcc: NVIDIA (R) Cuda compiler driver 
Copyright (c) 2005-2012 NVIDIA Corporation 
Built on Fri_Sep_21_17:28:58_PDT_2012 
Cuda compilation tools, release 5.0, V0.2.1221 

我使用大黃蜂版本3:

$ optirun --version 
optirun (Bumblebee) 3.1 
Copyright (C) 2011 The Bumblebee Project 

$ uname -a 
Linux zeus 3.5.0-25-generiC#39-Ubuntu SMP Mon Feb 25 18:26:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 

回答

2

變化是cudaDeviceReset()呼叫到cudaDeviceSynchronize()電話。撥打cudaDeviceSynchronize()也撥打cuda error checking。您的GPU或設置可能有問題。