CUDA
Und warum?
Vielleicht werde ich sofort antworten, warum eine solche Lösung erfunden wurde. Als wir das Projekt in Form von OpenSource beibehalten haben, haben wir versucht, die Richtlinie "Herunterladen des Codes, zusammengestellt mit einer Schaltfläche" beizubehalten, aber seit der Verwendung der CUDA-Technologie ist die Situation komplizierter geworden ... Der größte Teil der Community rief dass sie nichts installieren wollten und keine SDKs von Drittanbietern installieren wollten.
Integration von CUDA direkt in .vcxproj
Wir haben das Problem ganz einfach gelöst: Wir haben die CUDA-Befehlszeile in die "Pre-Build-Ereignisse" und das Toolset in das SDK / tools / CUDA eingefügt.
Ereignisse vorab erstellen
Pre-Build-Ereignisse sind eine Liste von Befehlen, die in der Anfangsphase der Kompilierung ausgeführt werden.
CMD für die CUDA-Integration sieht so aus "
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"
Dieser Code ist selbsterklärend, da Es wird nur von CMD aus CUDA Ihres Projekts kopiert
Wir nehmen das Toolset heraus
Nun, der Prozess hier ist sehr einfach: Wir versuchen ihn zu erstellen, den Fehler abzufangen, .exe / .dll zu löschen -> erneut zu überprüfen. Um das Leben leichter zu machen:
- 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
Nun, und das Einfachste am Ende ist, die kompilierte .cu-Datei mit dem Link zu verbinden: Eigenschaften -> Linker -> Befehlszeile und geben Sie Ihren_Dateinamen.cu.obj in zusätzliche Optionen ein .
Fazit
Daher muss kein VS-Besitzer das CUDA SDK beim Erstellen Ihres Projekts installieren.