CUDA
Untuk apa?
Mungkin, saya akan segera menjawab mengapa solusi seperti itu ditemukan. Ketika kami menyimpan proyek dalam bentuk OpenSource, kami mencoba untuk mempertahankan kebijakan โunduh kode, dirakit dengan satu tombolโ, tetapi sejak menggunakan teknologi CUDA, situasinya menjadi lebih rumit ... Sebagian besar komunitas berteriak bahwa mereka tidak akan memasang apa pun dan tidak ingin memasang SDK pihak ketiga.
Integrasi CUDA langsung ke .vcxproj
Kami memecahkan masalah dengan cukup sederhana: kami memasukkan baris perintah CUDA ke dalam "peristiwa pra-bangun", dan set alat ke dalam SDK / tools / CUDA.
Acara pra-bangun
Peristiwa pra-build adalah daftar perintah yang akan dijalankan pada tahap awal kompilasi.
CMD untuk integrasi CUDA terlihat seperti ini "
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"
Kode ini cukup jelas, sejak itu hanya disalin dari CMD dari CUDA proyek Anda
Kami mengambil toolsetnya
Nah, prosesnya di sini sangat sederhana: kami mencoba membangunnya, menangkap kesalahan, menjatuhkan .exe / .dll -> periksa lagi. Untuk membuat hidup lebih mudah:
- nvcc.exe
- nvcc.profile
- nvlink.exe
- nvvm64_32_0.dll
- ptxas.exe
- cudafe ++. exe
- fatbinary.exe
- cicc.exe
- bin2c.exe
- gpu-library-advisor.exe
Tata Letak
Nah, dan hal paling sederhana di bagian akhir adalah menghubungkan file .cu yang dikompilasi ke tautan: Properties -> Linker -> Command line dan masukkan your_file_name.cu.obj ke opsi tambahan .
Kesimpulan
Dengan demikian, pemilik VS mana pun tidak perlu menginstal CUDA SDK saat membangun proyek Anda.