Skip to content

Commit 1f6e23f

Browse files
committed
feat(config): add GPU resource image overrides
1 parent a27dc75 commit 1f6e23f

3 files changed

Lines changed: 282 additions & 14 deletions

File tree

runtime/values-multi-nodes.yaml.example

Lines changed: 108 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,25 @@ custom:
284284
subDescription: "GPU Accelerated Environment"
285285
accelerator: "GPU"
286286
acceleratorKeys:
287+
- phx
288+
- strix
287289
- strix-halo
290+
- 9070xt
291+
- r9700
292+
- 9600gre
293+
acceleratorOverrides:
294+
phx:
295+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx110x"
296+
strix:
297+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx1150"
298+
strix-halo:
299+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx1151"
300+
9070xt:
301+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx120x"
302+
r9700:
303+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx120x"
304+
9600gre:
305+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx120x"
288306
allowGitClone: true
289307
resourceType: "notebook"
290308
code-gpu:
@@ -293,7 +311,25 @@ custom:
293311
subDescription: "GPU-accelerated development workspace"
294312
accelerator: "GPU"
295313
acceleratorKeys:
314+
- phx
315+
- strix
296316
- strix-halo
317+
- 9070xt
318+
- r9700
319+
- 9600gre
320+
acceleratorOverrides:
321+
phx:
322+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx110x"
323+
strix:
324+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx1150"
325+
strix-halo:
326+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx1151"
327+
9070xt:
328+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx120x"
329+
r9700:
330+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx120x"
331+
9600gre:
332+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx120x"
297333
allowGitClone: true
298334
launchMode: "code-server"
299335
resourceType: "browser-ide"
@@ -303,41 +339,104 @@ custom:
303339
subDescription: "Suitable for CV experiments with GPU"
304340
accelerator: "GPU"
305341
acceleratorKeys:
342+
- phx
343+
- strix
306344
- strix-halo
345+
- 9070xt
346+
- r9700
347+
- 9600gre
307348
resourceType: "notebook"
308-
# acceleratorOverrides: (optional) per-accelerator image and env overrides
309-
# Use this when one course is available on multiple GPU targets with
310-
# different image tags.
311-
# 9070xt:
312-
# image: "ghcr.io/your-org/auplc-cv:latest-gfx120x"
313-
# r9700:
314-
# image: "ghcr.io/your-org/auplc-cv:latest-gfx120x"
315-
# strix-halo:
316-
# image: "ghcr.io/your-org/auplc-cv:latest-gfx1151"
349+
acceleratorOverrides:
350+
phx:
351+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx110x"
352+
strix:
353+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx1150"
354+
strix-halo:
355+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx1151"
356+
9070xt:
357+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx120x"
358+
r9700:
359+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx120x"
360+
9600gre:
361+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx120x"
317362
Course-DL:
318363
group: "TEACHING LABS"
319364
description: "Deep Learning Course"
320365
subDescription: "Suitable for DL experiments with GPU"
321366
accelerator: "GPU"
322367
acceleratorKeys:
368+
- phx
369+
- strix
323370
- strix-halo
371+
- 9070xt
372+
- r9700
373+
- 9600gre
324374
resourceType: "notebook"
375+
acceleratorOverrides:
376+
phx:
377+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx110x"
378+
strix:
379+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx1150"
380+
strix-halo:
381+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx1151"
382+
9070xt:
383+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx120x"
384+
r9700:
385+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx120x"
386+
9600gre:
387+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx120x"
325388
Course-LLM:
326389
group: "TEACHING LABS"
327390
description: "Large Language Models Course"
328391
subDescription: "Suitable for LLM experiments with GPU"
329392
accelerator: "GPU"
330393
acceleratorKeys:
394+
- phx
395+
- strix
331396
- strix-halo
397+
- 9070xt
398+
- r9700
399+
- 9600gre
332400
resourceType: "notebook"
401+
acceleratorOverrides:
402+
phx:
403+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx110x"
404+
strix:
405+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx1150"
406+
strix-halo:
407+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx1151"
408+
9070xt:
409+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx120x"
410+
r9700:
411+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx120x"
412+
9600gre:
413+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx120x"
333414
Course-PhySim:
334415
group: "TEACHING LABS"
335416
description: "Genesis Physical Simulation Course"
336417
subDescription: "Suitable for physical simulation experiments with GPU"
337418
accelerator: "GPU"
338419
acceleratorKeys:
420+
- phx
421+
- strix
339422
- strix-halo
423+
- 9070xt
424+
- r9700
425+
- 9600gre
340426
resourceType: "notebook"
427+
acceleratorOverrides:
428+
phx:
429+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx110x"
430+
strix:
431+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx1150"
432+
strix-halo:
433+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx1151"
434+
9070xt:
435+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx120x"
436+
r9700:
437+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx120x"
438+
9600gre:
439+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx120x"
341440

