logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

hwlocality_object_types - Object Types

Author

       Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code.

Hardware Locality (hwloc)                        Version 2.12.0                       hwlocality_object_types(3)

Detailed Description

Enumeration Type Documentation

enumhwloc_obj_bridge_type_e
       Type of one side (upstream or downstream) of an I/O bridge.

       EnumeratorHWLOC_OBJ_BRIDGE_HOST
              Host-side of a bridge, only possible upstream.

       HWLOC_OBJ_BRIDGE_PCI
              PCI-side of a bridge.

   enumhwloc_obj_cache_type_e
       Cache type.

       EnumeratorHWLOC_OBJ_CACHE_UNIFIED
              Unified cache.

       HWLOC_OBJ_CACHE_DATA
              Data cache.

       HWLOC_OBJ_CACHE_INSTRUCTION
              Instruction cache (filtered out by default).

   enumhwloc_obj_osdev_type_e
       Type of a OS device.

       EnumeratorHWLOC_OBJ_OSDEV_BLOCK
              Operating  system  block  device, or non-volatile memory device. For instance 'sda' or 'dax2.0' on
              Linux.

       HWLOC_OBJ_OSDEV_GPU
              Operating system GPU device. For instance ':0.0' for a GL display, 'card0' for a Linux DRM device.

       HWLOC_OBJ_OSDEV_NETWORK
              Operating system network device. For instance the 'eth0' interface on Linux.

       HWLOC_OBJ_OSDEV_OPENFABRICS
              Operating system openfabrics device. For instance the 'mlx4_0' InfiniBand HCA, 'hfi1_0'  Omni-Path
              interface, or 'bxi0' Atos/Bull BXI HCA on Linux.

       HWLOC_OBJ_OSDEV_DMA
              Operating system dma engine device. For instance the 'dma0chan0' DMA channel on Linux.

       HWLOC_OBJ_OSDEV_COPROC
              Operating  system co-processor device. For instance 'opencl0d0' for a OpenCL device, 'cuda0' for a
              CUDA device.

   enumhwloc_obj_type_t
       Type of topology object.

       Note
           Do not rely on the ordering or completeness of the values as new ones may be defined in  the  future!
           If you need to compare types, use hwloc_compare_types() instead.

       EnumeratorHWLOC_OBJ_MACHINE
              Machine.  A  set  of  processors and memory with cache coherency. This type is always used for the
              root object of a topology, and never used anywhere else. Hence its parent is always NULL.

       HWLOC_OBJ_PACKAGE
              Physical package.  The  physical  package  that  usually  gets  inserted  into  a  socket  on  the
              motherboard. A processor package usually contains multiple cores, and possibly some dies.

       HWLOC_OBJ_CORE
              Core. A computation unit (may be shared by several PUs, aka logical processors).

       HWLOC_OBJ_PU
              Processing  Unit,  or  (Logical)  Processor.  An  execution unit (may share a core with some other
              logical processors, e.g. in the case of an SMT core). This is the smallest object representing CPU
              resources, it cannot have any child except Misc objects.

       Objects of this kind are always reported and can thus be used as fallback when others are not.

       HWLOC_OBJ_L1CACHE
              Level 1 Data (or Unified) Cache.

       HWLOC_OBJ_L2CACHE
              Level 2 Data (or Unified) Cache.

       HWLOC_OBJ_L3CACHE
              Level 3 Data (or Unified) Cache.

       HWLOC_OBJ_L4CACHE
              Level 4 Data (or Unified) Cache.

       HWLOC_OBJ_L5CACHE
              Level 5 Data (or Unified) Cache.

       HWLOC_OBJ_L1ICACHE
              Level 1 instruction Cache (filtered out by default).

       HWLOC_OBJ_L2ICACHE
              Level 2 instruction Cache (filtered out by default).

       HWLOC_OBJ_L3ICACHE
              Level 3 instruction Cache (filtered out by default).

       HWLOC_OBJ_GROUP
              Group objects. Objects which do not fit in the above but are detected by hwloc and are  useful  to
              take  into  account  for  affinity.  For  instance,  some operating systems expose their arbitrary
              processors aggregation this way. And hwloc may insert such objects to group NUMA  nodes  according
              to  their  distances.  See  also  WhataretheseGroupobjectsinmytopology?. These objects are
              removed when they do not bring any structure (see HWLOC_TYPE_FILTER_KEEP_STRUCTURE).

       HWLOC_OBJ_NUMANODE
              NUMA node. An object that contains memory  that  is  directly  and  byte-accessible  to  the  host
              processors.  It  is  usually close to some cores (the corresponding objects are descendants of the
              NUMA node object in the hwloc tree). This is the smallest object representing Memory resources, it
              cannot have any child except Misc objects. However it may have Memory-side cache parents.

       NUMA nodes may correspond to different kinds of memory (DRAM, HBM, CXL-DRAM, etc.). When hwloc is able to
       guess that kind, it is specified in the subtype field of the object. See also Normalattributes  in  the
       main documentation.

       There is always at least one such object in the topology even if the machine is not NUMA.

       Memory  objects  are  not  listed  in the main children list, but rather in the dedicated Memory children
       list.

       NUMA nodes have a special depth HWLOC_TYPE_DEPTH_NUMANODE instead of  a  normal  depth  just  like  other
       objects in the main tree.

       HWLOC_OBJ_BRIDGE
              Bridge (filtered out by default). Any bridge (or PCI switch) that connects the host or an I/O bus,
              to  another  I/O bus. Bridges are not added to the topology unless their filtering is changed (see
              hwloc_topology_set_type_filter() and hwloc_topology_set_io_types_filter()).

       I/O objects are not listed in the main children list, but rather in the dedicated io children  list.  I/O
       objects have NULL CPU and node sets.

       HWLOC_OBJ_PCI_DEVICE
              PCI  device  (filtered  out  by  default).  PCI devices are not added to the topology unless their
              filtering        is        changed        (see        hwloc_topology_set_type_filter()         and
              hwloc_topology_set_io_types_filter()).

       I/O  objects  are not listed in the main children list, but rather in the dedicated io children list. I/O
       objects have NULL CPU and node sets.

       HWLOC_OBJ_OS_DEVICE
              Operating system device (filtered out by default). OS devices are not added to the topology unless
              their      filtering      is      changed      (see      hwloc_topology_set_type_filter()      and
              hwloc_topology_set_io_types_filter()).

       I/O  objects  are not listed in the main children list, but rather in the dedicated io children list. I/O
       objects have NULL CPU and node sets.

       HWLOC_OBJ_MISC
              Miscellaneous objects (filtered out by default). Objects without particular meaning, that can e.g.
              be added by the application for its own use,  or  by  hwloc  for  miscellaneous  objects  such  as
              MemoryModule  (DIMMs).  They  are not added to the topology unless their filtering is changed (see
              hwloc_topology_set_type_filter()).

       These objects are not listed in the main children list, but rather in the dedicated misc  children  list.
       Misc objects may only have Misc objects as children, and those are in the dedicated misc children list as
       well. Misc objects have NULL CPU and node sets.

       HWLOC_OBJ_MEMCACHE
              Memory-side cache (filtered out by default). A cache in front of a specific NUMA node. This object
              always has at least one NUMA node as a memory child.

       Memory  objects  are  not  listed  in the main children list, but rather in the dedicated Memory children
       list.

       Memory-side cache have a special depth HWLOC_TYPE_DEPTH_MEMCACHE instead of  a  normal  depth  just  like
       other objects in the main tree.

       HWLOC_OBJ_DIE
              Die  within  a  physical package. A subpart of the physical package, that contains multiple cores.
              Some operating systems (e.g. Linux) may expose a single die per package even if the hardware  does
              not  support  dies  at all. To avoid showing such non-existing dies, hwloc will filter them out if
              all   of   them   are   identical   to   packages.   This   is    functionally    equivalent    to
              HWLOC_TYPE_FILTER_KEEP_STRUCTURE being enforced for Dies versus Packages.

