Skip to content

Commit 6543438

Browse files
committed
[RELEASE ONLY CHANGES] Retain existing TorchAO nightly pins for 1.6
1 parent ac0cb87 commit 6543438

5 files changed

Lines changed: 32 additions & 20 deletions

File tree

‎.ci/scripts/test-rocm-aoti.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set -euo pipefail
1010
ROCM_VERSION="${ROCM_VERSION:-7.2}"
1111
ROCM_PATH="${ROCM_PATH:-/opt/rocm}"
1212
PYTORCH_ROCM_INDEX="${PYTORCH_ROCM_INDEX:-https://download.pytorch.org/whl/rocm${ROCM_VERSION}}"
13-
TORCHAO_ROCM_WHEEL_BASE="${TORCHAO_ROCM_WHEEL_BASE:-https://download.pytorch.org/whl/rocm${ROCM_VERSION}}"
13+
TORCHAO_ROCM_WHEEL_BASE="${TORCHAO_ROCM_WHEEL_BASE:-https://download.pytorch.org/whl/nightly/rocm${ROCM_VERSION}}"
1414
ROCM_CI_TMP_ROOT="${RUNNER_TEMP:-/tmp}"
1515
mkdir -p "${ROCM_CI_TMP_ROOT}" 2>/dev/null || ROCM_CI_TMP_ROOT=/tmp
1616
ROCM_CI_TMPDIR="$(mktemp -d "${ROCM_CI_TMP_ROOT}/executorch-rocm-ci.XXXXXX")"

‎.ci/scripts/test-rocm-voxtral.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ROCM_PATH="${ROCM_PATH:-/opt/rocm}"
1212
EXPECTED_ROCM_ARCH="${EXPECTED_ROCM_ARCH:-gfx950}"
1313
EXPECTED_WARP_SIZE="${EXPECTED_WARP_SIZE:-64}"
1414
PYTORCH_ROCM_INDEX="${PYTORCH_ROCM_INDEX:-https://download.pytorch.org/whl/rocm${ROCM_VERSION}}"
15-
TORCHAO_ROCM_WHEEL_BASE="${TORCHAO_ROCM_WHEEL_BASE:-https://download.pytorch.org/whl/rocm${ROCM_VERSION}}"
15+
TORCHAO_ROCM_WHEEL_BASE="${TORCHAO_ROCM_WHEEL_BASE:-https://download.pytorch.org/whl/nightly/rocm${ROCM_VERSION}}"
1616
VOXTRAL_CI_TMP_ROOT="${RUNNER_TEMP:-/tmp}"
1717
if ! mkdir -p "${VOXTRAL_CI_TMP_ROOT}" 2>/dev/null ||
1818
[[ ! -w "${VOXTRAL_CI_TMP_ROOT}" ]]; then

‎.ci/scripts/tests/test_cu134_dependencies.py‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,14 @@ def test_all_install_steps_preserve_exact_cu134_selection(self):
9090
)
9191
)
9292
self.assertIn("https://download.pytorch.org/whl/cu134", command)
93+
self.assertIn(
94+
f"https://download.pytorch.org/whl/nightly/{ao_variant}",
95+
command,
96+
)
9397
self.assertNotIn(
9498
"https://download.pytorch.org/whl/test/cu134", command
9599
)
96100
self.assertNotIn("--no-deps", command)
97-
if machine == "aarch64":
98-
self.assertIn("https://download.pytorch.org/whl/cpu", command)
99101

100102
def test_other_cuda_trains_keep_existing_pins(self):
101103
for cuda in ((12, 6), (13, 0), (13, 2)):

