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をインストールする必要はありません。