Skip to content

Commit fd8e1a1

Browse files
committed
Update (base update)
[ghstack-poisoned]
2 parents 1ca4226 + 430b73d commit fd8e1a1

455 files changed

Lines changed: 24680 additions & 4019 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
release/2.12
1+
release/2.13

.ci/docker/common/install_pytorch.sh

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@ install_domains() {
1616
pip_install --no-build-isolation --user "git+https://github.com/pytorch/vision.git@${TORCHVISION_VERSION}"
1717
}
1818

19+
configure_pytorch_compiler() {
20+
local cxx_version
21+
cxx_version=$(/usr/bin/c++ --version | head -n1)
22+
if [[ "${cxx_version}" == *clang* ]]; then
23+
local clang_major
24+
clang_major=$(/usr/bin/c++ -dumpversion | cut -d. -f1)
25+
if [[ "${clang_major}" =~ ^[0-9]+$ && "${clang_major}" -lt 16 ]] &&
26+
command -v gcc >/dev/null &&
27+
command -v g++ >/dev/null; then
28+
export CC=gcc
29+
export CXX=g++
30+
fi
31+
fi
32+
}
33+
1934
install_pytorch_and_domains() {
2035
git clone https://github.com/pytorch/pytorch.git
2136

@@ -33,14 +48,15 @@ install_pytorch_and_domains() {
3348
if [[ -n "${PYTORCH_BUILD_MAX_JOBS:-}" ]]; then
3449
export MAX_JOBS="${PYTORCH_BUILD_MAX_JOBS}"
3550
fi
51+
configure_pytorch_compiler
3652
# Then build and install PyTorch
3753
conda_run python setup.py bdist_wheel
3854
pip_install "$(echo dist/*.whl)"
3955

4056
# Grab the pinned audio and vision commits from PyTorch
4157
TORCHAUDIO_VERSION=release/2.11
4258
export TORCHAUDIO_VERSION
43-
TORCHVISION_VERSION=release/0.27
59+
TORCHVISION_VERSION=release/0.28
4460
export TORCHVISION_VERSION
4561

4662
install_domains

.ci/scripts/setup-windows.ps1

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ conda activate et
1414
# Install test dependencies
1515
pip install -r .ci/docker/requirements-ci.txt
1616

17+
# PyTorch 2.13 headers use designated initializers in c10, which require C++20
18+
# with MSVC.
19+
$env:CMAKE_ARGS = "$env:CMAKE_ARGS -DCMAKE_CXX_STANDARD=20"
20+
1721
# The Windows CI image ships CUDA toolkits on PATH, so install_executorch
1822
# (setup.py) auto-enables EXECUTORCH_BUILD_CUDA whenever the detected nvcc
1923
# version is in SUPPORTED_CUDA_VERSIONS. CPU-only jobs install CPU torch, so a

.ci/scripts/test_model_e2e_windows.ps1

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,22 +172,34 @@ try {
172172
"-DCUDAToolkit_ROOT=$env:CUDA_HOME"
173173
)
174174
}
175+
$cmakeCommonArgs = @("-DCMAKE_CXX_STANDARD=20")
175176
Write-Host "::endgroup::"
176177

177178
Write-Host "::group::Build ExecuTorch (CUDA)"
178179
$numCores = [Math]::Max([Environment]::ProcessorCount - 1, 1)
180+
$cmakeOut = Join-Path -Path $executorchRoot -ChildPath "cmake-out"
181+
$executorchCmakeDir = Join-Path -Path $cmakeOut -ChildPath "lib\cmake\ExecuTorch"
182+
$executorchConfig = Join-Path -Path $executorchCmakeDir -ChildPath "executorch-config.cmake"
179183
# EXECUTORCH_BUILD_EXTENSION_IMAGE defaults OFF in the preset, so it must be
180184
# enabled explicitly here (matching the Makefile CUDA target used on Linux).
181185
# The dinov2 runner links the installed extension_image.lib; without this the
182186
# main install never builds it and dinov2_runner fails to link (LNK1181).
183-
cmake --preset llm-release-cuda -DEXECUTORCH_BUILD_EXTENSION_IMAGE=ON @cmakeCudaArgs
184-
cmake --build cmake-out --target install --config Release -j $numCores
187+
cmake --preset llm-release-cuda -DEXECUTORCH_BUILD_EXTENSION_IMAGE=ON @cmakeCommonArgs @cmakeCudaArgs
188+
cmake --build $cmakeOut --target install --config Release -j $numCores
189+
if (-not (Test-Path -Path $executorchConfig -PathType Leaf)) {
190+
throw "ExecuTorch CMake package config not found after install: $executorchConfig"
191+
}
185192
Write-Host "::endgroup::"
186193

187194
Write-Host "::group::Build $runnerTarget"
195+
$cmakePackageArgs = @(
196+
"-DCMAKE_FIND_ROOT_PATH=$cmakeOut",
197+
"-DCMAKE_PREFIX_PATH=$cmakeOut;$executorchCmakeDir",
198+
"-Dexecutorch_DIR=$executorchCmakeDir"
199+
)
188200
Push-Location (Join-Path -Path $executorchRoot -ChildPath "examples\models\$runnerPath")
189201
try {
190-
cmake --preset $runnerPreset @cmakeCudaArgs
202+
cmake --preset $runnerPreset @cmakeCommonArgs @cmakePackageArgs @cmakeCudaArgs
191203
cmake --build (Join-Path -Path $executorchRoot -ChildPath "cmake-out\examples\models\$runnerPath") --target $runnerTarget --config Release -j $numCores
192204
}
193205
finally {

.ci/scripts/utils.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ install_pytorch_and_domains() {
107107
local torch_release=$(cat version.txt)
108108
# Download key must match the upload key below (basename of dist/*.whl,
109109
# which always carries setup.py's resolved +gitHASH). Branch-ref pins
110-
# like `release/2.12` would otherwise produce `+gitrelease` here and
110+
# like `release/2.13` would otherwise produce `+gitrelease` here and
111111
# never hit the cache.
112112
local torch_short_hash=$(git rev-parse --short=7 HEAD)
113113
local torch_wheel_path="cached_artifacts/pytorch/executorch/pytorch_wheels/${system_name}/${python_version}"
@@ -178,7 +178,7 @@ install_pytorch_and_domains() {
178178
# Grab the pinned audio and vision commits from PyTorch
179179
TORCHAUDIO_VERSION=release/2.11
180180
export TORCHAUDIO_VERSION
181-
TORCHVISION_VERSION=release/0.27
181+
TORCHVISION_VERSION=release/0.28
182182
export TORCHVISION_VERSION
183183

184184
install_domains

.github/workflows/_unittest.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ on:
2424
required: false
2525
type: string
2626
default: '3.10'
27+
linux-timeout:
28+
required: false
29+
type: number
30+
default: 90
2731

2832
jobs:
2933
linux:
@@ -36,7 +40,7 @@ jobs:
3640
docker-image: ${{ inputs.docker-image }}
3741
submodules: 'recursive'
3842
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
39-
timeout: 90
43+
timeout: ${{ inputs.linux-timeout }}
4044
script: |
4145
set -eux
4246
.ci/scripts/unittest-linux.sh --build-tool "${{ inputs.build-tool }}" --build-mode "${{ inputs.build-mode }}" --editable "${{ inputs.editable }}"

.github/workflows/cuda.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ jobs:
211211
212212
# Run Gemma 4 31B tests (quant unit tests + pipeline integration tests)
213213
pip install gguf
214-
python -m pytest examples/models/gemma4_31b/quant/tests/ examples/models/gemma4_31b/tests/ --ignore=examples/models/gemma4_31b/tests/test_mlx_pipeline.py -v -o "addopts="
214+
python -m pytest examples/models/gemma4_31b/tests/ --ignore=examples/models/gemma4_31b/tests/test_mlx_pipeline.py -v -o "addopts="
215215
216216
unittest-cuda-runtime:
217217
name: unittest-cuda-runtime

.github/workflows/mlx.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ jobs:
8585
backends/mlx/test/test_serialization_dedup.py \
8686
backends/mlx/test/test_slot_recycling.py \
8787
backends/mlx/test/test_sample.py \
88-
examples/models/gemma4_31b/quant/tests/test_pack_mlx.py \
8988
examples/models/gemma4_31b/tests/test_mlx_pipeline.py \
9089
-v
9190
echo "::endgroup::"
@@ -158,10 +157,10 @@ jobs:
158157
--prompt-len 4 \
159158
--max-new-tokens 5 2>&1)
160159
echo "$OUTPUT"
161-
if echo "$OUTPUT" | grep -q "Generated token ids: \[167, 94, 253, 88, 227\]"; then
160+
if echo "$OUTPUT" | grep -q "Generated token ids: \[167, 180, 167, 180, 167\]"; then
162161
echo "Success: Qwen 3.5 MoE MLX export + inference completed with expected output"
163162
else
164-
echo "Failed: unexpected output (expected [167, 94, 253, 88, 227])"
163+
echo "Failed: unexpected output (expected [167, 180, 167, 180, 167])"
165164
exit 1
166165
fi
167166
echo "::endgroup::"

.github/workflows/trunk.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,6 +1006,7 @@ jobs:
10061006
build-mode: Release
10071007
build-tool: cmake
10081008
docker-image: ci-image:executorch-ubuntu-22.04-clang12
1009+
linux-timeout: 120
10091010

10101011
llm-server:
10111012
needs: [changed-files, run-decision]

.github/workflows/update-viablestrict.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
with:
2424
repository: pytorch/executorch
2525
stable-branch: viable/strict
26+
main-branch: main
2627
requires: '[\"pull\", \"lint\", \"trunk\", \"Build documentation\", \"^Apple$\", \"viable-strict-gate\"]'
2728
secret-bot-token: ${{ secrets.UPDATEBOT_TOKEN }}
2829
clickhouse-url: ${{ secrets.CLICKHOUSE_URL }}

0 commit comments

Comments
 (0)