‎install_requirements.py‎

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
# The pip repository that hosts released torch packages.
1717
# This will be dynamically set based on CUDA availability and CUDA backend enabled/disabled.
1818
TORCH_URL_BASE = "https://download.pytorch.org/whl"
19-
TORCHAO_URL_BASE = "https://download.pytorch.org/whl"
20-
TORCHAO_NIGHTLY_VERSION = "0.19.0"
21-
CU134_TORCHAO_NIGHTLY_VERSION = "0.19.0"
22-
ROCM_TORCHAO_NIGHTLY_VERSION = "0.19.0"
19+
TORCHAO_URL_BASE = "https://download.pytorch.org/whl/nightly"
20+
TORCHAO_NIGHTLY_VERSION = "0.19.0.dev20260907"
21+
CU134_TORCHAO_NIGHTLY_VERSION = "0.19.0.dev20260907"
22+
# Newest rocm7.2 TorchAO nightly with compiled kernels (cp310-abi3); later ROCm nightlies
23+
# are py3-none-any only, and none are published after 0.19.0.dev20260831.
24+
ROCM_TORCHAO_NIGHTLY_VERSION = "0.19.0.dev20260805"
2325
CU134_TORCH_PACKAGES = [
2426
"torch==2.15.0+cu134",
2527
"torchvision==0.29.2+cu134",
@@ -67,14 +69,12 @@ def install_requirements(use_pytorch_nightly):
6769
# Determine the appropriate PyTorch URL based on CUDA delegate status
6870
torch_url = determine_torch_url(TORCH_URL_BASE)
6971
cu134_packages = cu134_requirements(torch_url)
70-
if cu134_packages:
71-
torch_url = determine_torch_url(TORCHAO_URL_BASE)
72-
if not use_pytorch_nightly:
73-
cu134_packages[0] = "torch"
72+
if cu134_packages and not use_pytorch_nightly:
73+
cu134_packages[0] = "torch"
7474
# torchao's CUDA channel publishes x86_64 only, so asking for a CUDA build makes the pin
7575
# unsatisfiable on aarch64. Only that case is special-cased: falling back everywhere would
7676
# change which torchao a CPU x86_64 install resolves, and the CUDA build is genuinely wanted
77-
# where it exists. This release is what the checkout is tested against, and the
77+
# where it exists. This nightly is what a development checkout is tested against, and the
7878
# wheel's own torchao lower bound is this same version so that installing the package
7979
# afterwards leaves this pin in place rather than replacing it.
8080
if platform.machine().lower() in ("aarch64", "arm64"):
@@ -183,11 +183,14 @@ def install_optional_example_requirements(use_pytorch_nightly):
183183
if use_pytorch_nightly
184184
else []
185185
)
186-
if cu134_packages:
187-
torch_url = determine_torch_url(TORCHAO_URL_BASE)
186+
torchao_url = (
187+
f"{TORCHAO_URL_BASE}/cpu"
188+
if platform.machine().lower() in ("aarch64", "arm64")
189+
else determine_torch_url(TORCHAO_URL_BASE)
190+
)
188191
torchao_index = (
189-
["--extra-index-url", f"{TORCHAO_URL_BASE}/cpu"]
190-
if cu134_packages and platform.machine().lower() in ("aarch64", "arm64")
192+
["--extra-index-url", torchao_url]
193+
if cu134_packages and not torchao_from_source()
191194
else []
192195
)
193196

‎setup.py‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,7 @@ def _package_relative_depth(library: Path) -> int:
11181118
def _torchao_requirement() -> str:
11191119
"""The torchao dependency, pinned to the series install_requirements.py installs.
11201120
1121-
Derived from that module rather than written out, so a pin bump cannot move the
1121+
Derived from that module rather than written out, so a nightly bump cannot move the
11221122
pin without moving this bound with it. A bump into the next series would otherwise
11231123
silently stop satisfying the lower bound, and installing this package over a
11241124
development checkout would replace the torchao that was just installed.
@@ -1170,14 +1170,21 @@ def _base_dependencies() -> List[str]:
11701170
"py-cpuinfo",
11711171
"requests",
11721172
"pytorch-tokenizers>=1.6.0",
1173+
"torch>=2.15.0,<2.16",
11731174
# Shipped code imports torchao at module scope in many places, so a plain install cannot
11741175
# lower a model without it. Among others: the XNNPACK utilities the partitioner uses
11751176
# (backends/xnnpack/utils/utils.py), the Core ML quantizer, and executorch.export itself.
11761177
# The MLX backend needs it too, though indirectly: it registers a torchao operator that
11771178
# only exists once torchao has been imported.
11781179
#
1179-
# Keep dependency bounds in the release series used by the installer.
1180-
"torch>=2.15.0,<2.16",
1180+
# The lower bound is the nightly install_requirements.py pins, so that installing this
1181+
# package over a development checkout leaves that pin in place. A bound at the stable
1182+
# release instead would evict it, because a dev release sorts below its own final.
1183+
#
1184+
# The upper bound is what makes naming a pre-release safe. A specifier that names one
1185+
# accepts pre-releases for this requirement, so without the bound pip would resolve a
1186+
# pre-release of the next series wherever one is published, such as an index carrying
1187+
# nightlies. Keep both bounds in the same series.
11811188
_torchao_requirement(),
11821189
"pyyaml",
11831190
"ruamel.yaml",

0 commit comments

Comments
 (0)