Skip to content

fix(aorta): container /dev/kfd access and --override argument packing - #327

Open
speriaswamy-amd wants to merge 1 commit into
surya/aorta-mn-01-teardownfrom
surya/aorta-mn-02-single-node-fixes
Open

fix(aorta): container /dev/kfd access and --override argument packing#327
speriaswamy-amd wants to merge 1 commit into
surya/aorta-mn-01-teardownfrom
surya/aorta-mn-02-single-node-fixes

Conversation

@speriaswamy-amd

Copy link
Copy Markdown
Contributor

Stack 2/6 — splits #171. Base: #326.

Why

Two defects on the existing single-node path, both surfaced by live 2-node validation but neither multi-node specific.

  1. _launch_container() never passed user, so the container ran as the image's default UID (jenkins on the validation cluster) and could not open /dev/kfd despite --privileged. The render group was also missing. The function's own comment already claimed "Run as root so the container can access GPUs" — the code now matches it.
  2. Training overrides were emitted as --override k=v --override k2=v2. Aorta's train.py declares --override with nargs="*", so argparse keeps only the last group — every preceding override was silently dropped.

What changed

  • cvs/runners/aorta.pyuser="root", group_add=["video", "render"]; all key=value tokens packed behind a single --override.
  • Extracted the env-building block out of run() into _build_base_env() so the override packing is unit-testable without a container.

Test

ruff clean. Unit tests 589 → 595 (6 new: env construction, single---override invariant, container user/groups).

Two defects on the existing single-node path, both surfaced by live cluster
validation:

- _launch_container() never passed `user`, so the container ran as the image's
  default UID (jenkins on the validation cluster) and could not open /dev/kfd
  despite --privileged. The `render` group was also missing. The function's own
  comment already claimed "Run as root so the container can access GPUs" - the
  code now matches it.

- Training overrides were emitted as `--override k=v --override k2=v2`. Aorta's
  train.py declares `--override` with `nargs="*"`, so argparse keeps only the
  last group and every preceding override was silently dropped. All key=value
  tokens now sit behind a single `--override`.

Extracts the env-building block out of run() into _build_base_env() so the
override packing is unit-testable without a container.

Co-Authored-By: Claude <noreply@anthropic.com>
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