@@ -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