2

プロジェクトをビルドしようとするたびに、これを取得しています:

make all
Building target: CudaMaster
Invoking: NVCC Linker
nvcc --relocatable-device-code=true -gencode arch=compute_35,code=sm_35 -link -o  "CudaMaster"  ./Demodulator.o ./DifferentialDecoder.o ./Downsampler.o ./FileReader.o ./Filter.o ./GPURuntimeMetric.o ./Kernels.o ./PreambleDetector.o ./SampleComparator.o ./Samples.o ./TestBench.o ./main.o   
nvlink error   : Undefined reference to 'cudaGetParameterBuffer'
nvlink error   : Undefined reference to 'cudaLaunchDevice'
nvlink error   : Undefined reference to 'cudaDeviceSynchronize'
make: *** [CudaMaster] Error 255

文字通り理由がわかりません。私は Eclipse 用の Nsight プラグインを使用しており、Tesla K20 GPGPU を搭載した RHEL Server 6.3 で CUDA 5 ツールキットを使用しています。私は動的並列処理も使用していますが、これが問題を引き起こしていると思います。いろいろ調べたところ、これが私の理論を裏付けていると感じましたが、彼は端末から行っていたので、まったく同じではありません。Eclipse の使用中にビルドするにはどうすればよいですか? 設定する必要がある欠けているオプションはありますか?

ありがとう!

4

1 に答える 1

4

動的並列処理を機能させるには、cudadevrt にリンクする必要があります

nsightでは、次のようにします:

  • [プロジェクト] メニュー -> [プロパティ] -> [ビルド] -> [設定] -> [ツール設定] -> [NVCC リンカー] に移動します。

  • 「コマンド」の文字列に「-lcudadevrt」を追加します (つまり、「nvcc -lcudadevrt」)。

于 2013-06-26T15:49:59.750 に答える