File size: 1,593 Bytes
f340984
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os
import sys

import pytest

from unlimited_ocr_rdna4.errors import RuntimeEnvironmentError
from unlimited_ocr_rdna4.runtime import DeviceInfo, RuntimeInfo, select_device


def test_runtime_info_serializes() -> None:
    info = RuntimeInfo(
        torch_version="2.9.1+rocm7.2.1",
        hip_version="7.2",
        cuda_available=True,
        bf16_supported=True,
        visible_devices=1,
        devices=(DeviceInfo(0, "AMD Radeon RX 9070 XT", "gfx1201", "uuid"),),
        package_versions={"torch": "different"},
        accepted_architecture=True,
        hardware_verified=True,
        software_verified=False,
        warnings=("different stack",),
    )
    payload = info.to_dict()
    assert payload["devices"][0]["architecture"] == "gfx1201"
    assert payload["hardware_verified"] is True
    assert payload["software_verified"] is False


def test_device_selection_rejects_conflicting_visibility(monkeypatch) -> None:
    monkeypatch.delitem(sys.modules, "torch", raising=False)
    monkeypatch.setenv("HIP_VISIBLE_DEVICES", "2")
    with pytest.raises(RuntimeEnvironmentError, match="HIP_VISIBLE_DEVICES"):
        select_device("GPU-example")


def test_device_selection_preserves_matching_rocr_value(monkeypatch) -> None:
    monkeypatch.delitem(sys.modules, "torch", raising=False)
    monkeypatch.delenv("HIP_VISIBLE_DEVICES", raising=False)
    monkeypatch.delenv("CUDA_VISIBLE_DEVICES", raising=False)
    monkeypatch.setenv("ROCR_VISIBLE_DEVICES", "GPU-example")
    select_device("GPU-example")
    assert os.environ["ROCR_VISIBLE_DEVICES"] == "GPU-example"