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 に答える