Skip to content

Commit 42b9558

Browse files
committed
fix: failed on backend visible device values align
Signed-off-by: thxCode <[email protected]>
1 parent cd52526 commit 42b9558

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

gpustack_runtime/deployer/__types__.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1280,15 +1280,15 @@ class Deployer(ABC):
12801280
"AMD_VISIBLE_DEVICES": ["0", "1"]
12811281
}.
12821282
"""
1283-
_visible_devices_values_alignment: dict[str, dict[str, str]] | None = None
1283+
_backend_visible_devices_values_alignment: dict[str, dict[str, str]] | None = None
12841284
"""
1285-
Recorded visible devices values alignment,
1285+
Recorded backend visible devices values alignment,
12861286
the key is the runtime visible devices env name,
12871287
the value is the mapping from backend device index to aligned index.
12881288
For example:
12891289
{
1290-
"NVIDIA_VISIBLE_DEVICES": {"0": "0"},
1291-
"AMD_VISIBLE_DEVICES": {"0": "0", "1": "1"}
1290+
"CUDA_VISIBLE_DEVICES": {"0": "0"},
1291+
"HIP_VISIBLE_DEVICES": {"0": "0", "1": "1"}
12921292
}.
12931293
"""
12941294

@@ -1336,7 +1336,7 @@ def _fetch_visible_devices_env_values(self):
13361336

13371337
self._visible_devices_env = {}
13381338
self._visible_devices_values = {}
1339-
self._visible_devices_values_alignment = {}
1339+
self._backend_visible_devices_values_alignment = {}
13401340

13411341
devices: dict[ManufacturerEnum, Devices] = {}
13421342
for dev in detect_devices(fast=False):
@@ -1370,15 +1370,21 @@ def _fetch_visible_devices_env_values(self):
13701370
in envs.GPUSTACK_RUNTIME_DEPLOY_RUNTIME_VISIBLE_DEVICES_VALUE_UUID
13711371
else dev_indexes
13721372
)
1373-
self._visible_devices_values_alignment[ren] = dev_indexes_alignment
1373+
for ben_item in ben:
1374+
if (
1375+
ben_item
1376+
in envs.GPUSTACK_RUNTIME_DEPLOY_BACKEND_VISIBLE_DEVICES_VALUE_ALIGNMENT
1377+
):
1378+
self._backend_visible_devices_values_alignment[ben_item] = (
1379+
dev_indexes_alignment
1380+
)
13741381

13751382
if self._visible_devices_env:
13761383
return
13771384

13781385
# Fallback to unknown backend
13791386
self._visible_devices_env["UNKNOWN_RUNTIME_VISIBLE_DEVICES"] = []
13801387
self._visible_devices_values["UNKNOWN_RUNTIME_VISIBLE_DEVICES"] = ["all"]
1381-
self._visible_devices_values_alignment["UNKNOWN_RUNTIME_VISIBLE_DEVICES"] = {}
13821388

13831389
def visible_devices_env_values(
13841390
self,
@@ -1436,14 +1442,13 @@ def align_backend_visible_devices_env_values(
14361442
):
14371443
return resource_key_values
14381444
self._fetch_visible_devices_env_values()
1445+
alignments = self._backend_visible_devices_values_alignment.get(
1446+
backend_visible_devices_env,
1447+
)
1448+
if not alignments:
1449+
return resource_key_values
14391450
return ",".join(
1440-
[
1441-
self._visible_devices_values_alignment[backend_visible_devices_env].get(
1442-
v,
1443-
v,
1444-
)
1445-
for v in resource_key_values.split(",")
1446-
],
1451+
[alignments.get(v, v) for v in resource_key_values.split(",")],
14471452
)
14481453

14491454
@property

0 commit comments

Comments
 (0)