Function Documentation

inthwloc_compare_types(hwloc_obj_type_ttype1,hwloc_obj_type_ttype2)
       Compare  the  depth of two object types. Types shouldn't be compared as they are, since newer ones may be
       added in the future.

       Returns
           A negative integer if type1 objects usually include type2 objects.

           A positive integer if type1 objects are usually included in type2 objects.

           0 if type1 and type2 objects are the same.

           HWLOC_TYPE_UNORDERED if objects cannot be compared (because  neither  is  usually  contained  in  the
           other).

       Note
           Object  types  containing  CPUs  can  always be compared (usually, a machine contains packages, which
           contain caches, which contain cores, which contain PUs).

           HWLOC_OBJ_PU will always be the deepest, while HWLOC_OBJ_MACHINE is always the highest.

           This does not mean that the actual topology will respect that order: e.g. as of today cores may  also
           contain  caches,  and  packages  may  also  contain nodes. This is thus just to be seen as a fallback
           comparison method.

Macro Definition Documentation

#defineHWLOC_TYPE_UNORDERED
       Value returned by hwloc_compare_types() when types can not be compared.

Name

       hwlocality_object_types - Object Types

Synopsis

Macros
       #define HWLOC_TYPE_UNORDEREDTypedefs
       typedef enum hwloc_obj_cache_type_ehwloc_obj_cache_type_t
       typedef enum hwloc_obj_bridge_type_ehwloc_obj_bridge_type_t
       typedef enum hwloc_obj_osdev_type_ehwloc_obj_osdev_type_tEnumerations
       enum hwloc_obj_type_t { HWLOC_OBJ_MACHINE, HWLOC_OBJ_PACKAGE, HWLOC_OBJ_CORE, HWLOC_OBJ_PU,
           HWLOC_OBJ_L1CACHE, HWLOC_OBJ_L2CACHE, HWLOC_OBJ_L3CACHE, HWLOC_OBJ_L4CACHE, HWLOC_OBJ_L5CACHE,
           HWLOC_OBJ_L1ICACHE, HWLOC_OBJ_L2ICACHE, HWLOC_OBJ_L3ICACHE, HWLOC_OBJ_GROUP, HWLOC_OBJ_NUMANODE,
           HWLOC_OBJ_BRIDGE, HWLOC_OBJ_PCI_DEVICE, HWLOC_OBJ_OS_DEVICE, HWLOC_OBJ_MISC, HWLOC_OBJ_MEMCACHE,
           HWLOC_OBJ_DIE, HWLOC_OBJ_TYPE_MAX }
       enum hwloc_obj_cache_type_e { HWLOC_OBJ_CACHE_UNIFIED, HWLOC_OBJ_CACHE_DATA, HWLOC_OBJ_CACHE_INSTRUCTION
           }
       enum hwloc_obj_bridge_type_e { HWLOC_OBJ_BRIDGE_HOST, HWLOC_OBJ_BRIDGE_PCI }
       enum hwloc_obj_osdev_type_e { HWLOC_OBJ_OSDEV_BLOCK, HWLOC_OBJ_OSDEV_GPU, HWLOC_OBJ_OSDEV_NETWORK,
           HWLOC_OBJ_OSDEV_OPENFABRICS, HWLOC_OBJ_OSDEV_DMA, HWLOC_OBJ_OSDEV_COPROC }

   Functions
       int hwloc_compare_types (hwloc_obj_type_t type1, hwloc_obj_type_t type2)

Typedef Documentation

typedefenumhwloc_obj_bridge_type_ehwloc_obj_bridge_type_t
       Type of one side (upstream or downstream) of an I/O bridge.

   typedefenumhwloc_obj_cache_type_ehwloc_obj_cache_type_t
       Cache type.

   typedefenumhwloc_obj_osdev_type_ehwloc_obj_osdev_type_t
       Type of a OS device.

See Also