10

既存の C++ Visual Studio プロジェクトに CUDA ファイルを追加しようとしています。CUDA 5.0 SDK をインストールしました。新しい .cu ファイルを作成し、CUDA ファイルのプロパティでアイテム タイプを CUDA/C++ に設定しました。しかし、コンパイラが CUDA キーワードを認識しないというエラーが表示されてコンパイルされないように見えます。私が得るエラーの1つは次のとおりです。

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

助言がありますか?

4

4 に答える 4

7

これを行う最善の方法は、既存の CPU プロジェクトで次のことを実行することであることがわかりました。

1) 依存関係の構築 -> カスタマイズの構築

Cudaチェックボックスをクリックします

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

$(CudaToolkitLibDir) を追加のライブラリ設定 (リンカー タブ) に $(CudaToolkitIncludeDir) を追加のインクルード ディレクトリに (c++ タブ)

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

次に、CUDA タブを比較します

何らかの理由で、ターゲット マシンのアーキテクチャに 32 ビットが事前に選択されていることがわかったので、それを 64 ビットに変更しました。

この後、define _CUDA_CODE_COMPILE_ をプリプロセッサ定義に追加して、CUDA コンパイルと CPU コンパイルを切り替えました。

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

理想的ではありませんが、NVCC がインストールされていることを示す定義が設定されていないように見えるため必要です (シェル コマンドの実行以外に!)。

于 2017-09-05T08:10:41.367 に答える
6

現時点ではすべてを実行することはできませんが、次の手順が必要だと思います。

  1. プロジェクト エクスプローラー ビルドでプロジェクトを右クリックします...(カスタマイズ?) [私のバージョンはドイツ語です。キーワードは正確にはわかりませんが、「ビルド...」に関するものです。ここで「CUDA 5.0」を確認する必要があります。
  2. コンパイラ オプション (プロジェクト プロパティ) の [全般] タブで、Cuda の [追加のインクルード ディレクトリ] を設定します。
  3. リンカーの「入力」タブの「追加の依存関係」に cuda libfile を追加します。
  4. ファイルを Cuda ファイルとしてマークします (既に完了しています)。
于 2013-07-18T04:32:41.043 に答える
0

このビデオが役立つかもしれません。

このビデオは、CoffeeBeforeArch YouTube チャンネルからのものです。
彼はすべてのステップを通過します:

  1. 空の C プロジェクトの作成。
  2. ビルド依存関係の変更。
  3. ソリューションのプロパティのリンカー セクションに特定のライブラリを追加します。
于 2021-01-16T11:12:39.807 に答える