Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit 2d74836

Browse files
fix: map nvidia and vulkan uuid (#1954)
Co-authored-by: vansangpfiev <[email protected]>
1 parent 8b9f6f4 commit 2d74836

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

engine/services/hardware_service.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ std::vector<int> HardwareService::GetCudaConfig() {
491491
// Map uuid back to nvidia id
492492
for (auto const& uuid : uuids) {
493493
for (auto const& ngpu : nvidia_gpus) {
494-
if (uuid == ngpu.uuid) {
494+
if (ngpu.uuid.find(uuid) != std::string::npos) {
495495
res.push_back(std::stoi(ngpu.id));
496496
}
497497
}

engine/utils/hardware/gpu/vulkan/vulkan_gpu.h

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -421,18 +421,16 @@ inline cpp::result<std::vector<cortex::hw::GPU>, std::string> GetGpuInfoList() {
421421
#endif
422422
int free_vram_MiB =
423423
total_vram_MiB > used_vram_MiB ? total_vram_MiB - used_vram_MiB : 0;
424-
if (total_vram_MiB > 0) {
425-
gpus.emplace_back(cortex::hw::GPU{
426-
.id = std::to_string(id),
427-
.device_id = device_properties.deviceID,
428-
.name = device_properties.deviceName,
429-
.version = std::to_string(device_properties.driverVersion),
430-
.add_info = cortex::hw::AmdAddInfo{},
431-
.free_vram = free_vram_MiB,
432-
.total_vram = total_vram_MiB,
433-
.uuid = uuid_to_string(device_id_properties.deviceUUID),
434-
.vendor = GetVendorStr(device_properties.vendorID)});
435-
}
424+
gpus.emplace_back(cortex::hw::GPU{
425+
.id = std::to_string(id),
426+
.device_id = device_properties.deviceID,
427+
.name = device_properties.deviceName,
428+
.version = std::to_string(device_properties.driverVersion),
429+
.add_info = cortex::hw::AmdAddInfo{},
430+
.free_vram = free_vram_MiB,
431+
.total_vram = total_vram_MiB,
432+
.uuid = uuid_to_string(device_id_properties.deviceUUID),
433+
.vendor = GetVendorStr(device_properties.vendorID)});
436434
id++;
437435
}
438436

engine/utils/hardware/gpu_info.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ inline std::vector<GPU> GetGPUInfo() {
2929
}
3030
}
3131

32+
// Erase invalid GPUs
33+
for (std::vector<cortex::hw::GPU>::iterator it = vulkan_gpus.begin();
34+
it != vulkan_gpus.end();) {
35+
if ((*it).total_vram <= 0)
36+
it = vulkan_gpus.erase(it);
37+
else
38+
++it;
39+
}
40+
3241
if (use_vulkan_info) {
3342
return vulkan_gpus;
3443
} else {

0 commit comments

Comments
 (0)