ROCm / ROCm/rocm-cli

rocm install sdk: release channel never resolves ROCm 7.14+ (stuck on 7.13.0)

Open
#271 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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:

  1. 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.

  2. https://repo.amd.com/rocm/whl-multi-arch/{family} - intended as the
    newer index, but AMD's whl-multi-arch index 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.