diff --git a/.ci/docker/build.sh b/.ci/docker/build.sh index 24c4efce24a..123680e5275 100755 --- a/.ci/docker/build.sh +++ b/.ci/docker/build.sh @@ -81,7 +81,7 @@ case "${IMAGE_NAME}" in LINTRUNNER="" GCC_VERSION=11 CUDA_WINDOWS_CROSS_COMPILE=yes - CUDA_VERSION=12.8 + CUDA_VERSION=13.0 SKIP_PYTORCH=yes ;; executorch-ubuntu-24.04-gcc14) diff --git a/.ci/docker/common/install_cuda.sh b/.ci/docker/common/install_cuda.sh index 4300dd62d7a..9794e146407 100644 --- a/.ci/docker/common/install_cuda.sh +++ b/.ci/docker/common/install_cuda.sh @@ -10,10 +10,10 @@ set -ex -# CUDA version must be specified (e.g., 12.8) +# CUDA version must be specified (e.g., 13.0) CUDA_VERSION="${CUDA_VERSION:?CUDA_VERSION must be set}" -# Convert version format (e.g., 12.8 -> 12-8 for package names) +# Convert version format (e.g., 13.0 -> 13-0 for package names) CUDA_VERSION_DASH=$(echo "${CUDA_VERSION}" | tr '.' '-') # Add NVIDIA package repository diff --git a/.ci/docker/common/install_cuda_windows_cross_compile.sh b/.ci/docker/common/install_cuda_windows_cross_compile.sh index e3529751221..14445024c75 100644 --- a/.ci/docker/common/install_cuda_windows_cross_compile.sh +++ b/.ci/docker/common/install_cuda_windows_cross_compile.sh @@ -17,6 +17,7 @@ declare -A CUDA_DRIVER_MAP=( ["12.6"]="12.6.3:561.17" ["12.8"]="12.8.1:572.61" ["12.9"]="12.9.1:576.57" + ["13.0"]="13.0.2:" ) install_mingw() { @@ -76,14 +77,19 @@ install_windows_cuda() { CUDA_VERSION=$(echo "${CUDA_INFO}" | cut -d: -f1) CUDA_DRIVER_VERSION=$(echo "${CUDA_INFO}" | cut -d: -f2) - echo "Using CUDA ${CUDA_VERSION} with driver ${CUDA_DRIVER_VERSION}" + if [ -n "${CUDA_DRIVER_VERSION}" ]; then + echo "Using CUDA ${CUDA_VERSION} with driver ${CUDA_DRIVER_VERSION}" + CUDA_INSTALLER="cuda_${CUDA_VERSION}_${CUDA_DRIVER_VERSION}_windows.exe" + else + echo "Using CUDA ${CUDA_VERSION}" + CUDA_INSTALLER="cuda_${CUDA_VERSION}_windows.exe" + fi echo "Installing Windows CUDA toolkit ${CUDA_VERSION}..." mkdir -p "${INSTALL_DIR}" cd "${INSTALL_DIR}" - CUDA_INSTALLER="cuda_${CUDA_VERSION}_${CUDA_DRIVER_VERSION}_windows.exe" CUDA_URL="https://developer.download.nvidia.com/compute/cuda/${CUDA_VERSION}/local_installers/${CUDA_INSTALLER}" # Check if already downloaded and extracted diff --git a/.ci/scripts/test-cuda-build.sh b/.ci/scripts/test-cuda-build.sh index 08673533927..e717718be66 100755 --- a/.ci/scripts/test-cuda-build.sh +++ b/.ci/scripts/test-cuda-build.sh @@ -7,7 +7,7 @@ set -exu -CUDA_VERSION=${1:-"12.6"} +CUDA_VERSION=${1:-"13.0"} echo "=== Testing ExecuTorch CUDA ${CUDA_VERSION} Build ===" diff --git a/.github/workflows/cuda-perf.yml b/.github/workflows/cuda-perf.yml index b2302cf91af..d71376d7cc5 100644 --- a/.github/workflows/cuda-perf.yml +++ b/.github/workflows/cuda-perf.yml @@ -110,7 +110,7 @@ jobs: secrets-env: EXECUTORCH_HF_TOKEN runner: ${{ contains(matrix.model, 'Qwen3.5-35B-A3B') && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} gpu-arch-type: cuda - gpu-arch-version: "12.6" + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive upload-artifact: model-${{ matrix.model_safe }}-${{ matrix.quant }} @@ -158,7 +158,7 @@ jobs: timeout: 90 runner: ${{ contains(matrix.model, 'Qwen3.5-35B-A3B') && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} gpu-arch-type: cuda - gpu-arch-version: "12.6" + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive download-artifact: model-${{ matrix.model_safe }}-${{ matrix.quant }} diff --git a/.github/workflows/cuda-windows.yml b/.github/workflows/cuda-windows.yml index 265b7e3069d..7dfd14774fd 100644 --- a/.github/workflows/cuda-windows.yml +++ b/.github/workflows/cuda-windows.yml @@ -64,7 +64,7 @@ jobs: secrets-env: EXECUTORCH_HF_TOKEN runner: linux.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda - gpu-arch-version: 12.8 + gpu-arch-version: "13.0" docker-image: ci-image:executorch-ubuntu-22.04-cuda-windows submodules: recursive upload-artifact: ${{ matrix.model_repo }}-${{ matrix.model_name }}-cuda-windows-${{ matrix.quant }} @@ -146,7 +146,7 @@ jobs: timeout: 240 runner: windows.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda - gpu-arch-version: 12.8 + gpu-arch-version: "13.0" download-artifact: ${{ matrix.model_repo }}-${{ matrix.model_name }}-cuda-windows-${{ matrix.quant }} ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} script: | @@ -158,7 +158,7 @@ jobs: \$ErrorActionPreference = 'Stop' \$PSNativeCommandUseErrorActionPreference = \$true - \$env:CUDA_HOME = 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8' + \$env:CUDA_HOME = 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0' \$env:CUDA_PATH = \$env:CUDA_HOME \$env:PATH = \"\$env:CUDA_HOME\bin;\$env:PATH\" nvcc --version @@ -169,5 +169,5 @@ jobs: throw 'RUNNER_ARTIFACT_DIR is empty. Ensure download-artifact is configured for windows_job.yml.' } - .ci/scripts/test_model_e2e_windows.ps1 -Device cuda-windows -HfModel '${{ matrix.model_repo }}/${{ matrix.model_name }}' -QuantName '${{ matrix.quant }}' -ModelDir \$artifactDir -ExpectedCudaVersion '12.8' + .ci/scripts/test_model_e2e_windows.ps1 -Device cuda-windows -HfModel '${{ matrix.model_repo }}/${{ matrix.model_name }}' -QuantName '${{ matrix.quant }}' -ModelDir \$artifactDir -ExpectedCudaVersion '13.0' }" diff --git a/.github/workflows/cuda.yml b/.github/workflows/cuda.yml index e1eaba6b7c1..56579b7b277 100644 --- a/.github/workflows/cuda.yml +++ b/.github/workflows/cuda.yml @@ -1,6 +1,6 @@ # Test ExecuTorch CUDA Build Compatibility # This workflow tests whether ExecuTorch can be successfully built with CUDA support -# across different CUDA versions (12.6, 12.8, 12.9, 13.0) using the command: +# across different CUDA versions (12.6, 13.0) using the command: # ./install_executorch.sh # # Note: ExecuTorch automatically detects the system CUDA version using nvcc and @@ -31,7 +31,7 @@ jobs: strategy: fail-fast: false matrix: - cuda-version: ["12.6", "12.8", "12.9", "13.0"] + cuda-version: ["12.6", "13.0"] name: test-executorch-cuda-build-${{ matrix.cuda-version }} uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main @@ -66,7 +66,7 @@ jobs: echo "CUDA build results: ${{ needs.test-cuda-builds.result }}" exit 1 else - echo "SUCCESS: All ExecuTorch CUDA builds (12.6, 12.8, 12.9, 13.0) completed successfully!" + echo "SUCCESS: All ExecuTorch CUDA builds (12.6, 13.0) completed successfully!" fi test-models-cuda: @@ -79,7 +79,7 @@ jobs: timeout: 90 runner: linux.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda - gpu-arch-version: 12.6 + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} @@ -114,7 +114,7 @@ jobs: timeout: 90 runner: linux.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda - gpu-arch-version: 12.6 + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} @@ -271,7 +271,7 @@ jobs: secrets-env: EXECUTORCH_HF_TOKEN runner: ${{ (matrix.model.name == 'Qwen3.5-35B-A3B-HQQ-INT4' || matrix.model.name == 'gemma-4-31B-it-HQQ-INT4') && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} gpu-arch-type: cuda - gpu-arch-version: 12.6 + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive upload-artifact: ${{ matrix.model.repo }}-${{ matrix.model.name }}-cuda-${{ matrix.quant }} @@ -406,7 +406,7 @@ jobs: timeout: 90 runner: ${{ (matrix.model.name == 'Qwen3.5-35B-A3B-HQQ-INT4' || matrix.model.name == 'gemma-4-31B-it-HQQ-INT4') && 'linux.aws.a100' || 'linux.g5.4xlarge.nvidia.gpu' }} gpu-arch-type: cuda - gpu-arch-version: 12.6 + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive download-artifact: ${{ matrix.model.repo }}-${{ matrix.model.name }}-cuda-${{ matrix.quant }} @@ -442,7 +442,7 @@ jobs: download-artifact: ${{ matrix.artifact }} runner: linux.g5.4xlarge.nvidia.gpu gpu-arch-type: cuda - gpu-arch-version: 12.6 + gpu-arch-version: "13.0" use-custom-docker-registry: false submodules: recursive ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}