CUDA
¿Para qué?
Quizás, responderé de inmediato por qué se inventó tal solución. Cuando mantuvimos el proyecto en forma de OpenSource, intentamos mantener la política de “descargar el código, ensamblado con un botón”, pero desde que usamos la tecnología CUDA, la situación se ha vuelto más complicada ... La mayoría de la comunidad gritó que no iban a instalar nada y que no querían instalar SDK de terceros.
Integración de CUDA directamente en .vcxproj
Resolvimos el problema de manera bastante simple: introducimos la línea de comandos CUDA en los "eventos previos a la compilación" y el conjunto de herramientas en el SDK / tools / CUDA.
Eventos previos a la construcción
Los eventos previos a la compilación son una lista de comandos que se ejecutarán en la etapa inicial de compilación.
CMD para la integración de CUDA se ve así "
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 se explica por sí mismo, ya que se acaba de copiar de CMD de CUDA de su proyecto
Sacamos el conjunto de herramientas
Bueno, el proceso aquí es muy simple: intentamos construirlo, detectar el error, soltar .exe / .dll -> verificar nuevamente. Para hacer la vida más 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
Diseño
Bueno, y lo más simple al final es conectar el archivo .cu compilado al enlace: Propiedades -> Vinculador -> Línea de comando e ingrese your_file_name.cu.obj en opciones adicionales .
Conclusión
Por lo tanto, cualquier propietario de VS no necesitará tener instalado CUDA SDK al construir su proyecto.