diff --git a/.github/workflows/build-magma-windows.yml b/.github/workflows/build-magma-windows.yml index 7948ae9d5..82756018b 100644 --- a/.github/workflows/build-magma-windows.yml +++ b/.github/workflows/build-magma-windows.yml @@ -17,7 +17,7 @@ jobs: runs-on: windows-2019 strategy: matrix: - cuda_version: ["124", "121", "118"] + cuda_version: ["126", "124", "118"] config: ["Release", "Debug"] env: CUDA_VERSION: ${{ matrix.cuda_version }} @@ -32,9 +32,10 @@ jobs: - name: Build MAGMA and push to S3 run: windows/internal/build_magma.bat - name: Save as artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: path: magma_*_cuda*_*.7z + overwrite: true push-windows-magma: if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} environment: magma diff --git a/conda/pytorch-nightly/bld.bat b/conda/pytorch-nightly/bld.bat index 40e81e88a..78d108816 100644 --- a/conda/pytorch-nightly/bld.bat +++ b/conda/pytorch-nightly/bld.bat @@ -25,10 +25,7 @@ if "%desired_cuda%" == "11.8" ( set TORCH_CUDA_ARCH_LIST=%TORCH_CUDA_ARCH_LIST%;3.7+PTX set TORCH_NVCC_FLAGS=-Xfatbin -compress-all --threads 2 ) -if "%desired_cuda%" == "12.1" ( - set TORCH_NVCC_FLAGS=-Xfatbin -compress-all --threads 2 -) -if "%desired_cuda%" == "12.4" ( +if "%desired_cuda:~0,3%" == "12." ( set TORCH_NVCC_FLAGS=-Xfatbin -compress-all --threads 2 ) diff --git a/windows/cuda126.bat b/windows/cuda126.bat new file mode 100644 index 000000000..bfcc19da7 --- /dev/null +++ b/windows/cuda126.bat @@ -0,0 +1,58 @@ +@echo off + +set MODULE_NAME=pytorch + +IF NOT EXIST "setup.py" IF NOT EXIST "%MODULE_NAME%" ( + call internal\clone.bat + cd .. +) ELSE ( + call internal\clean.bat +) +IF ERRORLEVEL 1 goto :eof + +call internal\check_deps.bat +IF ERRORLEVEL 1 goto :eof + +REM Check for optional components + +set USE_CUDA= +set CMAKE_GENERATOR=Visual Studio 15 2017 Win64 + +IF "%NVTOOLSEXT_PATH%"=="" ( + IF EXIST "C:\Program Files\NVIDIA Corporation\NvToolsExt\lib\x64\nvToolsExt64_1.lib" ( + set NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt + ) ELSE ( + echo NVTX ^(Visual Studio Extension ^for CUDA^) ^not installed, failing + exit /b 1 + ) +) + +IF "%CUDA_PATH_V124%"=="" ( + IF EXIST "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin\nvcc.exe" ( + set "CUDA_PATH_V124=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6" + ) ELSE ( + echo CUDA 12.6 not found, failing + exit /b 1 + ) +) + +IF "%BUILD_VISION%" == "" ( + set TORCH_CUDA_ARCH_LIST=5.0;6.0;6.1;7.0;7.5;8.0;8.6;9.0 + set TORCH_NVCC_FLAGS=-Xfatbin -compress-all +) ELSE ( + set NVCC_FLAGS=-D__CUDA_NO_HALF_OPERATORS__ --expt-relaxed-constexpr -gencode=arch=compute_50,code=sm_50 -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_75,code=sm_75 -gencode=arch=compute_80,code=compute_80 -gencode=arch=compute_86,code=compute_86 -gencode=arch=compute_90,code=compute_90 +) + +set "CUDA_PATH=%CUDA_PATH_V126%" +set "PATH=%CUDA_PATH_V126%\bin;%PATH%" + +:optcheck + +call internal\check_opts.bat +IF ERRORLEVEL 1 goto :eof + +call internal\copy.bat +IF ERRORLEVEL 1 goto :eof + +call internal\setup.bat +IF ERRORLEVEL 1 goto :eof diff --git a/windows/internal/build_magma.bat b/windows/internal/build_magma.bat index 442cadb18..c33620005 100644 --- a/windows/internal/build_magma.bat +++ b/windows/internal/build_magma.bat @@ -35,10 +35,7 @@ cd magma mkdir build && cd build set GPU_TARGET=All -if "%CUVER_NODOT%" == "124" ( - set CUDA_ARCH_LIST=-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -) -if "%CUVER_NODOT%" == "121" ( +if "%CUVER_NODOT:~0,2%" == "12" ( set CUDA_ARCH_LIST=-gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 ) if "%CUVER_NODOT%" == "118" ( diff --git a/windows/internal/cuda_install.bat b/windows/internal/cuda_install.bat index 018c83ba4..b73240327 100644 --- a/windows/internal/cuda_install.bat +++ b/windows/internal/cuda_install.bat @@ -26,6 +26,7 @@ if exist "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v%CUDA_VERSION_STR% if %CUDA_VER% EQU 118 goto cuda118 if %CUDA_VER% EQU 121 goto cuda121 if %CUDA_VER% EQU 124 goto cuda124 +if %CUDA_VER% EQU 126 goto cuda126 echo CUDA %CUDA_VERSION_STR% is not supported exit /b 1 @@ -111,6 +112,33 @@ xcopy /Y "%SRC_DIR%\temp_build\zlib\dll_x64\*.dll" "C:\Windows\System32" goto cuda_common +:cuda126 + +set CUDA_INSTALL_EXE=cuda_12.6.2_560.94_windows.exe +if not exist "%SRC_DIR%\temp_build\%CUDA_INSTALL_EXE%" ( + curl -k -L "https://ossci-windows.s3.amazonaws.com/%CUDA_INSTALL_EXE%" --output "%SRC_DIR%\temp_build\%CUDA_INSTALL_EXE%" + if errorlevel 1 exit /b 1 + set "CUDA_SETUP_FILE=%SRC_DIR%\temp_build\%CUDA_INSTALL_EXE%" + set "ARGS=cuda_profiler_api_12.6 thrust_12.6 nvcc_12.6 cuobjdump_12.6 nvprune_12.6 nvprof_12.6 cupti_12.6 cublas_12.6 cublas_dev_12.6 cudart_12.6 cufft_12.6 cufft_dev_12.6 curand_12.6 curand_dev_12.6 cusolver_12.6 cusolver_dev_12.6 cusparse_12.6 cusparse_dev_12.6 npp_12.6 npp_dev_12.6 nvrtc_12.6 nvrtc_dev_12.6 nvml_dev_12.6 nvjitlink_12.6 nvtx_12.6" +) + +set CUDNN_FOLDER=cudnn-windows-x86_64-9.5.0.50_cuda12-archive +set CUDNN_LIB_FOLDER="lib" +set "CUDNN_INSTALL_ZIP=%CUDNN_FOLDER%.zip" +if not exist "%SRC_DIR%\temp_build\%CUDNN_INSTALL_ZIP%" ( + curl -k -L "http://s3.amazonaws.com/ossci-windows/%CUDNN_INSTALL_ZIP%" --output "%SRC_DIR%\temp_build\%CUDNN_INSTALL_ZIP%" + if errorlevel 1 exit /b 1 + set "CUDNN_SETUP_FILE=%SRC_DIR%\temp_build\%CUDNN_INSTALL_ZIP%" +) + +@REM cuDNN 8.3+ required zlib to be installed on the path +echo Installing ZLIB dlls +curl -k -L "http://s3.amazonaws.com/ossci-windows/zlib123dllx64.zip" --output "%SRC_DIR%\temp_build\zlib123dllx64.zip" +7z x "%SRC_DIR%\temp_build\zlib123dllx64.zip" -o"%SRC_DIR%\temp_build\zlib" +xcopy /Y "%SRC_DIR%\temp_build\zlib\dll_x64\*.dll" "C:\Windows\System32" + +goto cuda_common + :cuda_common :: NOTE: We only install CUDA if we don't have it installed already. :: With GHA runners these should be pre-installed as part of our AMI process diff --git a/windows/internal/driver_update.bat b/windows/internal/driver_update.bat index a1103a445..551aa9c7a 100644 --- a/windows/internal/driver_update.bat +++ b/windows/internal/driver_update.bat @@ -1,8 +1,9 @@ -set "DRIVER_DOWNLOAD_LINK=https://ossci-windows.s3.amazonaws.com/528.89-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe" -curl --retry 3 -kL %DRIVER_DOWNLOAD_LINK% --output 528.89-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe +set WIN_DRIVER_VN=528.89 +set "DRIVER_DOWNLOAD_LINK=https://ossci-windows.s3.amazonaws.com/%WIN_DRIVER_VN%-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe" +curl --retry 3 -kL %DRIVER_DOWNLOAD_LINK% --output %WIN_DRIVER_VN%-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe if errorlevel 1 exit /b 1 -start /wait 528.89-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe -s -noreboot +start /wait %WIN_DRIVER_VN%-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe -s -noreboot if errorlevel 1 exit /b 1 -del 528.89-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe || ver > NUL +del %WIN_DRIVER_VN%-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe || ver > NUL diff --git a/windows/internal/smoke_test.bat b/windows/internal/smoke_test.bat index 645a8d3bd..e41a81550 100644 --- a/windows/internal/smoke_test.bat +++ b/windows/internal/smoke_test.bat @@ -91,6 +91,9 @@ if "%CUDA_VERSION%" == "121" ( if "%CUDA_VERSION%" == "124" ( set "CONDA_EXTRA_ARGS=pytorch-cuda=12.4 -c nvidia -c pytorch-nightly" ) +if "%CUDA_VERSION%" == "126" ( + set "CONDA_EXTRA_ARGS=pytorch-cuda=12.6 -c nvidia -c pytorch-nightly" +) rmdir /s /q conda del miniconda.exe