test_utils.py 1.35 KB
Newer Older
1
2
import ray

3
4
5
import vllm.envs as envs
from vllm.utils import (cuda_device_count_stateless, is_hip,
                        update_environment_variables)
6
7
8


@ray.remote
9
class _CUDADeviceCountStatelessTestActor:
10
11
12
13
14

    def get_count(self):
        return cuda_device_count_stateless()

    def set_cuda_visible_devices(self, cuda_visible_devices: str):
15
16
        update_environment_variables(
            {"CUDA_VISIBLE_DEVICES": cuda_visible_devices})
17
18

    def get_cuda_visible_devices(self):
19
        return envs.CUDA_VISIBLE_DEVICES
20
21
22
23
24


def test_cuda_device_count_stateless():
    """Test that cuda_device_count_stateless changes return value if
    CUDA_VISIBLE_DEVICES is changed."""
25
26
27
28
29
    if is_hip():
        # Set HIP_VISIBLE_DEVICES == CUDA_VISIBLE_DEVICES. Conversion
        # is handled by `update_environment_variables`
        update_environment_variables(
            {"CUDA_VISIBLE_DEVICES": envs.CUDA_VISIBLE_DEVICES})
30
31
    actor = _CUDADeviceCountStatelessTestActor.options(  # type: ignore
        num_gpus=2).remote()
32
33
    assert sorted(ray.get(
        actor.get_cuda_visible_devices.remote()).split(",")) == ["0", "1"]
34
35
36
37
38
    assert ray.get(actor.get_count.remote()) == 2
    ray.get(actor.set_cuda_visible_devices.remote("0"))
    assert ray.get(actor.get_count.remote()) == 1
    ray.get(actor.set_cuda_visible_devices.remote(""))
    assert ray.get(actor.get_count.remote()) == 0