Hi,
Never mind, I figured it out. hwloc_cudart_get_device_pci_ids was giving the PCI Domain as being 0 for all GPUs. Looking at hwloc/cudart.h, I found some strange conditional. Removing it solved the problem. Is CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID a holdover from some older CUDA version?

diff --git a/include/hwloc/cudart.h b/include/hwloc/cudart.h
index 243e0fd..e2fd74d 100644
--- a/include/hwloc/cudart.h
+++ b/include/hwloc/cudart.h
@@ -56,12 +56,7 @@ hwloc_cudart_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unus
     return -1;
   }

-#ifdef CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID
   *domain = prop.pciDomainID;
-#else
-  *domain = 0;
-#endif
-
   *bus = prop.pciBusID;
   *dev = prop.pciDeviceID;

Imre

Reply via email to