|
3 | 3 | import pytest |
4 | 4 | from gpuhunt import AcceleratorVendor |
5 | 5 |
|
6 | | -from dstack._internal.core.backends.kubernetes.compute import ( |
7 | | - _get_amd_gpu_from_node_labels, |
8 | | - _get_nvidia_gpu_from_node_labels, |
| 6 | +from dstack._internal.core.backends.kubernetes.resources import ( |
| 7 | + get_amd_gpu_from_node_labels, |
| 8 | + get_nvidia_gpu_from_node_labels, |
9 | 9 | ) |
10 | 10 | from dstack._internal.core.models.instances import Gpu |
11 | 11 |
|
12 | 12 |
|
13 | 13 | class TestGetNvidiaGPUFromNodeLabels: |
14 | 14 | def test_returns_none_if_no_labels(self): |
15 | | - assert _get_nvidia_gpu_from_node_labels({}) is None |
| 15 | + assert get_nvidia_gpu_from_node_labels({}) is None |
16 | 16 |
|
17 | 17 | def test_returns_correct_memory_for_different_A100(self): |
18 | | - assert _get_nvidia_gpu_from_node_labels( |
| 18 | + assert get_nvidia_gpu_from_node_labels( |
19 | 19 | {"nvidia.com/gpu.product": "A100-SXM4-40GB"} |
20 | 20 | ) == Gpu(vendor=AcceleratorVendor.NVIDIA, name="A100", memory_mib=40 * 1024) |
21 | 21 |
|
22 | | - assert _get_nvidia_gpu_from_node_labels( |
| 22 | + assert get_nvidia_gpu_from_node_labels( |
23 | 23 | {"nvidia.com/gpu.product": "A100-SXM4-80GB"} |
24 | 24 | ) == Gpu(vendor=AcceleratorVendor.NVIDIA, name="A100", memory_mib=80 * 1024) |
25 | 25 |
|
26 | 26 |
|
27 | 27 | class TestGetAMDGPUFromNodeLabels: |
28 | 28 | def test_returns_no_gpus_if_no_labels(self): |
29 | | - assert _get_amd_gpu_from_node_labels({}) is None |
| 29 | + assert get_amd_gpu_from_node_labels({}) is None |
30 | 30 |
|
31 | 31 | def test_returns_known_gpu(self): |
32 | | - assert _get_amd_gpu_from_node_labels({"beta.amd.com/gpu.device-id.74b5": "4"}) == Gpu( |
| 32 | + assert get_amd_gpu_from_node_labels({"beta.amd.com/gpu.device-id.74b5": "4"}) == Gpu( |
33 | 33 | vendor=AcceleratorVendor.AMD, name="MI300X", memory_mib=192 * 1024 |
34 | 34 | ) |
35 | 35 |
|
36 | 36 | def test_returns_known_gpu_if_multiple_device_ids_match_the_same_gpu(self): |
37 | 37 | # 4x AMD Instinct MI300X VF + 4x AMD Instinct MI300X |
38 | 38 | labels = {"beta.amd.com/gpu.device-id.74b5": "4", "beta.amd.com/gpu.device-id.74a1": "4"} |
39 | | - assert _get_amd_gpu_from_node_labels(labels) == Gpu( |
| 39 | + assert get_amd_gpu_from_node_labels(labels) == Gpu( |
40 | 40 | vendor=AcceleratorVendor.AMD, name="MI300X", memory_mib=192 * 1024 |
41 | 41 | ) |
42 | 42 |
|
43 | 43 | def test_returns_none_if_device_id_is_unknown(self, caplog: pytest.LogCaptureFixture): |
44 | 44 | caplog.set_level(logging.WARNING) |
45 | | - assert _get_amd_gpu_from_node_labels({"beta.amd.com/gpu.device-id.ffff": "4"}) is None |
| 45 | + assert get_amd_gpu_from_node_labels({"beta.amd.com/gpu.device-id.ffff": "4"}) is None |
46 | 46 | assert "Unknown AMD GPU device id: FFFF" in caplog.text |
47 | 47 |
|
48 | 48 | def test_returns_none_if_multiple_gpu_models(self, caplog: pytest.LogCaptureFixture): |
49 | 49 | caplog.set_level(logging.WARNING) |
50 | 50 | # 4x AMD Instinct MI300X VF + 4x AMD Instinct MI325X |
51 | 51 | labels = {"beta.amd.com/gpu.device-id.74b5": "4", "beta.amd.com/gpu.device-id.74a5": "4"} |
52 | | - assert _get_amd_gpu_from_node_labels(labels) is None |
| 52 | + assert get_amd_gpu_from_node_labels(labels) is None |
53 | 53 | assert "Multiple AMD GPU models detected" in caplog.text |
0 commit comments