|
20#include "hwloc/autogen/config.h"
21#include "hwloc/helper.h"
23#include "hwloc/linux.h"
49static __hwloc_inline int
51 CUdevice cudevice, int *domain, int *bus, int *dev)
55#if CUDA_VERSION >= 4000
56 cres = cuDeviceGetAttribute(domain, CU_DEVICE_ATTRIBUTE_PCI_DOMAIN_ID, cudevice);
57 if (cres != CUDA_SUCCESS) {
64 cres = cuDeviceGetAttribute(bus, CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, cudevice);
65 if (cres != CUDA_SUCCESS) {
69 cres = cuDeviceGetAttribute(dev, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, cudevice);
70 if (cres != CUDA_SUCCESS) {
97static __hwloc_inline int
101#ifdef HWLOC_LINUX_SYS
103#define HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX 128
104 char path[HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX];
105 int domainid, busid, deviceid;
115 sprintf(path, "/sys/bus/pci/devices/%04x:%02x:%02x.0/local_cpus", domainid, busid, deviceid);
139 int domain, bus, dev;
166 int domain, bus, dev;
174 if (strncmp(osdev-> name, "cuda", 4))
211 && !strncmp( "cuda", osdev-> name, 4)
212 && atoi(osdev-> name + 4) == ( int) idx)
hwloc_bitmap_t hwloc_cpuset_t A CPU set is a bitmap whose bits are set according to CPU physical OS indexes. Definition hwloc.h:161
@ HWLOC_OBJ_OSDEV_COPROC Operating system co-processor device. For instance "opencl0d0" for a OpenCL device,... Definition hwloc.h:385
@ HWLOC_OBJ_PCI_DEVICE PCI device (filtered out by default). Definition hwloc.h:295
struct hwloc_topology * hwloc_topology_t Topology context. Definition hwloc.h:742
int hwloc_topology_is_thissystem(hwloc_topology_t restrict topology) Does the topology context come from this system?
hwloc_const_cpuset_t hwloc_topology_get_complete_cpuset(hwloc_topology_t topology) Get complete CPU set.
static hwloc_obj_t hwloc_get_next_osdev(hwloc_topology_t topology, hwloc_obj_t prev) Get the next OS device in the system. Definition helper.h:1290
static hwloc_obj_t hwloc_get_pcidev_by_busid(hwloc_topology_t topology, unsigned domain, unsigned bus, unsigned dev, unsigned func) Find the PCI device object matching the PCI bus id given domain, bus device and function PCI bus id. Definition helper.h:1249
int hwloc_bitmap_iszero(hwloc_const_bitmap_t bitmap) Test whether bitmap bitmap is empty.
int hwloc_bitmap_copy(hwloc_bitmap_t dst, hwloc_const_bitmap_t src) Copy the contents of bitmap src into the already allocated bitmap dst.
int hwloc_linux_read_path_as_cpumask(const char *path, hwloc_bitmap_t set) Convert a linux kernel cpumask file path into a hwloc bitmap set.
static int hwloc_cuda_get_device_pci_ids(hwloc_topology_t topology, CUdevice cudevice, int *domain, int *bus, int *dev) Return the domain, bus and device IDs of the CUDA device cudevice. Definition cuda.h:50
static hwloc_obj_t hwloc_cuda_get_device_pcidev(hwloc_topology_t topology, CUdevice cudevice) Get the hwloc PCI device object corresponding to the CUDA device cudevice. Definition cuda.h:137
static hwloc_obj_t hwloc_cuda_get_device_osdev_by_index(hwloc_topology_t topology, unsigned idx) Get the hwloc OS device object corresponding to the CUDA device whose index is idx. Definition cuda.h:205
static hwloc_obj_t hwloc_cuda_get_device_osdev(hwloc_topology_t topology, CUdevice cudevice) Get the hwloc OS device object corresponding to CUDA device cudevice. Definition cuda.h:163
static int hwloc_cuda_get_device_cpuset(hwloc_topology_t topology, CUdevice cudevice, hwloc_cpuset_t set) Get the CPU set of processors that are physically close to device cudevice. Definition cuda.h:98
Structure of a topology object. Definition hwloc.h:431
char * name Object-specific name if any. Mostly used for identifying OS devices and Misc objects where a name str... Definition hwloc.h:443
hwloc_obj_type_t type Type of object. Definition hwloc.h:433
union hwloc_obj_attr_u * attr Object type-specific Attributes, may be NULL if no attribute value was found. Definition hwloc.h:450
struct hwloc_obj * parent Parent, NULL if root (Machine object) Definition hwloc.h:481
struct hwloc_obj_attr_u::hwloc_pcidev_attr_s pcidev
struct hwloc_obj_attr_u::hwloc_osdev_attr_s osdev
unsigned char dev Device number (zz in the PCI BDF notation xxxx:yy:zz.t). Definition hwloc.h:677
unsigned char func Function number (t in the PCI BDF notation xxxx:yy:zz.t). Definition hwloc.h:678
unsigned short domain Domain number (xxxx in the PCI BDF notation xxxx:yy:zz.t). Only 16bits PCI domains are supported by d... Definition hwloc.h:670
unsigned char bus Bus number (yy in the PCI BDF notation xxxx:yy:zz.t). Definition hwloc.h:676
hwloc_obj_osdev_type_t type Definition hwloc.h:716
|
|
|