web-dev-qa-db-ja.com

Visual Studio 2010でCUDAアプリを起動するにはどうすればよいですか?

直接の質問:Visual Studio 2010内で簡単なhello world CUDAプロジェクトを作成するにはどうすればよいですか?

背景:CUDAカーネルを作成しました。私はVisual Studio 2005の.vcprojファイルに精通しています-手作業でいくつか調整しました。 VS 2005では、CUDAカーネルをビルドする場合、カスタムビルドルールを追加してから、nvcc呼び出しを明示的に定義してファイルをビルドします。

本当にnSightを試してみたいので、Win 7とVS 2010に移行しました。 nSight 1.5がインストールされています。しかし、これは私が完全に迷っているところです。以前と同様に続行すると、nvccはmsvc 8.0および9.0のみをサポートすることを報告します。しかし、ウェブサイトはそれがVS 2010をサポートすることを明確に述べています。

VS 2008(msvc 9.0)もインストールする必要がある別の場所、つまりWordを読みました。今そうする。

しかし、私の問題の少なくとも一部は、自社開発のカスタムビルドツールの仕様に起因していると思います。 Severalwebsites * .rulesファイルをビルドに追加することについて話しますが、これはVS 2008にのみ適用されると収集しました。「ビルドのカスタマイズ」の下にCUDAが表示されます3.1と3.2ですが、プロジェクトにカーネルを追加すると、ビルドされません。 別のウェブサイト キーが3つのファイルであることを宣言します:Cuda.props Cuda.xml Cuda.targetsしかし、それはしませんこれらのファイルを追加する方法または場所を言ってください。あるいは、ウェブサイトで参照されているメモが理解できないことをギャンブルします。

Soは、nSight 1.5セットアップまたはNvCudaRuntimeApi.v3を使用して、CUDAカーネルを構築する単純なプロジェクトをVS 2010で作成する方法を知っていますか? 2.CUDA 3.2 RCに同梱されているルールファイル?

前もって感謝します!賞金を差し上げますが、合計65ポイントしかありません。

23
M. Tibbits

CUDA TOOLKIT 4.0以降

Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizationsディレクトリにインストールされている)ビルドカスタマイズファイルは、プロジェクト内の.cuファイルをコンパイルしてアプリケーションにリンクする方法をVisual Studioに「教えます」。カスタマイズのインストールをスキップすることを選択した場合、またはCUDAの後にVS2010をインストールした場合は、Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integrationの指示に従って後でカスタマイズを追加できます。

  • 標準のMSウィザードを使用して新しいプロジェクトを作成します(例:空のコンソールプロジェクト)
  • ホスト(シリアル)コードを.cまたは.cppファイルに実装する
  • NVIDIAビルドカスタマイズを追加します(プロジェクトを右クリック、ビルドカスタマイズ、関連するCUDAボックスをチェック)
  • CUDA 4.0を使用する場合は、注1を参照してください
  • ラッパーとカーネルを.cuファイルに実装する
  • ビルドのカスタマイズの前に.cuファイルを追加した場合、.cuファイルのタイプをCUDA C/C++に設定する必要があります(ファイルを右クリックして、Properties、setアイテムタイプ
  • CUDAランタイムライブラリを追加します(プロジェクトを右クリックしてPropertiesを選択し、次にLinker-> Inputcudart.lib追加の依存関係
  • 次に、プロジェクトをビルドすると、.cuファイルが.objにコンパイルされ、リンクに自動的に追加されます

ちなみに私は可能であればcutilを避け、代わりに独自のチェックを行うことを推奨します。 CutilはNVIDIAでサポートされていません。これは、SDKの例を実際のプログラムとアルゴリズムの設計に焦点を合わせたままにし、すべての例で同じことを繰り返さないようにするために使用されます(例:コマンドラインの解析)。あなたがあなた自身のものを書くならば、あなたははるかに優れたコントロールを持ち、何が起こっているかを知るでしょう。たとえば、cutilSafeCallラッパーは、関数が失敗した場合にexit()を呼び出します。実際のアプリケーション(サンプルではなく)は、おそらくよりエレガントに失敗を処理する必要があります。


[〜#〜]ノート[〜#〜]

  1. CUDA 4.0の場合のみ、ビルドのカスタマイズに この修正 を適用する必要があります。このパッチは、次のメッセージを修正します。

要素の「AssemblyFile」属性の値「$(CudaBuildTasksPath)」を評価した結果「」は無効です

44
Tom

ここに別の良いチュートリアル:

http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010/

「<」に関するエラーが発生した場合は、このステップをメモしてください(以前の回答から):

ビルドのカスタマイズの前に.cuファイルを追加した場合、.cuファイルのタイプをCUDA C/C++に設定する必要があります(ファイルを右クリックして、プロパティ、設定アイテムタイプ)

しかし、あなたが彼らのステップに従えば、それはうまくいくはずです!

7
biaspoint

この回答はCUDA 3.2に適用され、4.0以降はCUDAがVC 10コンパイラを直接サポートします。詳細は他の回答を参照してください

VS 2008または6.1 Windows SDKをインストールする必要があります。これは、NSight 1.5 RCまたはCUDA 3.2 SDKが内部でVC 9コンパイラを使用しているためです。2008がインストールされていればこれで問題なく動作し、SDKでも動作するはずですが、試しました。

NSight 1.5やCUDA 3.2 SDKを使用すれば、カスタムビルドルールを変更する必要はありません。私はそこに行って、それは痛いです。最新のビルドでは、すべてがなくなります。

  • VC++プロジェクトを作成します。
  • それに.CUファイルを追加します。
  • ソリューションエクスプローラーでプロジェクトファイルを選択します。
  • プロジェクトを開く|カスタマイズをビルド...
  • 「CUDA 3.2(.targets、.props)」のカスタマイズを確認します。
  • プロジェクトで.CUファイルを選択し、Alt-Enterキーを押してそのプロパティを表示します。
  • アイテムタイプが「CUDA C/C++」に設定されていることを確認します

ビルドするだけです。これが役立つかどうか、これがメモリにあるため問題が発生したかどうかをお知らせください。

CUDAとVS 2010を連携させる良いニュースは、はるかに簡単になりました。

アデ

ところで:私は私のブログの投稿を更新します。

7
Ade Miller