Skip to content

docs(networking): add AINIC bundle version guide - #1094

Open
yeandy wants to merge 2 commits into
mainfrom
docs/networking/ainic-bundle-versions
Open

docs(networking): add AINIC bundle version guide#1094
yeandy wants to merge 2 commits into
mainfrom
docs/networking/ainic-bundle-versions

Conversation

@yeandy

@yeandy yeandy commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What

Adds docs/04-technical-guides/ainic-bundle-versions.md, a guide to rebuilding a published training image against a different AINIC bundle. Plus index entries (docs/README.md, 04-technical-guides/README.md, sphinx/_toc.yml.in) and a cross-link from the multi-node networking guide.

Docs only — no code changes.

Why

multi-node-networking.md §4 tells users to "match the image to your ROCm and ANP bundle" but never explains how. This fills that gap.

Scope

Covers making the change and verifying it took effect. Choosing which bundle is explicitly out of scope — it depends on the host ionic driver and belongs to the cluster's operators. The guide points at the uverbs ABI check and notes that compatibility is not monotonic in the bundle version, so downgrades are supported as a first-class operation.

Notable content

  • Two silent build-time failure modes: stale AINIC repos make AINIC_BUNDLE_VERSION advisory rather than binding, and an unpinned apt install is a no-op when the target is older than what's installed. Both report success, so the Dockerfile ends with a check that fails the build instead.
  • The bundle named in an image's build args is not necessarily the one installed — trust dpkg-query.
  • No uninstall is required in either direction.

Verification

Every command was run on an MI300X node. Builds tested against maxtext-v26.3.2 and maxtext-v26.6 bases in both directions. The "no uninstall required" claim was tested by fingerprinting (MD5 of every owned file, all symlink targets, package status) an in-place upgrade against a purge-then-install: byte-identical, both directions, no orphaned files, dpkg -C clean.

Published training images ship a fixed AINIC bundle, and the multi-node
networking guide says to match the image to the site's ANP bundle without
explaining how. Document rebuilding a published image against an arbitrary
bundle, and verifying the change took effect.

Scope is deliberately limited to making the change. Deciding which bundle
a cluster needs depends on the host ionic driver and is left to the reader,
with a pointer to the uverbs ABI check and a note that compatibility is
not monotonic in the bundle version, so downgrades are supported as a
first-class operation rather than a workaround.

Covers the two silent build-time failure modes: stale AINIC repositories
make AINIC_BUNDLE_VERSION advisory rather than binding, and an unpinned
apt install is a no-op when the target bundle is older than the installed
hostlib. Both report success, so the Dockerfile includes a verification
step that fails the build instead.

Verification notes that package-level checks cannot prove host
compatibility: an incompatible hostlib passes them all and RCCL then
falls back to TCP, measured at 3.2x lower throughput while completing
every step with an identical loss. Also records that the bundle named in
an image's build arguments is not necessarily the one installed, that no
uninstall is required, and that automated checks must treat an empty
ionic enumeration as a failure and must not parse versions out of the
soname.
@yeandy
yeandy marked this pull request as ready for review September 3, 2026 18:04
Lead with a copy-paste quickstart so a reader who already knows their
target bundle does not have to read four sections of background first.

Replace the invented term 'hostlib', which appeared nowhere else in the
repository and inverted the container/host distinction the guide turns
on, with libionic throughout.

Section 3 handed the reader a uverbs abi_version to read with nothing to
compare it against; state plainly that there is no container-side
counterpart and that the runtime check is authoritative.

Fold the no-uninstall note into the rebuild section, drop the duplicated
scope and downgrade statements, and mark the bundle table as an excerpt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant