CUDA
Pelo que?
Talvez, eu responda imediatamente porque tal solução foi inventada. Quando mantivemos o projeto no formato OpenSource, tentamos manter a política de “baixar o código, montado com um botão”, mas com a utilização da tecnologia CUDA a situação ficou mais complicada ... Grande parte da comunidade gritou que eles não iriam instalar nada e não queriam instalar SDKs de terceiros.
Integração de CUDA diretamente em .vcxproj
Resolvemos o problema de forma bastante simples: colocamos a linha de comando CUDA nos "eventos de pré-construção" e o conjunto de ferramentas no SDK / tools / CUDA.
Eventos de pré-construção
Os eventos de pré-construção são uma lista de comandos que serão executados no estágio inicial de compilação.
CMD para integração CUDA se parece com isto "
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"
Este código é autoexplicativo, uma vez que é apenas copiado do CMD do CUDA do seu projeto
Tiramos o conjunto de ferramentas
Bem, o processo aqui é muito simples: tentamos construí-lo, detectamos o erro, descartamos .exe / .dll -> verifique novamente. Para tornar a vida mais fácil:
- nvcc.exe
- nvcc.profile
- nvlink.exe
- nvvm64_32_0.dll
- ptxas.exe
- cudafe ++. exe
- fatbinary.exe
- cicc.exe
- bin2c.exe
- gpu-library-advisor.exe
Layout
Bem, e a coisa mais simples no final é conectar o arquivo .cu compilado ao link: Propriedades -> Linker -> Linha de comando e inserir your_file_name.cu.obj em opções adicionais .
Conclusão
Assim, qualquer proprietário de VS não precisará do SDK CUDA instalado ao construir seu projeto.