342441
# --------------------------------------------------------------------------
343442
# Team Permission Configuration

runtime/values.yaml

Lines changed: 108 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,25 @@ custom:
371371
subDescription: "GPU Accelerated Environment"
372372
accelerator: "GPU"
373373
acceleratorKeys:
374+
- phx
375+
- strix
374376
- strix-halo
377+
- 9070xt
378+
- r9700
379+
- 9600gre
380+
acceleratorOverrides:
381+
phx:
382+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx110x"
383+
strix:
384+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx1150"
385+
strix-halo:
386+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx1151"
387+
9070xt:
388+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx120x"
389+
r9700:
390+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx120x"
391+
9600gre:
392+
image: "ghcr.io/amdresearch/auplc-base:latest-gfx120x"
375393
allowGitClone: true
376394
defaultPath: "/home/jovyan"
377395
resourceType: "notebook"
@@ -381,7 +399,25 @@ custom:
381399
subDescription: "GPU-accelerated development workspace"
382400
accelerator: "GPU"
383401
acceleratorKeys:
402+
- phx
403+
- strix
384404
- strix-halo
405+
- 9070xt
406+
- r9700
407+
- 9600gre
408+
acceleratorOverrides:
409+
phx:
410+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx110x"
411+
strix:
412+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx1150"
413+
strix-halo:
414+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx1151"
415+
9070xt:
416+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx120x"
417+
r9700:
418+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx120x"
419+
9600gre:
420+
image: "ghcr.io/amdresearch/auplc-code-gpu:latest-gfx120x"
385421
allowGitClone: true
386422
launchMode: "code-server"
387423
defaultPath: "/home/jovyan"
@@ -392,12 +428,25 @@ custom:
392428
subDescription: "Suitable for CV experiments with GPU"
393429
accelerator: "GPU"
394430
acceleratorKeys:
431+
- phx
432+
- strix
395433
- strix-halo
396-
# acceleratorOverrides: (optional) per-accelerator image and env overrides
397-
# 9070xt:
398-
# image: "ghcr.io/your-org/auplc-cv:<tag-for-9070xt>"
399-
# r9700:
400-
# image: "ghcr.io/your-org/auplc-cv:<tag-for-r9700>"
434+
- 9070xt
435+
- r9700
436+
- 9600gre
437+
acceleratorOverrides:
438+
phx:
439+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx110x"
440+
strix:
441+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx1150"
442+
strix-halo:
443+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx1151"
444+
9070xt:
445+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx120x"
446+
r9700:
447+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx120x"
448+
9600gre:
449+
image: "ghcr.io/amdresearch/auplc-cv:latest-gfx120x"
401450
defaultPath: "/opt/workspace/CV"
402451
resourceType: "notebook"
403452
Course-DL:
@@ -406,7 +455,25 @@ custom:
406455
subDescription: "Suitable for DL experiments with GPU"
407456
accelerator: "GPU"
408457
acceleratorKeys:
458+
- phx
459+
- strix
409460
- strix-halo
461+
- 9070xt
462+
- r9700
463+
- 9600gre
464+
acceleratorOverrides:
465+
phx:
466+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx110x"
467+
strix:
468+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx1150"
469+
strix-halo:
470+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx1151"
471+
9070xt:
472+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx120x"
473+
r9700:
474+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx120x"
475+
9600gre:
476+
image: "ghcr.io/amdresearch/auplc-dl:latest-gfx120x"
410477
defaultPath: "/opt/workspace/DL"
411478
resourceType: "notebook"
412479
Course-LLM:
@@ -415,7 +482,25 @@ custom:
415482
subDescription: "Suitable for LLM experiments with GPU"
416483
accelerator: "GPU"
417484
acceleratorKeys:
485+
- phx
486+
- strix
418487
- strix-halo
488+
- 9070xt
489+
- r9700
490+
- 9600gre
491+
acceleratorOverrides:
492+
phx:
493+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx110x"
494+
strix:
495+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx1150"
496+
strix-halo:
497+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx1151"
498+
9070xt:
499+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx120x"
500+
r9700:
501+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx120x"
502+
9600gre:
503+
image: "ghcr.io/amdresearch/auplc-llm:latest-gfx120x"
419504
defaultPath: "/opt/workspace/LLM"
420505
resourceType: "notebook"
421506
Course-PhySim:
@@ -424,7 +509,25 @@ custom:
424509
subDescription: "Suitable for physical simulation experiments with GPU"
425510
accelerator: "GPU"
426511
acceleratorKeys:
512+
- phx
513+
- strix
427514
- strix-halo
515+
- 9070xt
516+
- r9700
517+
- 9600gre
518+
acceleratorOverrides:
519+
phx:
520+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx110x"
521+
strix:
522+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx1150"
523+
strix-halo:
524+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx1151"
525+
9070xt:
526+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx120x"
527+
r9700:
528+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx120x"
529+
9600gre:
530+
image: "ghcr.io/amdresearch/auplc-physim:latest-gfx120x"
428531
defaultPath: "/opt/workspace/PhySim"
429532
resourceType: "notebook"
430533

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.
2+
3+
from __future__ import annotations
4+
5+
from pathlib import Path
6+
7+
import yaml
8+
9+
ROOT = Path(__file__).resolve().parents[2]
10+
11+
VALUES_FILES = (
12+
ROOT / "runtime" / "values.yaml",
13+
ROOT / "runtime" / "values-multi-nodes.yaml.example",
14+
)
15+
16+
GPU_ACCELERATOR_TAGS = {
17+
"phx": "gfx110x",
18+
"strix": "gfx1150",
19+
"strix-halo": "gfx1151",
20+
"9070xt": "gfx120x",
21+
"r9700": "gfx120x",
22+
"9600gre": "gfx120x",
23+
}
24+
25+
GPU_RESOURCE_IMAGES = {
26+
"gpu": "auplc-base",
27+
"code-gpu": "auplc-code-gpu",
28+
"Course-CV": "auplc-cv",
29+
"Course-DL": "auplc-dl",
30+
"Course-LLM": "auplc-llm",
31+
"Course-PhySim": "auplc-physim",
32+
}
33+
34+
35+
def _load_values(path: Path) -> dict:
36+
return yaml.safe_load(path.read_text(encoding="utf-8"))
37+
38+
39+
def test_default_values_expose_supported_gpu_accelerators() -> None:
40+
expected_keys = list(GPU_ACCELERATOR_TAGS)
41+
42+
for values_file in VALUES_FILES:
43+
values = _load_values(values_file)
44+
accelerators = values["custom"]["accelerators"]
45+
metadata = values["custom"]["resources"]["metadata"]
46+
47+
for accelerator_key in expected_keys:
48+
assert accelerator_key in accelerators, values_file
49+
50+
for resource_key in GPU_RESOURCE_IMAGES:
51+
assert metadata[resource_key]["acceleratorKeys"] == expected_keys, values_file
52+
53+
54+
def test_default_values_route_gpu_resources_to_supported_image_tags() -> None:
55+
for values_file in VALUES_FILES:
56+
values = _load_values(values_file)
57+
metadata = values["custom"]["resources"]["metadata"]
58+
59+
for resource_key, image_name in GPU_RESOURCE_IMAGES.items():
60+
overrides = metadata[resource_key]["acceleratorOverrides"]
61+
assert set(overrides) == set(GPU_ACCELERATOR_TAGS), values_file
62+
63+
for accelerator_key, gpu_target in GPU_ACCELERATOR_TAGS.items():
64+
assert overrides[accelerator_key]["image"] == (
65+
f"ghcr.io/amdresearch/{image_name}:latest-{gpu_target}"
66+
), values_file

0 commit comments

Comments
 (0)