「箱から出して」作業する習慣、またはCUDAを.vcxprojに押し込んだ方法

画像

CUDA



何のために?



おそらく、なぜそのようなソリューションが発明されたのか、すぐに答えます。プロジェクトをOpenSourceの形で維持するときは、「コードをダウンロードして1つのボタンで組み立てる」というポリシーを維持しようとしましたが、CUDAテクノロジーを使用して以来、状況はさらに複雑になりました...コミュニティのほとんどが叫びました彼らは何もインストールするつもりはなく、サードパーティのSDKをインストールしたくなかった。



CUDAの.vcxprojへの直接統合



この問題は非常に簡単に解決しました。CUDAコマンドラインを「ビルド前のイベント」に詰め込み、ツールセットをSDK /ツール/ CUDAに詰め込みました。



ビルド前のイベント



ビルド前のイベントは、コンパイルの初期段階で実行されるコマンドのリストです。



CUDA統合用のCMDは次のようになります "

nvcc.exe -gencode=arch=compute_30,code=\"sm_30,compute_30\" --use-local-env -x cu  -I..\..\engine.vc2008\xrCore\XMLCore -I../../sdk/include/dx/ -I../../sdk/include/ -I..\..\engine.vc2008\xrQSlim\src -I../../sdk/include/optix/ -I../../sdk/include/cuda/ -I$(xrIncl)  -G   --keep-dir $(Platform)\$(Configuration) -maxrregcount=0  --machine 64 --compile -cudart static  -g   -DFORCE_NO_EXCEPTIONS -D_USE_MATH_DEFINES -DWIN32 -DDEBUG -D_WINDOWS -D_USRDLL -DXRLC_LIGHT_EXPORTS -D_SECURE_SCL=0 -D_ITERATOR_DEBUG_LEVEL=0 -D_VC80_UPGRADE=0x0710 -DWIN32 -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDLL -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MD " -o $(IntermediateOutputPath)LightPoint.cu.obj "$(ProjectDir)LightPoint.cu"
      
      





このコードは一目瞭然です。プロジェクトのCUDAからCMDからコピーされただけです



ツールセットを取り出します



さて、ここでのプロセスは非常に単純です。ビルドを試み、エラーをキャッチし、.exe /.dllを削除します ->もう一度確認します。生活を楽にするために:

  • nvcc.exe
  • nvcc.profile
  • nvlink.exe
  • nvvm64_32_0.dll
  • ptxas.exe
  • cudafe ++。exe
  • fatbinary.exe
  • cicc.exe
  • bin2c.exe
  • gpu-library-advisor.exe




レイアウト



さて、最後に最も簡単なことは、コンパイルされた.cuファイルをリンクに接続することです: プロパティ->リンカー->コマンドラインそして追加のオプションにyour_file_name.cu.objを入力します



結論



したがって、VSの所有者は、プロジェクトをビルドするときにCUDASDKをインストールする必要はありません。



All Articles