66 lines
1.7 KiB
Batchfile
66 lines
1.7 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
@rem I rely on environment variables here.
|
|
@rem set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4
|
|
@rem set CUDSS_PATH=C:\Program Files\NVIDIA\cuDSS
|
|
|
|
set nvccArch=sm_120
|
|
set commLayerSource=commlayer
|
|
set mainSource=main
|
|
set CommonXCompFlags=/W3 /O2 /EHsc
|
|
set DllXcompilerFlags="%CommonXCompFlags% /MD"
|
|
set ExeXcompilerFlags="%CommonXCompFlags% /MT"
|
|
set IgnoreWarnings=-Wno-deprecated-gpu-targets
|
|
|
|
set CudaIncludes=-I"%CUDA_PATH%\include" -I"%CUDSS_PATH%\include"
|
|
set OtherIncludes=-Iinclude
|
|
set CudaLibPaths=-L"%CUDA_PATH%\lib\x64" -L"%CUDSS_PATH%\lib\12"
|
|
|
|
nvcc -c -o build/%commLayerSource%.obj src/%commLayerSource%.cu ^
|
|
-arch=%nvccArch% ^
|
|
%CudaIncludes% %OtherIncludes% %CudaLibPaths% ^
|
|
-lcudss -lcudart ^
|
|
%IgnoreWarnings% ^
|
|
-Xcompiler %DllXcompilerFlags%
|
|
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo Compile failed: %commLayerSource%.cu
|
|
exit /b 1
|
|
)
|
|
|
|
nvcc -shared -o build/%commLayerSource%.dll build/%commLayerSource%.obj ^
|
|
-arch=%nvccArch% ^
|
|
%IgnoreWarnings% ^
|
|
-Xcompiler %DllXcompilerFlags% ^
|
|
-Xlinker "/NODEFAULTLIB:LIBCMT"
|
|
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo DLL link failed
|
|
exit /b 1
|
|
)
|
|
|
|
nvcc -o build/%mainSource% src/%mainSource%.cu ^
|
|
-arch=%nvccArch% ^
|
|
%CudaIncludes% %OtherIncludes% %CudaLibPaths% ^
|
|
-lcudss -lcudart ^
|
|
%IgnoreWarnings% ^
|
|
-Xcompiler %ExeXcompilerFlags%
|
|
|
|
|
|
|
|
@rem nvcc -o build/cudss_test.exe src/cudss_test.cu ^
|
|
@rem -I"%CUDA_PATH%\include" ^
|
|
@rem -I"%CUDSS_PATH%\include" ^
|
|
@rem -L"%CUDA_PATH%\lib\x64" ^
|
|
@rem -L"%CUDSS_PATH%\lib\12" ^
|
|
@rem -lcudss -lcudart ^
|
|
@rem -Xcompiler "/W3 /O2"
|
|
|
|
if %ERRORLEVEL% EQU 0 (
|
|
echo Build successful: %mainSource%.exe
|
|
) else (
|
|
echo Build failed
|
|
exit /b 1
|
|
)
|