Kebiasaan bekerja "di luar kotak" atau cara kami memasukkan CUDA ke dalam .vcxproj

gambar

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.



All Articles