2013-07-18 72 views
5

CUDAファイルを既存のC++ Visual Studioプロジェクトに追加しようとしています。私はCUDA 5.0 SDKをインストールしました。私は新しい.cuファイルを作成し、そのCUDAファイルプロパティでCUDA/C++にItem Typeを設定しました。しかし、コンパイラがCUDAのキーワードを認識しないというエラーを出すだけでコンパイルされないようです。私が取得エラーの一つは次のとおりです。ビジュアルスタジオの既存のcプロジェクトにcudaファイルを追加する

エラーC2065: 'threadIdx':宣言されていない識別子

任意の提案ですか?

+0

あなたはVS2010を使用していますか?[ウィンドウの開始ガイド](http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-microsoft-windows/index.html)の指示に従っていますか?あなたはcudaサンプルプログラムのいずれかを構築できますか? –

+0

解明のための質問には答えられていないため、「あなたが求めているものは不明」を閉じるよう声をかけてください。 –

答えて

0

あなたは

あなたはどのように視覚的なスタジオでのセットアップをする上でのチュートリアルのいずれかを以下の通りです.cuファイルのための右のコンパイラを選択する必要がありますか?

http://blog.norture.com/2012/10/gpu-parallel-programming-in-vs2012-with-nvidia-cuda/

+0

タイプをCUDA/C++に変更すると、VSはNVCCに切り替わりませんか?私は新しいCUDAプロジェクトの作成を試み、プロジェクトのプロパティを一致させました。私はまた、新しいCUDAプロジェクトで使用されたのと同じヘッダーファイルを追加しました。助けてくれなかった。 – shaveenk

4

私は、現時点ではそれをすべてを通過することはできませんが、私はそれらのステップが必要だと思う:

  1. 右(...カスタマイズを構築するプロジェクトエクスプローラでプロジェクトをクリックしてください? )[私のバージョンはドイツ語です。私はキーワードを正確に伝えることはできませんが、それは "Build ..."に関するものです。ここでは「CUDA 5.0」をチェックする必要があります。
  2. コンパイラオプション(プロジェクトプロパティ)の[全般]タブで、Cudaの「追加のインクルードディレクトリ」を設定します。
  3. リンカの[入力]タブの[追加の依存関係]にcuda libfileを追加します。
  4. ファイルをCudaファイルとしてマークしています(完了している)。
  5. 私はこれを行うための最善の方法は、依存関係を構築する)は、既存のCPUプロジェクト

    1で次の手順を実行することであることがわかった

+0

私は全く同じ指示に従った。ステップ3では、cudart.libを意味していますか?私はまだ同じエラーで終わっています。私が言及しなければならないことの1つは、私の.cuファイルに主な機能がないということです。私は.cuファイルで記述された関数を.cppファイルから呼び出しています。 .cuファイルにデバイスコードとホストコードの両方があり、私は.cppファイルからホスト関数を呼び出すだけです。これは問題ないはずですか? – shaveenk

+0

私もそうだと思います。 – Pixelchemist

+3

VS 2013では、プロジェクトを右クリックしてBuild Dependencies、Build Customizations ...を順番に実行すると、インストールされているCudaバージョンのポップアップが表示され、必要なバージョンのチェックボックスをオンにします。 – LawfulEvil

1

- >カスタマイズのを構築

クーダ]チェックボックスをオンに

2をクリックしてください)ウィザードを使用して新しい簡単なCUDAプロジェクトを作成します(おそらくCUDAプロジェクトを最初にテストすることをお勧めします)。両方のプロジェクトをIDEにロードし、2つのプロジェクト間の設定を比較するには、 をプロジェクトに追加する必要があります設定

$(CudaToolkitLibDir)追加ライブラリの設定(リンカタブ) $(CudaToolkitIncludeDir)に追加する(++タブc)のディレクトリを含める

cudart.lib追加の依存関係(リンカタブ)に

次に比較CUDAのタブ

何らかの理由でターゲットマシンのアーキテクチャで32ビットがあらかじめ選択されていたので、64ビットに変更しました。

これ以降、CUDAまたはCPUコンパイルを切り替えるためのプリプロセッサ定義に_CUDA_CODE_COMPILE_定義を追加しました。

#ifdef _CUDA_CODE_COMPILE_ 
    cudaCodeFunction(); 
#else 
    cpuCodeFunction(); 
#endif 

ないNVCCがインストールされていることを示すように設定何ら定義はないように思われるので、理想的ではなく、必要な(シェルコマンドを実行する以外!)

関連する問題