cudssRepro/build.bat

72 lines
1.9 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 MPIIncludes=-I"%MSMPI_INC%\"
set MPILibPath=-L"%MSMPI_LIB64%\"
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"
set LibraryLinks=-lcudss -lcudart
nvcc -c -o build/%commLayerSource%.obj src/%commLayerSource%.cu ^
-arch=%nvccArch% ^
%CudaIncludes% %OtherIncludes% %MPIIncludes% %CudaLibPaths% %MPILibPath% ^
%LibraryLinks% ^
%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% ^
%MPILibPath% -lmsmpi ^
-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% %MPIIncludes% %MPILibPath% ^
-lcudss -lcudart -lmsmpi ^
%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
)