1

我正在尝试运行我在线程中找到的 cuda 的 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
4

1 回答 1

3

将该cudaDeviceReset()呼叫更改为cudaDeviceSynchronize()呼叫。还要对通话进行cuda 错误检查。cudaDeviceSynchronize()您的 GPU 或设置可能存在问题。

于 2013-03-15T04:41:32.513 回答