rocm install sdk: release channel never resolves ROCm 7.14+ (stuck on 7.13.0)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 40
- Forks
- 9
- Avg merge
- 4d 20h
- Merged PRs (30d)
- 59
Description
Current behavior
rocm install sdk (default --format wheel, --channel release) always
resolves ROCm 7.13.0, even though AMD's documented current stable release is
7.14.0 (see https://rocm.docs.amd.com/en/latest/install/rocm.html).
Root cause: therock_index_urls() in apps/rocm/src/therock.rs builds two
Release-channel pip index candidates:
-
https://repo.amd.com/rocm/whl/{family}- the classic, per-family index.
Still live, but AMD stopped publishing new releases here; it tops out at
7.13.0. -
https://repo.amd.com/rocm/whl-multi-arch/{family}- intended as the
newer index, but AMD'swhl-multi-archindex is actually flat (no
per-family path segment). GPU targeting there is done via pip extras
(device-gfxNNNN,device-all) instead of URL scoping. Appending
/{family}403s:$ curl -s -o /dev/null -w '%{http_code}\n' https://repo.amd.com/rocm/whl-multi-arch/gfx110X-all/rocm/ 403 $ curl -s -o /dev/null -w '%{http_code}\n' https://repo.amd.com/rocm/whl-multi-arch/rocm/ 200
resolve_pip_runtime_with_timeout tries index URLs in order and returns on
the first that fully resolves a compatible rocm/torch/torchvision/torchaudio
set. Since the classic index is tried first and always succeeds (just
stale), the broken multi-arch entry never gets a chance to contribute
7.14.0.
There's a second, related gap: even once the multi-arch URL is fixed, its
rocm sdist requires an explicit device/device-all/device-gfxNNNN pip
extra to pull in any GPU backend at all. The CLI's fixed
rocm[libraries,devel] spec would silently install no GPU backend from that
index.
Expected behavior
rocm install sdk on the release channel installs the current stable ROCm
release (7.14.0 or newer as AMD publishes them), with a working GPU backend,
while older ROCm versions and families remain installable from the classic
whl/{family} index as a fallback.
Steps to reproduce
rocm install sdk --channel release --dry-run
The dry-run output's index_url and latest_compatible_version show the
classic whl/{family} index and 7.13.0, never the multi-arch index or
7.14.0.
Possible solution
Fixed in the accompanying PR: try the (correctly-shaped, flat) multi-arch
index first, fall back to the classic per-family index for older
versions/families, and add the required device-* extra when installing
from the multi-arch index.
Out of scope / related follow-up: the tarball install path
(THEROCK_RELEASE_TARBALL_BASE = "https://repo.amd.com/rocm/tarball/") looks
like it may have the same "AMD moved to a -multi-arch variant" problem, but
rocm install sdk's default format is wheel, not tarball, so it wasn't
investigated as part of this issue.
Your environment
- rocm-cli channel: release
- Platform: Linux
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/rocm/src/therock.rs, especially therock_index_urls() and resolve_pip_runtime_with_timeout, then reproduce with rocm install sdk --channel release --dry-run. Done means the flat multi-arch index is tried first, the classic per-family index remains a fallback, and release installs include a working GPU backend while older versions remain supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100