We are using the hwloc api to identify GPUs on our cluster. While we are able to "discover" the GPUs, other information about them does not appear to be getting filled in. See below for example: (gdb) p *obj->attr $20 = { cache = { size = 1, depth = 0, linesize = 0, associativity = 0, type = HWLOC_OBJ_CACHE_UNIFIED }, group = { depth = 1 }, pcidev = { domain = 1, bus = 0 '\000', dev = 0 '\000', func = 0 '\000', class_id = 0, vendor_id = 0, device_id = 0, subvendor_id = 0, subdevice_id = 0, revision = 0 '\000', linkspeed = 0 }, bridge = { upstream = { pci = { domain = 1, bus = 0 '\000', dev = 0 '\000', func = 0 '\000', class_id = 0, vendor_id = 0, device_id = 0, subvendor_id = 0, subdevice_id = 0, revision = 0 '\000', linkspeed = 0 } }, upstream_type = HWLOC_OBJ_BRIDGE_HOST, downstream = { pci = { domain = 0, secondary_bus = 0 '\000', subordinate_bus = 0 '\000' } }, downstream_type = HWLOC_OBJ_BRIDGE_HOST, depth = 0 }, osdev = { type = HWLOC_OBJ_OSDEV_GPU } } The name is generally just "cardX". Does this mean that the cards are not configured correctly? Or is there an additional flag that needs to be set to get this information? Currently the code does: hwloc_topology_init(&machine_topology); hwloc_topology_set_flags(machine_topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); hwloc_topology_load(machine_topology); And this is enough to identify the CPUs and GPUs, but any additional information - particularly the device and vendor id's - seem to not be there. I tried this with the most recent release (1.11.7) and saw the same results. We tried this on a variety of PowerPC machines and I think even some x86_64 machines with similar results. Thoughts? Dave
_______________________________________________ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/hwloc-users