Update hwloc for MSVC builds.
This commit is contained in:
parent
850b43c079
commit
7a85257ad4
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.1)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
project(xmrig)
|
project(xmrig)
|
||||||
|
|
||||||
option(WITH_HWLOC "Enable hwloc support" ON)
|
option(WITH_HWLOC "Enable hwloc support" ON)
|
||||||
|
2
src/3rdparty/argon2/CMakeLists.txt
vendored
2
src/3rdparty/argon2/CMakeLists.txt
vendored
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.1)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
project(argon2 C)
|
project(argon2 C)
|
||||||
set(CMAKE_C_STANDARD 99)
|
set(CMAKE_C_STANDARD 99)
|
||||||
|
2
src/3rdparty/hwloc/CMakeLists.txt
vendored
2
src/3rdparty/hwloc/CMakeLists.txt
vendored
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.1)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
project (hwloc C)
|
project (hwloc C)
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
107
src/3rdparty/hwloc/NEWS
vendored
107
src/3rdparty/hwloc/NEWS
vendored
@ -1,5 +1,5 @@
|
|||||||
Copyright © 2009 CNRS
|
Copyright © 2009 CNRS
|
||||||
Copyright © 2009-2022 Inria. All rights reserved.
|
Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
Copyright © 2009-2013 Université Bordeaux
|
Copyright © 2009-2013 Université Bordeaux
|
||||||
Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
Copyright © 2020 Hewlett Packard Enterprise. All rights reserved.
|
Copyright © 2020 Hewlett Packard Enterprise. All rights reserved.
|
||||||
@ -17,6 +17,103 @@ bug fixes (and other actions) for each version of hwloc since version
|
|||||||
0.9.
|
0.9.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.10.0
|
||||||
|
--------------
|
||||||
|
* Heterogeneous Memory core improvements
|
||||||
|
+ Better heuristics to identify the subtype of memory such as HBM,
|
||||||
|
DRAM, NVM, CXL-DRAM, etc.
|
||||||
|
+ Build memory tiers, i.e. sets of NUMA nodes with the same subtype
|
||||||
|
and similar performance.
|
||||||
|
- NUMA node tier ranks are exposed in the new MemoryTier info
|
||||||
|
attribute (starts from 0 for highest bandwidth tier)..
|
||||||
|
+ See the new Heterogeneous Memory section in the documentation.
|
||||||
|
* API
|
||||||
|
+ Add hwloc_topology_free_group_object() to discard a Group created
|
||||||
|
by hwloc_topology_alloc_group_object().
|
||||||
|
* Linux backend
|
||||||
|
+ Fix cpukinds on NVIDIA Grace to report identical cores even if they
|
||||||
|
actually have very small frequency differences.
|
||||||
|
Thanks to John C. Linford for the report.
|
||||||
|
+ Add CXLDevice attributes to CXL DAX objects and NUMA nodes to show
|
||||||
|
which PCI device implements which window.
|
||||||
|
+ Ignore buggy memory-side caches and memory attributes when fake NUMA
|
||||||
|
emulation is enabled on the Linux kernel command-line.
|
||||||
|
+ Add more info attributes in MemoryModule Misc objects,
|
||||||
|
thanks to Zubiao Xiong for the patch.
|
||||||
|
+ Get CPUModel and CPUFamily info attributes on LoongArch platforms.
|
||||||
|
* x86 backend
|
||||||
|
+ Add support for new AMD CPUID leaf 0x80000026 for better detection
|
||||||
|
of Core Complex and Die on Zen4 processors.
|
||||||
|
+ Improve Zhaoxin CPU topology detection.
|
||||||
|
* Tools
|
||||||
|
+ Input locations and many command-line options (e.g. hwloc-calc -I -N -H,
|
||||||
|
lstopo --only) now accept filters such as "NUMA[HBM]" so that only
|
||||||
|
objects are that type and subtype are considered.
|
||||||
|
- NUMA[tier=1] is also accepted for selecting NUMA nodes depending
|
||||||
|
on their MemoryTier info attribute.
|
||||||
|
+ Add --object-output to hwloc-calc to report the type as a prefix to
|
||||||
|
object indexes, e.g. Core:2 instead of 2 in the output of -I.
|
||||||
|
+ hwloc-info --ancestor and --descendants now accepts kinds of objects
|
||||||
|
instead of single types.
|
||||||
|
- The new --first option only shows the first matching object.
|
||||||
|
+ Add --children-of-pid to hwloc-ps to show a hierarchy of processes.
|
||||||
|
Thanks to Antoine Morvan for the suggestion.
|
||||||
|
+ Add --misc-from to lstopo to add Misc objects described in a file.
|
||||||
|
- To be combined with the new hwloc-ps --lstopo-misc for a customizable
|
||||||
|
lstopo --top replacement.
|
||||||
|
* Misc
|
||||||
|
+ lstopo may now configure the layout of memory object placed above,
|
||||||
|
for instance with --children-order memory:above:vert.
|
||||||
|
+ Fix XML import from memory or stdin when using libxml2 2.12.
|
||||||
|
+ Fix installation failures when configuring with --target,
|
||||||
|
thanks to Clement Foyer for the patch.
|
||||||
|
+ Fix support for 128bit pointer architectures.
|
||||||
|
+ Remove Netloc.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.9.3
|
||||||
|
-------------
|
||||||
|
* Handle Linux glibc allocation errors in binding routines (CVE-2022-47022).
|
||||||
|
* Fix hwloc-calc when searching objects on heterogeneous memory platforms,
|
||||||
|
thanks to Antoine Morvan for the report.
|
||||||
|
* Fix hwloc_get_next_child() when there are some memory-side caches.
|
||||||
|
* Don't crash if the topology is empty because Linux cgroups are wrong.
|
||||||
|
* Improve some hwloc-bind warnings in case of command-line parsing errors.
|
||||||
|
* Many documentation improvements all over the place, including:
|
||||||
|
+ hwloc_topology_restrict() and hwloc_topology_insert_group() may reorder
|
||||||
|
children, causing the logical indexes of objects to change.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.9.2
|
||||||
|
-------------
|
||||||
|
* Don't forget L3i when defining filters for multiple levels of caches
|
||||||
|
with hwloc_topology_set_cache/icache_types_filter().
|
||||||
|
* Fix object total_memory after hwloc_topology_insert_group_object().
|
||||||
|
* Fix the (non-yet) exporting in synthetic description for complex memory
|
||||||
|
hierarchies with memory-side caches, etc.
|
||||||
|
* Fix some default size attributes when building synthetic topologies.
|
||||||
|
* Fix size units in hwloc-annotate.
|
||||||
|
* Improve bitmap reallocation error management in many functions.
|
||||||
|
* Documentation improvements:
|
||||||
|
+ Better document return values of functions.
|
||||||
|
+ Add "Error reporting" section (in hwloc.h and in the doxygen doc).
|
||||||
|
+ Add FAQ entry "What may I disable to make hwloc faster?"
|
||||||
|
+ Improve FAQ entries "Why is lstopo slow?" and
|
||||||
|
"I only need ..., why should I use hwloc?"
|
||||||
|
+ Clarify how to deal with cpukinds in hwloc-calc and hwloc-bind
|
||||||
|
manpages.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.9.1
|
||||||
|
-------------
|
||||||
|
* Don't forget to apply object type filters to "perflevel" caches detected
|
||||||
|
on recent Mac OS X releases, thanks to Michel Lesoinne for the report.
|
||||||
|
* Fix a failed assertion in hwloc_topology_restrict() when some NUMA nodes
|
||||||
|
are removed because of HWLOC_RESTRICT_FLAG_REMOVE_CPULESS but no PUs are.
|
||||||
|
Thanks to Mark Grondona for reporting the issue.
|
||||||
|
* Mark HPE Cray Slingshot NICs with subtype "Slingshot".
|
||||||
|
|
||||||
|
|
||||||
Version 2.9.0
|
Version 2.9.0
|
||||||
-------------
|
-------------
|
||||||
* Backends
|
* Backends
|
||||||
@ -61,6 +158,14 @@ Version 2.8.0
|
|||||||
file from the documentation.
|
file from the documentation.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.7.2
|
||||||
|
-------------
|
||||||
|
* Fix a crash when LevelZero devices have multiple subdevices,
|
||||||
|
e.g. on PonteVecchio GPUs, thanks to Jonathan Peyton.
|
||||||
|
* Fix a leak when importing cpukinds from XML,
|
||||||
|
thanks to Hui Zhou.
|
||||||
|
|
||||||
|
|
||||||
Version 2.7.1
|
Version 2.7.1
|
||||||
-------------
|
-------------
|
||||||
* Workaround crashes when virtual machines report incoherent x86 CPUID
|
* Workaround crashes when virtual machines report incoherent x86 CPUID
|
||||||
|
496
src/3rdparty/hwloc/README
vendored
496
src/3rdparty/hwloc/README
vendored
File diff suppressed because it is too large
Load Diff
7
src/3rdparty/hwloc/VERSION
vendored
7
src/3rdparty/hwloc/VERSION
vendored
@ -8,7 +8,7 @@
|
|||||||
# Please update HWLOC_VERSION* in contrib/windows/hwloc_config.h too.
|
# Please update HWLOC_VERSION* in contrib/windows/hwloc_config.h too.
|
||||||
|
|
||||||
major=2
|
major=2
|
||||||
minor=9
|
minor=10
|
||||||
release=0
|
release=0
|
||||||
|
|
||||||
# greek is used for alpha or beta release tags. If it is non-empty,
|
# greek is used for alpha or beta release tags. If it is non-empty,
|
||||||
@ -22,7 +22,7 @@ greek=
|
|||||||
|
|
||||||
# The date when this release was created
|
# The date when this release was created
|
||||||
|
|
||||||
date="Dec 14, 2022"
|
date="Dec 04, 2023"
|
||||||
|
|
||||||
# If snapshot=1, then use the value from snapshot_version as the
|
# If snapshot=1, then use the value from snapshot_version as the
|
||||||
# entire hwloc version (i.e., ignore major, minor, release, and
|
# entire hwloc version (i.e., ignore major, minor, release, and
|
||||||
@ -41,7 +41,6 @@ snapshot_version=${major}.${minor}.${release}${greek}-git
|
|||||||
# 2. Version numbers are described in the Libtool current:revision:age
|
# 2. Version numbers are described in the Libtool current:revision:age
|
||||||
# format.
|
# format.
|
||||||
|
|
||||||
libhwloc_so_version=21:1:6
|
libhwloc_so_version=22:0:7
|
||||||
libnetloc_so_version=0:0:0
|
|
||||||
|
|
||||||
# Please also update the <TargetName> lines in contrib/windows/libhwloc.vcxproj
|
# Please also update the <TargetName> lines in contrib/windows/libhwloc.vcxproj
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2022 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2012 Université Bordeaux
|
* Copyright © 2009-2012 Université Bordeaux
|
||||||
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -11,9 +11,9 @@
|
|||||||
#ifndef HWLOC_CONFIG_H
|
#ifndef HWLOC_CONFIG_H
|
||||||
#define HWLOC_CONFIG_H
|
#define HWLOC_CONFIG_H
|
||||||
|
|
||||||
#define HWLOC_VERSION "2.9.0"
|
#define HWLOC_VERSION "2.10.0"
|
||||||
#define HWLOC_VERSION_MAJOR 2
|
#define HWLOC_VERSION_MAJOR 2
|
||||||
#define HWLOC_VERSION_MINOR 9
|
#define HWLOC_VERSION_MINOR 10
|
||||||
#define HWLOC_VERSION_RELEASE 0
|
#define HWLOC_VERSION_RELEASE 0
|
||||||
#define HWLOC_VERSION_GREEK ""
|
#define HWLOC_VERSION_GREEK ""
|
||||||
|
|
||||||
|
51
src/3rdparty/hwloc/include/hwloc/bitmap.h
vendored
51
src/3rdparty/hwloc/include/hwloc/bitmap.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2022 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2012 Université Bordeaux
|
* Copyright © 2009-2012 Université Bordeaux
|
||||||
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -50,9 +50,10 @@ extern "C" {
|
|||||||
* hwloc_bitmap_free(set);
|
* hwloc_bitmap_free(set);
|
||||||
* \endcode
|
* \endcode
|
||||||
*
|
*
|
||||||
* \note Most functions below return an int that may be negative in case of
|
* \note Most functions below return 0 on success and -1 on error.
|
||||||
* error. The usual error case would be an internal failure to realloc/extend
|
* The usual error case would be an internal failure to realloc/extend
|
||||||
* the storage of the bitmap (\p errno would be set to \c ENOMEM).
|
* the storage of the bitmap (\p errno would be set to \c ENOMEM).
|
||||||
|
* See also \ref hwlocality_api_error_reporting.
|
||||||
*
|
*
|
||||||
* \note Several examples of using the bitmap API are available under the
|
* \note Several examples of using the bitmap API are available under the
|
||||||
* doc/examples/ directory in the source tree.
|
* doc/examples/ directory in the source tree.
|
||||||
@ -83,7 +84,13 @@ typedef const struct hwloc_bitmap_s * hwloc_const_bitmap_t;
|
|||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc(void) __hwloc_attribute_malloc;
|
HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc(void) __hwloc_attribute_malloc;
|
||||||
|
|
||||||
/** \brief Allocate a new full bitmap. */
|
/** \brief Allocate a new full bitmap.
|
||||||
|
*
|
||||||
|
* \returns A valid bitmap or \c NULL.
|
||||||
|
*
|
||||||
|
* The bitmap should be freed by a corresponding call to
|
||||||
|
* hwloc_bitmap_free().
|
||||||
|
*/
|
||||||
HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc_full(void) __hwloc_attribute_malloc;
|
HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc_full(void) __hwloc_attribute_malloc;
|
||||||
|
|
||||||
/** \brief Free bitmap \p bitmap.
|
/** \brief Free bitmap \p bitmap.
|
||||||
@ -119,11 +126,13 @@ HWLOC_DECLSPEC int hwloc_bitmap_snprintf(char * __hwloc_restrict buf, size_t buf
|
|||||||
|
|
||||||
/** \brief Stringify a bitmap into a newly allocated string.
|
/** \brief Stringify a bitmap into a newly allocated string.
|
||||||
*
|
*
|
||||||
* \return -1 on error.
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
|
HWLOC_DECLSPEC int hwloc_bitmap_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
|
||||||
|
|
||||||
/** \brief Parse a bitmap string and stores it in bitmap \p bitmap.
|
/** \brief Parse a bitmap string and stores it in bitmap \p bitmap.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
|
HWLOC_DECLSPEC int hwloc_bitmap_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
|
||||||
|
|
||||||
@ -144,11 +153,13 @@ HWLOC_DECLSPEC int hwloc_bitmap_list_snprintf(char * __hwloc_restrict buf, size_
|
|||||||
|
|
||||||
/** \brief Stringify a bitmap into a newly allocated list string.
|
/** \brief Stringify a bitmap into a newly allocated list string.
|
||||||
*
|
*
|
||||||
* \return -1 on error.
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_list_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
|
HWLOC_DECLSPEC int hwloc_bitmap_list_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
|
||||||
|
|
||||||
/** \brief Parse a list string and stores it in bitmap \p bitmap.
|
/** \brief Parse a list string and stores it in bitmap \p bitmap.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_list_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
|
HWLOC_DECLSPEC int hwloc_bitmap_list_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
|
||||||
|
|
||||||
@ -168,11 +179,13 @@ HWLOC_DECLSPEC int hwloc_bitmap_taskset_snprintf(char * __hwloc_restrict buf, si
|
|||||||
|
|
||||||
/** \brief Stringify a bitmap into a newly allocated taskset-specific string.
|
/** \brief Stringify a bitmap into a newly allocated taskset-specific string.
|
||||||
*
|
*
|
||||||
* \return -1 on error.
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_taskset_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
|
HWLOC_DECLSPEC int hwloc_bitmap_taskset_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
|
||||||
|
|
||||||
/** \brief Parse a taskset-specific bitmap string and stores it in bitmap \p bitmap.
|
/** \brief Parse a taskset-specific bitmap string and stores it in bitmap \p bitmap.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_taskset_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
|
HWLOC_DECLSPEC int hwloc_bitmap_taskset_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
|
||||||
|
|
||||||
@ -279,6 +292,7 @@ HWLOC_DECLSPEC int hwloc_bitmap_to_ulongs(hwloc_const_bitmap_t bitmap, unsigned
|
|||||||
* When called on the output of hwloc_topology_get_topology_cpuset(),
|
* When called on the output of hwloc_topology_get_topology_cpuset(),
|
||||||
* the returned number is large enough for all cpusets of the topology.
|
* the returned number is large enough for all cpusets of the topology.
|
||||||
*
|
*
|
||||||
|
* \return the number of unsigned longs required.
|
||||||
* \return -1 if \p bitmap is infinite.
|
* \return -1 if \p bitmap is infinite.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_nr_ulongs(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_nr_ulongs(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
||||||
@ -305,21 +319,23 @@ HWLOC_DECLSPEC int hwloc_bitmap_isfull(hwloc_const_bitmap_t bitmap) __hwloc_attr
|
|||||||
|
|
||||||
/** \brief Compute the first index (least significant bit) in bitmap \p bitmap
|
/** \brief Compute the first index (least significant bit) in bitmap \p bitmap
|
||||||
*
|
*
|
||||||
* \return -1 if no index is set in \p bitmap.
|
* \return the first index set in \p bitmap.
|
||||||
|
* \return -1 if \p bitmap is empty.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_first(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_first(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
||||||
|
|
||||||
/** \brief Compute the next index in bitmap \p bitmap which is after index \p prev
|
/** \brief Compute the next index in bitmap \p bitmap which is after index \p prev
|
||||||
*
|
*
|
||||||
* If \p prev is -1, the first index is returned.
|
* \return the first index set in \p bitmap if \p prev is \c -1.
|
||||||
*
|
* \return the next index set in \p bitmap if \p prev is not \c -1.
|
||||||
* \return -1 if no index with higher index is set in \p bitmap.
|
* \return -1 if no index with higher index is set in \p bitmap.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_next(hwloc_const_bitmap_t bitmap, int prev) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_next(hwloc_const_bitmap_t bitmap, int prev) __hwloc_attribute_pure;
|
||||||
|
|
||||||
/** \brief Compute the last index (most significant bit) in bitmap \p bitmap
|
/** \brief Compute the last index (most significant bit) in bitmap \p bitmap
|
||||||
*
|
*
|
||||||
* \return -1 if no index is set in \p bitmap, or if \p bitmap is infinitely set.
|
* \return the last index set in \p bitmap.
|
||||||
|
* \return -1 if \p bitmap is empty, or if \p bitmap is infinitely set.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_last(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_last(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
||||||
|
|
||||||
@ -327,28 +343,29 @@ HWLOC_DECLSPEC int hwloc_bitmap_last(hwloc_const_bitmap_t bitmap) __hwloc_attrib
|
|||||||
* indexes that are in the bitmap).
|
* indexes that are in the bitmap).
|
||||||
*
|
*
|
||||||
* \return the number of indexes that are in the bitmap.
|
* \return the number of indexes that are in the bitmap.
|
||||||
*
|
|
||||||
* \return -1 if \p bitmap is infinitely set.
|
* \return -1 if \p bitmap is infinitely set.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_weight(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_weight(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
||||||
|
|
||||||
/** \brief Compute the first unset index (least significant bit) in bitmap \p bitmap
|
/** \brief Compute the first unset index (least significant bit) in bitmap \p bitmap
|
||||||
*
|
*
|
||||||
* \return -1 if no index is unset in \p bitmap.
|
* \return the first unset index in \p bitmap.
|
||||||
|
* \return -1 if \p bitmap is full.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_first_unset(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_first_unset(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
||||||
|
|
||||||
/** \brief Compute the next unset index in bitmap \p bitmap which is after index \p prev
|
/** \brief Compute the next unset index in bitmap \p bitmap which is after index \p prev
|
||||||
*
|
*
|
||||||
* If \p prev is -1, the first unset index is returned.
|
* \return the first index unset in \p bitmap if \p prev is \c -1.
|
||||||
*
|
* \return the next index unset in \p bitmap if \p prev is not \c -1.
|
||||||
* \return -1 if no index with higher index is unset in \p bitmap.
|
* \return -1 if no index with higher index is unset in \p bitmap.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_next_unset(hwloc_const_bitmap_t bitmap, int prev) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_next_unset(hwloc_const_bitmap_t bitmap, int prev) __hwloc_attribute_pure;
|
||||||
|
|
||||||
/** \brief Compute the last unset index (most significant bit) in bitmap \p bitmap
|
/** \brief Compute the last unset index (most significant bit) in bitmap \p bitmap
|
||||||
*
|
*
|
||||||
* \return -1 if no index is unset in \p bitmap, or if \p bitmap is infinitely set.
|
* \return the last index unset in \p bitmap.
|
||||||
|
* \return -1 if \p bitmap is full, or if \p bitmap is not infinitely set.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_last_unset(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_last_unset(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
|
||||||
|
|
||||||
@ -428,6 +445,8 @@ HWLOC_DECLSPEC int hwloc_bitmap_not (hwloc_bitmap_t res, hwloc_const_bitmap_t bi
|
|||||||
/** \brief Test whether bitmaps \p bitmap1 and \p bitmap2 intersects.
|
/** \brief Test whether bitmaps \p bitmap1 and \p bitmap2 intersects.
|
||||||
*
|
*
|
||||||
* \return 1 if bitmaps intersect, 0 otherwise.
|
* \return 1 if bitmaps intersect, 0 otherwise.
|
||||||
|
*
|
||||||
|
* \note The empty bitmap does not intersect any other bitmap.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_bitmap_intersects (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
|
HWLOC_DECLSPEC int hwloc_bitmap_intersects (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
|
||||||
|
|
||||||
|
8
src/3rdparty/hwloc/include/hwloc/cuda.h
vendored
8
src/3rdparty/hwloc/include/hwloc/cuda.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2010-2021 Inria. All rights reserved.
|
* Copyright © 2010-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2010-2011 Université Bordeaux
|
* Copyright © 2010-2011 Université Bordeaux
|
||||||
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -42,6 +42,9 @@ extern "C" {
|
|||||||
/** \brief Return the domain, bus and device IDs of the CUDA device \p cudevice.
|
/** \brief Return the domain, bus and device IDs of the CUDA device \p cudevice.
|
||||||
*
|
*
|
||||||
* Device \p cudevice must match the local machine.
|
* Device \p cudevice must match the local machine.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cuda_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_cuda_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
@ -87,6 +90,9 @@ hwloc_cuda_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unused
|
|||||||
*
|
*
|
||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux; other systems will simply get a full cpuset.
|
* Linux; other systems will simply get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cuda_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_cuda_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
8
src/3rdparty/hwloc/include/hwloc/cudart.h
vendored
8
src/3rdparty/hwloc/include/hwloc/cudart.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2010-2021 Inria. All rights reserved.
|
* Copyright © 2010-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2010-2011 Université Bordeaux
|
* Copyright © 2010-2011 Université Bordeaux
|
||||||
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -43,6 +43,9 @@ extern "C" {
|
|||||||
/** \brief Return the domain, bus and device IDs of the CUDA device whose index is \p idx.
|
/** \brief Return the domain, bus and device IDs of the CUDA device whose index is \p idx.
|
||||||
*
|
*
|
||||||
* Device index \p idx must match the local machine.
|
* Device index \p idx must match the local machine.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cudart_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_cudart_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
@ -84,6 +87,9 @@ hwloc_cudart_get_device_pci_ids(hwloc_topology_t topology __hwloc_attribute_unus
|
|||||||
*
|
*
|
||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux; other systems will simply get a full cpuset.
|
* Linux; other systems will simply get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cudart_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_cudart_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
17
src/3rdparty/hwloc/include/hwloc/diff.h
vendored
17
src/3rdparty/hwloc/include/hwloc/diff.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013-2020 Inria. All rights reserved.
|
* Copyright © 2013-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -222,6 +222,8 @@ enum hwloc_topology_diff_apply_flags_e {
|
|||||||
HWLOC_DECLSPEC int hwloc_topology_diff_apply(hwloc_topology_t topology, hwloc_topology_diff_t diff, unsigned long flags);
|
HWLOC_DECLSPEC int hwloc_topology_diff_apply(hwloc_topology_t topology, hwloc_topology_diff_t diff, unsigned long flags);
|
||||||
|
|
||||||
/** \brief Destroy a list of topology differences.
|
/** \brief Destroy a list of topology differences.
|
||||||
|
*
|
||||||
|
* \return 0.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_topology_diff_destroy(hwloc_topology_diff_t diff);
|
HWLOC_DECLSPEC int hwloc_topology_diff_destroy(hwloc_topology_diff_t diff);
|
||||||
|
|
||||||
@ -233,6 +235,8 @@ HWLOC_DECLSPEC int hwloc_topology_diff_destroy(hwloc_topology_diff_t diff);
|
|||||||
* This identifier is usually the name of the other XML file
|
* This identifier is usually the name of the other XML file
|
||||||
* that contains the reference topology.
|
* that contains the reference topology.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note the pointer returned in refname should later be freed
|
* \note the pointer returned in refname should later be freed
|
||||||
* by the caller.
|
* by the caller.
|
||||||
*/
|
*/
|
||||||
@ -246,10 +250,17 @@ HWLOC_DECLSPEC int hwloc_topology_diff_load_xml(const char *xmlpath, hwloc_topol
|
|||||||
* This identifier is usually the name of the other XML file
|
* This identifier is usually the name of the other XML file
|
||||||
* that contains the reference topology.
|
* that contains the reference topology.
|
||||||
* This attribute is given back when reading the diff from XML.
|
* This attribute is given back when reading the diff from XML.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_topology_diff_export_xml(hwloc_topology_diff_t diff, const char *refname, const char *xmlpath);
|
HWLOC_DECLSPEC int hwloc_topology_diff_export_xml(hwloc_topology_diff_t diff, const char *refname, const char *xmlpath);
|
||||||
|
|
||||||
/** \brief Load a list of topology differences from a XML buffer.
|
/** \brief Load a list of topology differences from a XML buffer.
|
||||||
|
*
|
||||||
|
* Build a list of differences from the XML memory buffer given
|
||||||
|
* at \p xmlbuffer and of length \p buflen (including an ending \0).
|
||||||
|
* This buffer may have been filled earlier with
|
||||||
|
* hwloc_topology_diff_export_xmlbuffer().
|
||||||
*
|
*
|
||||||
* If not \c NULL, \p refname will be filled with the identifier
|
* If not \c NULL, \p refname will be filled with the identifier
|
||||||
* string of the reference topology for the difference file,
|
* string of the reference topology for the difference file,
|
||||||
@ -257,6 +268,8 @@ HWLOC_DECLSPEC int hwloc_topology_diff_export_xml(hwloc_topology_diff_t diff, co
|
|||||||
* This identifier is usually the name of the other XML file
|
* This identifier is usually the name of the other XML file
|
||||||
* that contains the reference topology.
|
* that contains the reference topology.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note the pointer returned in refname should later be freed
|
* \note the pointer returned in refname should later be freed
|
||||||
* by the caller.
|
* by the caller.
|
||||||
*/
|
*/
|
||||||
@ -274,6 +287,8 @@ HWLOC_DECLSPEC int hwloc_topology_diff_load_xmlbuffer(const char *xmlbuffer, int
|
|||||||
* The returned buffer ends with a \0 that is included in the returned
|
* The returned buffer ends with a \0 that is included in the returned
|
||||||
* length.
|
* length.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note The XML buffer should later be freed with hwloc_free_xmlbuffer().
|
* \note The XML buffer should later be freed with hwloc_free_xmlbuffer().
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_topology_diff_export_xmlbuffer(hwloc_topology_diff_t diff, const char *refname, char **xmlbuffer, int *buflen);
|
HWLOC_DECLSPEC int hwloc_topology_diff_export_xmlbuffer(hwloc_topology_diff_t diff, const char *refname, char **xmlbuffer, int *buflen);
|
||||||
|
37
src/3rdparty/hwloc/include/hwloc/distances.h
vendored
37
src/3rdparty/hwloc/include/hwloc/distances.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2010-2022 Inria. All rights reserved.
|
* Copyright © 2010-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -131,6 +131,8 @@ enum hwloc_distances_kind_e {
|
|||||||
*
|
*
|
||||||
* Each distance matrix returned in the \p distances array should be released
|
* Each distance matrix returned in the \p distances array should be released
|
||||||
* by the caller using hwloc_distances_release().
|
* by the caller using hwloc_distances_release().
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_distances_get(hwloc_topology_t topology,
|
hwloc_distances_get(hwloc_topology_t topology,
|
||||||
@ -140,6 +142,8 @@ hwloc_distances_get(hwloc_topology_t topology,
|
|||||||
/** \brief Retrieve distance matrices for object at a specific depth in the topology.
|
/** \brief Retrieve distance matrices for object at a specific depth in the topology.
|
||||||
*
|
*
|
||||||
* Identical to hwloc_distances_get() with the additional \p depth filter.
|
* Identical to hwloc_distances_get() with the additional \p depth filter.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_distances_get_by_depth(hwloc_topology_t topology, int depth,
|
hwloc_distances_get_by_depth(hwloc_topology_t topology, int depth,
|
||||||
@ -149,6 +153,8 @@ hwloc_distances_get_by_depth(hwloc_topology_t topology, int depth,
|
|||||||
/** \brief Retrieve distance matrices for object of a specific type.
|
/** \brief Retrieve distance matrices for object of a specific type.
|
||||||
*
|
*
|
||||||
* Identical to hwloc_distances_get() with the additional \p type filter.
|
* Identical to hwloc_distances_get() with the additional \p type filter.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_distances_get_by_type(hwloc_topology_t topology, hwloc_obj_type_t type,
|
hwloc_distances_get_by_type(hwloc_topology_t topology, hwloc_obj_type_t type,
|
||||||
@ -162,6 +168,8 @@ hwloc_distances_get_by_type(hwloc_topology_t topology, hwloc_obj_type_t type,
|
|||||||
* The name of the most common structure is "NUMALatency".
|
* The name of the most common structure is "NUMALatency".
|
||||||
* Others include "XGMIBandwidth", "XGMIHops", "XeLinkBandwidth",
|
* Others include "XGMIBandwidth", "XGMIHops", "XeLinkBandwidth",
|
||||||
* and "NVLinkBandwidth".
|
* and "NVLinkBandwidth".
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_distances_get_by_name(hwloc_topology_t topology, const char *name,
|
hwloc_distances_get_by_name(hwloc_topology_t topology, const char *name,
|
||||||
@ -171,7 +179,12 @@ hwloc_distances_get_by_name(hwloc_topology_t topology, const char *name,
|
|||||||
/** \brief Get a description of what a distances structure contains.
|
/** \brief Get a description of what a distances structure contains.
|
||||||
*
|
*
|
||||||
* For instance "NUMALatency" for hardware-provided NUMA distances (ACPI SLIT),
|
* For instance "NUMALatency" for hardware-provided NUMA distances (ACPI SLIT),
|
||||||
* or NULL if unknown.
|
* or \c NULL if unknown.
|
||||||
|
*
|
||||||
|
* \return the constant string with the name of the distance structure.
|
||||||
|
*
|
||||||
|
* \note The returned name should not be freed by the caller,
|
||||||
|
* it belongs to the hwloc library.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC const char *
|
HWLOC_DECLSPEC const char *
|
||||||
hwloc_distances_get_name(hwloc_topology_t topology, struct hwloc_distances_s *distances);
|
hwloc_distances_get_name(hwloc_topology_t topology, struct hwloc_distances_s *distances);
|
||||||
@ -252,6 +265,8 @@ enum hwloc_distances_transform_e {
|
|||||||
*
|
*
|
||||||
* \p flags must be \c 0 for now.
|
* \p flags must be \c 0 for now.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error for instance if flags are invalid.
|
||||||
|
*
|
||||||
* \note Objects in distances array \p objs may be directly modified
|
* \note Objects in distances array \p objs may be directly modified
|
||||||
* in place without using hwloc_distances_transform().
|
* in place without using hwloc_distances_transform().
|
||||||
* One may use hwloc_get_obj_with_same_locality() to easily convert
|
* One may use hwloc_get_obj_with_same_locality() to easily convert
|
||||||
@ -272,6 +287,7 @@ HWLOC_DECLSPEC int hwloc_distances_transform(hwloc_topology_t topology, struct h
|
|||||||
|
|
||||||
/** \brief Find the index of an object in a distances structure.
|
/** \brief Find the index of an object in a distances structure.
|
||||||
*
|
*
|
||||||
|
* \return the index of the object in the distances structure if any.
|
||||||
* \return -1 if object \p obj is not involved in structure \p distances.
|
* \return -1 if object \p obj is not involved in structure \p distances.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
@ -289,6 +305,7 @@ hwloc_distances_obj_index(struct hwloc_distances_s *distances, hwloc_obj_t obj)
|
|||||||
* The distance from \p obj1 to \p obj2 is stored in the value pointed by
|
* The distance from \p obj1 to \p obj2 is stored in the value pointed by
|
||||||
* \p value1to2 and reciprocally.
|
* \p value1to2 and reciprocally.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success.
|
||||||
* \return -1 if object \p obj1 or \p obj2 is not involved in structure \p distances.
|
* \return -1 if object \p obj1 or \p obj2 is not involved in structure \p distances.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
@ -374,8 +391,8 @@ hwloc_distances_add_create(hwloc_topology_t topology,
|
|||||||
*
|
*
|
||||||
* \p flags must be \c 0 for now.
|
* \p flags must be \c 0 for now.
|
||||||
*
|
*
|
||||||
* \return \c 0 on success.
|
* \return 0 on success.
|
||||||
* \return \c -1 on error.
|
* \return -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_distances_add_values(hwloc_topology_t topology,
|
HWLOC_DECLSPEC int hwloc_distances_add_values(hwloc_topology_t topology,
|
||||||
hwloc_distances_add_handle_t handle,
|
hwloc_distances_add_handle_t handle,
|
||||||
@ -411,8 +428,8 @@ enum hwloc_distances_add_flag_e {
|
|||||||
*
|
*
|
||||||
* On error, the temporary distances structure and its content are destroyed.
|
* On error, the temporary distances structure and its content are destroyed.
|
||||||
*
|
*
|
||||||
* \return \c 0 on success.
|
* \return 0 on success.
|
||||||
* \return \c -1 on error.
|
* \return -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_distances_add_commit(hwloc_topology_t topology,
|
HWLOC_DECLSPEC int hwloc_distances_add_commit(hwloc_topology_t topology,
|
||||||
hwloc_distances_add_handle_t handle,
|
hwloc_distances_add_handle_t handle,
|
||||||
@ -433,18 +450,24 @@ HWLOC_DECLSPEC int hwloc_distances_add_commit(hwloc_topology_t topology,
|
|||||||
*
|
*
|
||||||
* If these distances were used to group objects, these additional
|
* If these distances were used to group objects, these additional
|
||||||
* Group objects are not removed from the topology.
|
* Group objects are not removed from the topology.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_distances_remove(hwloc_topology_t topology);
|
HWLOC_DECLSPEC int hwloc_distances_remove(hwloc_topology_t topology);
|
||||||
|
|
||||||
/** \brief Remove distance matrices for objects at a specific depth in the topology.
|
/** \brief Remove distance matrices for objects at a specific depth in the topology.
|
||||||
*
|
*
|
||||||
* Identical to hwloc_distances_remove() but only applies to one level of the topology.
|
* Identical to hwloc_distances_remove() but only applies to one level of the topology.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_distances_remove_by_depth(hwloc_topology_t topology, int depth);
|
HWLOC_DECLSPEC int hwloc_distances_remove_by_depth(hwloc_topology_t topology, int depth);
|
||||||
|
|
||||||
/** \brief Remove distance matrices for objects of a specific type in the topology.
|
/** \brief Remove distance matrices for objects of a specific type in the topology.
|
||||||
*
|
*
|
||||||
* Identical to hwloc_distances_remove() but only applies to one level of the topology.
|
* Identical to hwloc_distances_remove() but only applies to one level of the topology.
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_distances_remove_by_type(hwloc_topology_t topology, hwloc_obj_type_t type)
|
hwloc_distances_remove_by_type(hwloc_topology_t topology, hwloc_obj_type_t type)
|
||||||
@ -458,6 +481,8 @@ hwloc_distances_remove_by_type(hwloc_topology_t topology, hwloc_obj_type_t type)
|
|||||||
/** \brief Release and remove the given distance matrice from the topology.
|
/** \brief Release and remove the given distance matrice from the topology.
|
||||||
*
|
*
|
||||||
* This function includes a call to hwloc_distances_release().
|
* This function includes a call to hwloc_distances_release().
|
||||||
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_distances_release_remove(hwloc_topology_t topology, struct hwloc_distances_s *distances);
|
HWLOC_DECLSPEC int hwloc_distances_release_remove(hwloc_topology_t topology, struct hwloc_distances_s *distances);
|
||||||
|
|
||||||
|
16
src/3rdparty/hwloc/include/hwloc/export.h
vendored
16
src/3rdparty/hwloc/include/hwloc/export.h
vendored
@ -55,7 +55,7 @@ enum hwloc_topology_export_xml_flags_e {
|
|||||||
*
|
*
|
||||||
* \p flags is a OR'ed set of ::hwloc_topology_export_xml_flags_e.
|
* \p flags is a OR'ed set of ::hwloc_topology_export_xml_flags_e.
|
||||||
*
|
*
|
||||||
* \return -1 if a failure occured.
|
* \return 0 on success, or -1 on error.
|
||||||
*
|
*
|
||||||
* \note See also hwloc_topology_set_userdata_export_callback()
|
* \note See also hwloc_topology_set_userdata_export_callback()
|
||||||
* for exporting application-specific object userdata.
|
* for exporting application-specific object userdata.
|
||||||
@ -91,7 +91,7 @@ HWLOC_DECLSPEC int hwloc_topology_export_xml(hwloc_topology_t topology, const ch
|
|||||||
*
|
*
|
||||||
* \p flags is a OR'ed set of ::hwloc_topology_export_xml_flags_e.
|
* \p flags is a OR'ed set of ::hwloc_topology_export_xml_flags_e.
|
||||||
*
|
*
|
||||||
* \return -1 if a failure occured.
|
* \return 0 on success, or -1 on error.
|
||||||
*
|
*
|
||||||
* \note See also hwloc_topology_set_userdata_export_callback()
|
* \note See also hwloc_topology_set_userdata_export_callback()
|
||||||
* for exporting application-specific object userdata.
|
* for exporting application-specific object userdata.
|
||||||
@ -145,13 +145,15 @@ HWLOC_DECLSPEC void hwloc_topology_set_userdata_export_callback(hwloc_topology_t
|
|||||||
* that were given to the export callback.
|
* that were given to the export callback.
|
||||||
*
|
*
|
||||||
* Only printable characters may be exported to XML string attributes.
|
* Only printable characters may be exported to XML string attributes.
|
||||||
* If a non-printable character is passed in \p name or \p buffer,
|
|
||||||
* the function returns -1 with errno set to EINVAL.
|
|
||||||
*
|
*
|
||||||
* If exporting binary data, the application should first encode into
|
* If exporting binary data, the application should first encode into
|
||||||
* printable characters only (or use hwloc_export_obj_userdata_base64()).
|
* printable characters only (or use hwloc_export_obj_userdata_base64()).
|
||||||
* It should also take care of portability issues if the export may
|
* It should also take care of portability issues if the export may
|
||||||
* be reimported on a different architecture.
|
* be reimported on a different architecture.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EINVAL if a non-printable character is
|
||||||
|
* passed in \p name or \b buffer.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_export_obj_userdata(void *reserved, hwloc_topology_t topology, hwloc_obj_t obj, const char *name, const void *buffer, size_t length);
|
HWLOC_DECLSPEC int hwloc_export_obj_userdata(void *reserved, hwloc_topology_t topology, hwloc_obj_t obj, const char *name, const void *buffer, size_t length);
|
||||||
|
|
||||||
@ -165,8 +167,14 @@ HWLOC_DECLSPEC int hwloc_export_obj_userdata(void *reserved, hwloc_topology_t to
|
|||||||
* This function may only be called from within the export() callback passed
|
* This function may only be called from within the export() callback passed
|
||||||
* to hwloc_topology_set_userdata_export_callback().
|
* to hwloc_topology_set_userdata_export_callback().
|
||||||
*
|
*
|
||||||
|
* The name must be made of printable characters for export to XML string attributes.
|
||||||
|
*
|
||||||
* The function does not take care of portability issues if the export
|
* The function does not take care of portability issues if the export
|
||||||
* may be reimported on a different architecture.
|
* may be reimported on a different architecture.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EINVAL if a non-printable character is
|
||||||
|
* passed in \p name.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_export_obj_userdata_base64(void *reserved, hwloc_topology_t topology, hwloc_obj_t obj, const char *name, const void *buffer, size_t length);
|
HWLOC_DECLSPEC int hwloc_export_obj_userdata_base64(void *reserved, hwloc_topology_t topology, hwloc_obj_t obj, const char *name, const void *buffer, size_t length);
|
||||||
|
|
||||||
|
5
src/3rdparty/hwloc/include/hwloc/gl.h
vendored
5
src/3rdparty/hwloc/include/hwloc/gl.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2012 Blue Brain Project, EPFL. All rights reserved.
|
* Copyright © 2012 Blue Brain Project, EPFL. All rights reserved.
|
||||||
* Copyright © 2012-2021 Inria. All rights reserved.
|
* Copyright © 2012-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -102,7 +102,8 @@ hwloc_gl_get_display_osdev_by_name(hwloc_topology_t topology,
|
|||||||
* Retrieves the OpenGL display port (server) in \p port and device (screen)
|
* Retrieves the OpenGL display port (server) in \p port and device (screen)
|
||||||
* in \p screen that correspond to the given hwloc OS device object.
|
* in \p screen that correspond to the given hwloc OS device object.
|
||||||
*
|
*
|
||||||
* \return \c -1 if none could be found.
|
* \return 0 on success.
|
||||||
|
* \return -1 if none could be found.
|
||||||
*
|
*
|
||||||
* The topology \p topology does not necessarily have to match the current
|
* The topology \p topology does not necessarily have to match the current
|
||||||
* machine. For instance the topology may be an XML import of a remote host.
|
* machine. For instance the topology may be an XML import of a remote host.
|
||||||
|
13
src/3rdparty/hwloc/include/hwloc/glibc-sched.h
vendored
13
src/3rdparty/hwloc/include/hwloc/glibc-sched.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2020 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2011 Université Bordeaux
|
* Copyright © 2009-2011 Université Bordeaux
|
||||||
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2011 Cisco Systems, Inc. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -52,6 +52,8 @@ extern "C" {
|
|||||||
* that takes a cpu_set_t as input parameter.
|
* that takes a cpu_set_t as input parameter.
|
||||||
*
|
*
|
||||||
* \p schedsetsize should be sizeof(cpu_set_t) unless \p schedset was dynamically allocated with CPU_ALLOC
|
* \p schedsetsize should be sizeof(cpu_set_t) unless \p schedset was dynamically allocated with CPU_ALLOC
|
||||||
|
*
|
||||||
|
* \return 0.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cpuset_to_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t hwlocset,
|
hwloc_cpuset_to_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t hwlocset,
|
||||||
@ -80,6 +82,9 @@ hwloc_cpuset_to_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribute
|
|||||||
* that takes a cpu_set_t as input parameter.
|
* that takes a cpu_set_t as input parameter.
|
||||||
*
|
*
|
||||||
* \p schedsetsize should be sizeof(cpu_set_t) unless \p schedset was dynamically allocated with CPU_ALLOC
|
* \p schedsetsize should be sizeof(cpu_set_t) unless \p schedset was dynamically allocated with CPU_ALLOC
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c ENOMEM if some internal reallocation failed.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cpuset_from_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t hwlocset,
|
hwloc_cpuset_from_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t hwlocset,
|
||||||
@ -95,7 +100,8 @@ hwloc_cpuset_from_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribu
|
|||||||
cpu = 0;
|
cpu = 0;
|
||||||
while (count) {
|
while (count) {
|
||||||
if (CPU_ISSET_S(cpu, schedsetsize, schedset)) {
|
if (CPU_ISSET_S(cpu, schedsetsize, schedset)) {
|
||||||
hwloc_bitmap_set(hwlocset, cpu);
|
if (hwloc_bitmap_set(hwlocset, cpu) < 0)
|
||||||
|
return -1;
|
||||||
count--;
|
count--;
|
||||||
}
|
}
|
||||||
cpu++;
|
cpu++;
|
||||||
@ -107,7 +113,8 @@ hwloc_cpuset_from_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribu
|
|||||||
assert(schedsetsize == sizeof(cpu_set_t));
|
assert(schedsetsize == sizeof(cpu_set_t));
|
||||||
for(cpu=0; cpu<CPU_SETSIZE; cpu++)
|
for(cpu=0; cpu<CPU_SETSIZE; cpu++)
|
||||||
if (CPU_ISSET(cpu, schedset))
|
if (CPU_ISSET(cpu, schedset))
|
||||||
hwloc_bitmap_set(hwlocset, cpu);
|
if (hwloc_bitmap_set(hwlocset, cpu) < 0)
|
||||||
|
return -1;
|
||||||
#endif /* !CPU_ZERO_S */
|
#endif /* !CPU_ZERO_S */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
1039
src/3rdparty/hwloc/include/hwloc/helper.h
vendored
1039
src/3rdparty/hwloc/include/hwloc/helper.h
vendored
File diff suppressed because it is too large
Load Diff
10
src/3rdparty/hwloc/include/hwloc/levelzero.h
vendored
10
src/3rdparty/hwloc/include/hwloc/levelzero.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2021 Inria. All rights reserved.
|
* Copyright © 2021-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -44,8 +44,9 @@ extern "C" {
|
|||||||
* the Level Zero device \p device.
|
* the Level Zero device \p device.
|
||||||
*
|
*
|
||||||
* Topology \p topology and device \p device must match the local machine.
|
* Topology \p topology and device \p device must match the local machine.
|
||||||
* The Level Zero must have been initialized with Sysman enabled
|
* The Level Zero library must have been initialized with Sysman enabled
|
||||||
* (ZES_ENABLE_SYSMAN=1 in the environment).
|
* (by calling zesInit(0) if supported,
|
||||||
|
* or by setting ZES_ENABLE_SYSMAN=1 in the environment).
|
||||||
* I/O devices detection and the Level Zero component are not needed in the
|
* I/O devices detection and the Level Zero component are not needed in the
|
||||||
* topology.
|
* topology.
|
||||||
*
|
*
|
||||||
@ -55,6 +56,9 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux; other systems will simply get a full cpuset.
|
* Linux; other systems will simply get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_levelzero_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_levelzero_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
34
src/3rdparty/hwloc/include/hwloc/linux-libnuma.h
vendored
34
src/3rdparty/hwloc/include/hwloc/linux-libnuma.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2017 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2010, 2012 Université Bordeaux
|
* Copyright © 2009-2010, 2012 Université Bordeaux
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
@ -50,6 +50,8 @@ extern "C" {
|
|||||||
* This function may be used before calling set_mempolicy, mbind, migrate_pages
|
* This function may be used before calling set_mempolicy, mbind, migrate_pages
|
||||||
* or any other function that takes an array of unsigned long and a maximal
|
* or any other function that takes an array of unsigned long and a maximal
|
||||||
* node number as input parameter.
|
* node number as input parameter.
|
||||||
|
*
|
||||||
|
* \return 0.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cpuset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset,
|
hwloc_cpuset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset,
|
||||||
@ -84,6 +86,8 @@ hwloc_cpuset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_cpus
|
|||||||
* This function may be used before calling set_mempolicy, mbind, migrate_pages
|
* This function may be used before calling set_mempolicy, mbind, migrate_pages
|
||||||
* or any other function that takes an array of unsigned long and a maximal
|
* or any other function that takes an array of unsigned long and a maximal
|
||||||
* node number as input parameter.
|
* node number as input parameter.
|
||||||
|
*
|
||||||
|
* \return 0.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_nodeset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset,
|
hwloc_nodeset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset,
|
||||||
@ -119,6 +123,9 @@ hwloc_nodeset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_nod
|
|||||||
* This function may be used after calling get_mempolicy or any other function
|
* This function may be used after calling get_mempolicy or any other function
|
||||||
* that takes an array of unsigned long as output parameter (and possibly
|
* that takes an array of unsigned long as output parameter (and possibly
|
||||||
* a maximal node number as input parameter).
|
* a maximal node number as input parameter).
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if failing an internal reallocation.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cpuset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
|
hwloc_cpuset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
|
||||||
@ -130,7 +137,8 @@ hwloc_cpuset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_cpuset_t
|
|||||||
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
||||||
if (node->os_index < maxnode
|
if (node->os_index < maxnode
|
||||||
&& (mask[node->os_index/sizeof(*mask)/8] & (1UL << (node->os_index % (sizeof(*mask)*8)))))
|
&& (mask[node->os_index/sizeof(*mask)/8] & (1UL << (node->os_index % (sizeof(*mask)*8)))))
|
||||||
hwloc_bitmap_or(cpuset, cpuset, node->cpuset);
|
if (hwloc_bitmap_or(cpuset, cpuset, node->cpuset) < 0)
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,6 +150,9 @@ hwloc_cpuset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_cpuset_t
|
|||||||
* This function may be used after calling get_mempolicy or any other function
|
* This function may be used after calling get_mempolicy or any other function
|
||||||
* that takes an array of unsigned long as output parameter (and possibly
|
* that takes an array of unsigned long as output parameter (and possibly
|
||||||
* a maximal node number as input parameter).
|
* a maximal node number as input parameter).
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c ENOMEM if some internal reallocation failed.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_nodeset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
|
hwloc_nodeset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
|
||||||
@ -153,7 +164,8 @@ hwloc_nodeset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_nodeset
|
|||||||
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
||||||
if (node->os_index < maxnode
|
if (node->os_index < maxnode
|
||||||
&& (mask[node->os_index/sizeof(*mask)/8] & (1UL << (node->os_index % (sizeof(*mask)*8)))))
|
&& (mask[node->os_index/sizeof(*mask)/8] & (1UL << (node->os_index % (sizeof(*mask)*8)))))
|
||||||
hwloc_bitmap_set(nodeset, node->os_index);
|
if (hwloc_bitmap_set(nodeset, node->os_index) < 0)
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +196,7 @@ hwloc_nodeset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_nodeset
|
|||||||
* This function may be used before calling many numa_ functions
|
* This function may be used before calling many numa_ functions
|
||||||
* that use a struct bitmask as an input parameter.
|
* that use a struct bitmask as an input parameter.
|
||||||
*
|
*
|
||||||
* \return newly allocated struct bitmask.
|
* \return newly allocated struct bitmask, or \c NULL on error.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline struct bitmask *
|
static __hwloc_inline struct bitmask *
|
||||||
hwloc_cpuset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset) __hwloc_attribute_malloc;
|
hwloc_cpuset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset) __hwloc_attribute_malloc;
|
||||||
@ -209,7 +221,7 @@ hwloc_cpuset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_cpu
|
|||||||
* This function may be used before calling many numa_ functions
|
* This function may be used before calling many numa_ functions
|
||||||
* that use a struct bitmask as an input parameter.
|
* that use a struct bitmask as an input parameter.
|
||||||
*
|
*
|
||||||
* \return newly allocated struct bitmask.
|
* \return newly allocated struct bitmask, or \c NULL on error.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline struct bitmask *
|
static __hwloc_inline struct bitmask *
|
||||||
hwloc_nodeset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset) __hwloc_attribute_malloc;
|
hwloc_nodeset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset) __hwloc_attribute_malloc;
|
||||||
@ -231,6 +243,9 @@ hwloc_nodeset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_no
|
|||||||
*
|
*
|
||||||
* This function may be used after calling many numa_ functions
|
* This function may be used after calling many numa_ functions
|
||||||
* that use a struct bitmask as an output parameter.
|
* that use a struct bitmask as an output parameter.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c ENOMEM if some internal reallocation failed.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_cpuset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
|
hwloc_cpuset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
|
||||||
@ -241,7 +256,8 @@ hwloc_cpuset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_cpuset_
|
|||||||
hwloc_bitmap_zero(cpuset);
|
hwloc_bitmap_zero(cpuset);
|
||||||
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
||||||
if (numa_bitmask_isbitset(bitmask, node->os_index))
|
if (numa_bitmask_isbitset(bitmask, node->os_index))
|
||||||
hwloc_bitmap_or(cpuset, cpuset, node->cpuset);
|
if (hwloc_bitmap_or(cpuset, cpuset, node->cpuset) < 0)
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,6 +265,9 @@ hwloc_cpuset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_cpuset_
|
|||||||
*
|
*
|
||||||
* This function may be used after calling many numa_ functions
|
* This function may be used after calling many numa_ functions
|
||||||
* that use a struct bitmask as an output parameter.
|
* that use a struct bitmask as an output parameter.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c ENOMEM if some internal reallocation failed.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_nodeset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
|
hwloc_nodeset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
|
||||||
@ -259,7 +278,8 @@ hwloc_nodeset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_nodese
|
|||||||
hwloc_bitmap_zero(nodeset);
|
hwloc_bitmap_zero(nodeset);
|
||||||
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
while ((node = hwloc_get_next_obj_by_depth(topology, depth, node)) != NULL)
|
||||||
if (numa_bitmask_isbitset(bitmask, node->os_index))
|
if (numa_bitmask_isbitset(bitmask, node->os_index))
|
||||||
hwloc_bitmap_set(nodeset, node->os_index);
|
if (hwloc_bitmap_set(nodeset, node->os_index) < 0)
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
src/3rdparty/hwloc/include/hwloc/linux.h
vendored
10
src/3rdparty/hwloc/include/hwloc/linux.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2021 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2011 Université Bordeaux
|
* Copyright © 2009-2011 Université Bordeaux
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
@ -38,6 +38,8 @@ extern "C" {
|
|||||||
* The behavior is exactly the same as the Linux sched_setaffinity system call,
|
* The behavior is exactly the same as the Linux sched_setaffinity system call,
|
||||||
* but uses a hwloc cpuset.
|
* but uses a hwloc cpuset.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note This is equivalent to calling hwloc_set_proc_cpubind() with
|
* \note This is equivalent to calling hwloc_set_proc_cpubind() with
|
||||||
* HWLOC_CPUBIND_THREAD as flags.
|
* HWLOC_CPUBIND_THREAD as flags.
|
||||||
*/
|
*/
|
||||||
@ -52,6 +54,8 @@ HWLOC_DECLSPEC int hwloc_linux_set_tid_cpubind(hwloc_topology_t topology, pid_t
|
|||||||
* The behavior is exactly the same as the Linux sched_getaffinity system call,
|
* The behavior is exactly the same as the Linux sched_getaffinity system call,
|
||||||
* but uses a hwloc cpuset.
|
* but uses a hwloc cpuset.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note This is equivalent to calling hwloc_get_proc_cpubind() with
|
* \note This is equivalent to calling hwloc_get_proc_cpubind() with
|
||||||
* ::HWLOC_CPUBIND_THREAD as flags.
|
* ::HWLOC_CPUBIND_THREAD as flags.
|
||||||
*/
|
*/
|
||||||
@ -62,6 +66,8 @@ HWLOC_DECLSPEC int hwloc_linux_get_tid_cpubind(hwloc_topology_t topology, pid_t
|
|||||||
* The CPU-set \p set (previously allocated by the caller)
|
* The CPU-set \p set (previously allocated by the caller)
|
||||||
* is filled with the PU which the thread last ran on.
|
* is filled with the PU which the thread last ran on.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note This is equivalent to calling hwloc_get_proc_last_cpu_location() with
|
* \note This is equivalent to calling hwloc_get_proc_last_cpu_location() with
|
||||||
* ::HWLOC_CPUBIND_THREAD as flags.
|
* ::HWLOC_CPUBIND_THREAD as flags.
|
||||||
*/
|
*/
|
||||||
@ -72,6 +78,8 @@ HWLOC_DECLSPEC int hwloc_linux_get_tid_last_cpu_location(hwloc_topology_t topolo
|
|||||||
* Might be used when reading CPU set from sysfs attributes such as topology
|
* Might be used when reading CPU set from sysfs attributes such as topology
|
||||||
* and caches for processors, or local_cpus for devices.
|
* and caches for processors, or local_cpus for devices.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success, -1 on error.
|
||||||
|
*
|
||||||
* \note This function ignores the HWLOC_FSROOT environment variable.
|
* \note This function ignores the HWLOC_FSROOT environment variable.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_linux_read_path_as_cpumask(const char *path, hwloc_bitmap_t set);
|
HWLOC_DECLSPEC int hwloc_linux_read_path_as_cpumask(const char *path, hwloc_bitmap_t set);
|
||||||
|
44
src/3rdparty/hwloc/include/hwloc/memattrs.h
vendored
44
src/3rdparty/hwloc/include/hwloc/memattrs.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2019-2022 Inria. All rights reserved.
|
* Copyright © 2019-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -54,6 +54,10 @@ extern "C" {
|
|||||||
* Attribute values for these nodes, if any, may then be obtained with
|
* Attribute values for these nodes, if any, may then be obtained with
|
||||||
* hwloc_memattr_get_value() and manually compared with the desired criteria.
|
* hwloc_memattr_get_value() and manually compared with the desired criteria.
|
||||||
*
|
*
|
||||||
|
* Memory attributes are also used internally to build Memory Tiers which provide
|
||||||
|
* an easy way to distinguish NUMA nodes of different kinds, as explained
|
||||||
|
* in \ref heteromem.
|
||||||
|
*
|
||||||
* \sa An example is available in doc/examples/memory-attributes.c in the source tree.
|
* \sa An example is available in doc/examples/memory-attributes.c in the source tree.
|
||||||
*
|
*
|
||||||
* \note The API also supports specific objects as initiator,
|
* \note The API also supports specific objects as initiator,
|
||||||
@ -178,6 +182,9 @@ enum hwloc_memattr_id_e {
|
|||||||
typedef unsigned hwloc_memattr_id_t;
|
typedef unsigned hwloc_memattr_id_t;
|
||||||
|
|
||||||
/** \brief Return the identifier of the memory attribute with the given name.
|
/** \brief Return the identifier of the memory attribute with the given name.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EINVAL if no such attribute exists.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_memattr_get_by_name(hwloc_topology_t topology,
|
hwloc_memattr_get_by_name(hwloc_topology_t topology,
|
||||||
@ -247,6 +254,8 @@ enum hwloc_local_numanode_flag_e {
|
|||||||
* or the number of nodes that would have been stored if there were
|
* or the number of nodes that would have been stored if there were
|
||||||
* enough room.
|
* enough room.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success or -1 on error.
|
||||||
|
*
|
||||||
* \note Some of these NUMA nodes may not have any memory attribute
|
* \note Some of these NUMA nodes may not have any memory attribute
|
||||||
* values and hence not be reported as actual targets in other functions.
|
* values and hence not be reported as actual targets in other functions.
|
||||||
*
|
*
|
||||||
@ -276,6 +285,10 @@ hwloc_get_local_numanode_objs(hwloc_topology_t topology,
|
|||||||
*
|
*
|
||||||
* \p flags must be \c 0 for now.
|
* \p flags must be \c 0 for now.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance with errno set to \c EINVAL if flags
|
||||||
|
* are invalid or no such attribute exists.
|
||||||
|
*
|
||||||
* \note The initiator \p initiator should be of type ::HWLOC_LOCATION_TYPE_CPUSET
|
* \note The initiator \p initiator should be of type ::HWLOC_LOCATION_TYPE_CPUSET
|
||||||
* when refering to accesses performed by CPU cores.
|
* when refering to accesses performed by CPU cores.
|
||||||
* ::HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by hwloc,
|
* ::HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by hwloc,
|
||||||
@ -307,7 +320,10 @@ hwloc_memattr_get_value(hwloc_topology_t topology,
|
|||||||
*
|
*
|
||||||
* \p flags must be \c 0 for now.
|
* \p flags must be \c 0 for now.
|
||||||
*
|
*
|
||||||
* If there are no matching targets, \c -1 is returned with \p errno set to \c ENOENT;
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c ENOENT if there are no matching targets.
|
||||||
|
* \return -1 with errno set to \c EINVAL if flags are invalid,
|
||||||
|
* or no such attribute exists.
|
||||||
*
|
*
|
||||||
* \note The initiator \p initiator should be of type ::HWLOC_LOCATION_TYPE_CPUSET
|
* \note The initiator \p initiator should be of type ::HWLOC_LOCATION_TYPE_CPUSET
|
||||||
* when refering to accesses performed by CPU cores.
|
* when refering to accesses performed by CPU cores.
|
||||||
@ -323,10 +339,6 @@ hwloc_memattr_get_best_target(hwloc_topology_t topology,
|
|||||||
hwloc_obj_t *best_target, hwloc_uint64_t *value);
|
hwloc_obj_t *best_target, hwloc_uint64_t *value);
|
||||||
|
|
||||||
/** \brief Return the best initiator for the given attribute and target NUMA node.
|
/** \brief Return the best initiator for the given attribute and target NUMA node.
|
||||||
*
|
|
||||||
* If the attribute does not relate to a specific initiator
|
|
||||||
* (it does not have the flag ::HWLOC_MEMATTR_FLAG_NEED_INITIATOR),
|
|
||||||
* \c -1 is returned and \p errno is set to \c EINVAL.
|
|
||||||
*
|
*
|
||||||
* If \p value is non \c NULL, the corresponding value is returned there.
|
* If \p value is non \c NULL, the corresponding value is returned there.
|
||||||
*
|
*
|
||||||
@ -342,7 +354,10 @@ hwloc_memattr_get_best_target(hwloc_topology_t topology,
|
|||||||
*
|
*
|
||||||
* \p flags must be \c 0 for now.
|
* \p flags must be \c 0 for now.
|
||||||
*
|
*
|
||||||
* If there are no matching initiators, \c -1 is returned with \p errno set to \c ENOENT;
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c ENOENT if there are no matching initiators.
|
||||||
|
* \return -1 with errno set to \c EINVAL if the attribute does not relate to a specific initiator
|
||||||
|
* (it does not have the flag ::HWLOC_MEMATTR_FLAG_NEED_INITIATOR).
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_memattr_get_best_initiator(hwloc_topology_t topology,
|
hwloc_memattr_get_best_initiator(hwloc_topology_t topology,
|
||||||
@ -359,6 +374,9 @@ hwloc_memattr_get_best_initiator(hwloc_topology_t topology,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/** \brief Return the name of a memory attribute.
|
/** \brief Return the name of a memory attribute.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EINVAL if the attribute does not exist.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_memattr_get_name(hwloc_topology_t topology,
|
hwloc_memattr_get_name(hwloc_topology_t topology,
|
||||||
@ -368,6 +386,9 @@ hwloc_memattr_get_name(hwloc_topology_t topology,
|
|||||||
/** \brief Return the flags of the given attribute.
|
/** \brief Return the flags of the given attribute.
|
||||||
*
|
*
|
||||||
* Flags are a OR'ed set of ::hwloc_memattr_flag_e.
|
* Flags are a OR'ed set of ::hwloc_memattr_flag_e.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EINVAL if the attribute does not exist.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_memattr_get_flags(hwloc_topology_t topology,
|
hwloc_memattr_get_flags(hwloc_topology_t topology,
|
||||||
@ -397,6 +418,9 @@ enum hwloc_memattr_flag_e {
|
|||||||
* Add a specific memory attribute that is not defined in ::hwloc_memattr_id_e.
|
* Add a specific memory attribute that is not defined in ::hwloc_memattr_id_e.
|
||||||
* Flags are a OR'ed set of ::hwloc_memattr_flag_e. It must contain at least
|
* Flags are a OR'ed set of ::hwloc_memattr_flag_e. It must contain at least
|
||||||
* one of ::HWLOC_MEMATTR_FLAG_HIGHER_FIRST or ::HWLOC_MEMATTR_FLAG_LOWER_FIRST.
|
* one of ::HWLOC_MEMATTR_FLAG_HIGHER_FIRST or ::HWLOC_MEMATTR_FLAG_LOWER_FIRST.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EBUSY if another attribute already uses this name.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_memattr_register(hwloc_topology_t topology,
|
hwloc_memattr_register(hwloc_topology_t topology,
|
||||||
@ -421,6 +445,8 @@ hwloc_memattr_register(hwloc_topology_t topology,
|
|||||||
* ::HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by hwloc,
|
* ::HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by hwloc,
|
||||||
* but users may for instance use it to provide custom information about
|
* but users may for instance use it to provide custom information about
|
||||||
* host memory accesses performed by GPUs.
|
* host memory accesses performed by GPUs.
|
||||||
|
*
|
||||||
|
* \return 0 on success or -1 on error.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int
|
HWLOC_DECLSPEC int
|
||||||
hwloc_memattr_set_value(hwloc_topology_t topology,
|
hwloc_memattr_set_value(hwloc_topology_t topology,
|
||||||
@ -460,6 +486,8 @@ hwloc_memattr_set_value(hwloc_topology_t topology,
|
|||||||
* NUMA nodes with hwloc_get_local_numanode_objs() and then look at their attribute
|
* NUMA nodes with hwloc_get_local_numanode_objs() and then look at their attribute
|
||||||
* values.
|
* values.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success or -1 on error.
|
||||||
|
*
|
||||||
* \note The initiator \p initiator should be of type ::HWLOC_LOCATION_TYPE_CPUSET
|
* \note The initiator \p initiator should be of type ::HWLOC_LOCATION_TYPE_CPUSET
|
||||||
* when referring to accesses performed by CPU cores.
|
* when referring to accesses performed by CPU cores.
|
||||||
* ::HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by hwloc,
|
* ::HWLOC_LOCATION_TYPE_OBJECT is currently unused internally by hwloc,
|
||||||
@ -497,6 +525,8 @@ hwloc_memattr_get_targets(hwloc_topology_t topology,
|
|||||||
* (it does not have the flag ::HWLOC_MEMATTR_FLAG_NEED_INITIATOR),
|
* (it does not have the flag ::HWLOC_MEMATTR_FLAG_NEED_INITIATOR),
|
||||||
* no initiator is returned.
|
* no initiator is returned.
|
||||||
*
|
*
|
||||||
|
* \return 0 on success or -1 on error.
|
||||||
|
*
|
||||||
* \note This function is meant for tools and debugging (listing internal information)
|
* \note This function is meant for tools and debugging (listing internal information)
|
||||||
* rather than for application queries. Applications should rather select useful
|
* rather than for application queries. Applications should rather select useful
|
||||||
* NUMA nodes with hwloc_get_local_numanode_objs() and then look at their attribute
|
* NUMA nodes with hwloc_get_local_numanode_objs() and then look at their attribute
|
||||||
|
5
src/3rdparty/hwloc/include/hwloc/nvml.h
vendored
5
src/3rdparty/hwloc/include/hwloc/nvml.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2012-2021 Inria. All rights reserved.
|
* Copyright © 2012-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -51,6 +51,9 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux; other systems will simply get a full cpuset.
|
* Linux; other systems will simply get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_nvml_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_nvml_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
8
src/3rdparty/hwloc/include/hwloc/opencl.h
vendored
8
src/3rdparty/hwloc/include/hwloc/opencl.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2012-2021 Inria. All rights reserved.
|
* Copyright © 2012-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2013, 2018 Université Bordeaux. All right reserved.
|
* Copyright © 2013, 2018 Université Bordeaux. All right reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
@ -69,6 +69,9 @@ typedef union {
|
|||||||
/** \brief Return the domain, bus and device IDs of the OpenCL device \p device.
|
/** \brief Return the domain, bus and device IDs of the OpenCL device \p device.
|
||||||
*
|
*
|
||||||
* Device \p device must match the local machine.
|
* Device \p device must match the local machine.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_opencl_get_device_pci_busid(cl_device_id device,
|
hwloc_opencl_get_device_pci_busid(cl_device_id device,
|
||||||
@ -126,6 +129,9 @@ hwloc_opencl_get_device_pci_busid(cl_device_id device,
|
|||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux with the AMD or NVIDIA OpenCL implementation; other systems will simply
|
* Linux with the AMD or NVIDIA OpenCL implementation; other systems will simply
|
||||||
* get a full cpuset.
|
* get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if the device could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_opencl_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_opencl_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2021 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2010 Université Bordeaux
|
* Copyright © 2009-2010 Université Bordeaux
|
||||||
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -57,6 +57,9 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux; other systems will simply get a full cpuset.
|
* Linux; other systems will simply get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_ibv_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_ibv_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
2
src/3rdparty/hwloc/include/hwloc/plugins.h
vendored
2
src/3rdparty/hwloc/include/hwloc/plugins.h
vendored
@ -164,7 +164,7 @@ struct hwloc_disc_status {
|
|||||||
*/
|
*/
|
||||||
unsigned excluded_phases;
|
unsigned excluded_phases;
|
||||||
|
|
||||||
/** \brief OR'ed set of hwloc_disc_status_flag_e */
|
/** \brief OR'ed set of ::hwloc_disc_status_flag_e */
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
1
src/3rdparty/hwloc/include/hwloc/rename.h
vendored
1
src/3rdparty/hwloc/include/hwloc/rename.h
vendored
@ -176,6 +176,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define hwloc_topology_insert_misc_object HWLOC_NAME(topology_insert_misc_object)
|
#define hwloc_topology_insert_misc_object HWLOC_NAME(topology_insert_misc_object)
|
||||||
#define hwloc_topology_alloc_group_object HWLOC_NAME(topology_alloc_group_object)
|
#define hwloc_topology_alloc_group_object HWLOC_NAME(topology_alloc_group_object)
|
||||||
|
#define hwloc_topology_free_group_object HWLOC_NAME(topology_free_group_object)
|
||||||
#define hwloc_topology_insert_group_object HWLOC_NAME(topology_insert_group_object)
|
#define hwloc_topology_insert_group_object HWLOC_NAME(topology_insert_group_object)
|
||||||
#define hwloc_obj_add_other_obj_sets HWLOC_NAME(obj_add_other_obj_sets)
|
#define hwloc_obj_add_other_obj_sets HWLOC_NAME(obj_add_other_obj_sets)
|
||||||
#define hwloc_topology_refresh HWLOC_NAME(topology_refresh)
|
#define hwloc_topology_refresh HWLOC_NAME(topology_refresh)
|
||||||
|
5
src/3rdparty/hwloc/include/hwloc/rsmi.h
vendored
5
src/3rdparty/hwloc/include/hwloc/rsmi.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2012-2021 Inria. All rights reserved.
|
* Copyright © 2012-2023 Inria. All rights reserved.
|
||||||
* Copyright (c) 2020, Advanced Micro Devices, Inc. All rights reserved.
|
* Copyright (c) 2020, Advanced Micro Devices, Inc. All rights reserved.
|
||||||
* Written by Advanced Micro Devices,
|
* Written by Advanced Micro Devices,
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
@ -55,6 +55,9 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* This function is currently only implemented in a meaningful way for
|
* This function is currently only implemented in a meaningful way for
|
||||||
* Linux; other systems will simply get a full cpuset.
|
* Linux; other systems will simply get a full cpuset.
|
||||||
|
*
|
||||||
|
* \return 0 on success.
|
||||||
|
* \return -1 on error, for instance if device information could not be found.
|
||||||
*/
|
*/
|
||||||
static __hwloc_inline int
|
static __hwloc_inline int
|
||||||
hwloc_rsmi_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
hwloc_rsmi_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
|
||||||
|
17
src/3rdparty/hwloc/include/hwloc/shmem.h
vendored
17
src/3rdparty/hwloc/include/hwloc/shmem.h
vendored
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2013-2018 Inria. All rights reserved.
|
* Copyright © 2013-2023 Inria. All rights reserved.
|
||||||
* See COPYING in top-level directory.
|
* See COPYING in top-level directory.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -48,6 +48,8 @@ extern "C" {
|
|||||||
* This length (in bytes) must be used in hwloc_shmem_topology_write()
|
* This length (in bytes) must be used in hwloc_shmem_topology_write()
|
||||||
* and hwloc_shmem_topology_adopt() later.
|
* and hwloc_shmem_topology_adopt() later.
|
||||||
*
|
*
|
||||||
|
* \return the length, or -1 on error, for instance if flags are invalid.
|
||||||
|
*
|
||||||
* \note Flags \p flags are currently unused, must be 0.
|
* \note Flags \p flags are currently unused, must be 0.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_shmem_topology_get_length(hwloc_topology_t topology,
|
HWLOC_DECLSPEC int hwloc_shmem_topology_get_length(hwloc_topology_t topology,
|
||||||
@ -74,9 +76,10 @@ HWLOC_DECLSPEC int hwloc_shmem_topology_get_length(hwloc_topology_t topology,
|
|||||||
* is not. However the caller may also allocate it manually in shared memory
|
* is not. However the caller may also allocate it manually in shared memory
|
||||||
* to share it as well.
|
* to share it as well.
|
||||||
*
|
*
|
||||||
* \return -1 with errno set to EBUSY if the virtual memory mapping defined
|
* \return 0 on success.
|
||||||
|
* \return -1 with errno set to \c EBUSY if the virtual memory mapping defined
|
||||||
* by \p mmap_address and \p length isn't available in the process.
|
* by \p mmap_address and \p length isn't available in the process.
|
||||||
* \return -1 with errno set to EINVAL if \p fileoffset, \p mmap_address
|
* \return -1 with errno set to \c EINVAL if \p fileoffset, \p mmap_address
|
||||||
* or \p length aren't page-aligned.
|
* or \p length aren't page-aligned.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_shmem_topology_write(hwloc_topology_t topology,
|
HWLOC_DECLSPEC int hwloc_shmem_topology_write(hwloc_topology_t topology,
|
||||||
@ -112,14 +115,16 @@ HWLOC_DECLSPEC int hwloc_shmem_topology_write(hwloc_topology_t topology,
|
|||||||
*
|
*
|
||||||
* \note This function takes care of calling hwloc_topology_abi_check().
|
* \note This function takes care of calling hwloc_topology_abi_check().
|
||||||
*
|
*
|
||||||
* \return -1 with errno set to EBUSY if the virtual memory mapping defined
|
* \return 0 on success.
|
||||||
|
*
|
||||||
|
* \return -1 with errno set to \c EBUSY if the virtual memory mapping defined
|
||||||
* by \p mmap_address and \p length isn't available in the process.
|
* by \p mmap_address and \p length isn't available in the process.
|
||||||
*
|
*
|
||||||
* \return -1 with errno set to EINVAL if \p fileoffset, \p mmap_address
|
* \return -1 with errno set to \c EINVAL if \p fileoffset, \p mmap_address
|
||||||
* or \p length aren't page-aligned, or do not match what was given to
|
* or \p length aren't page-aligned, or do not match what was given to
|
||||||
* hwloc_shmem_topology_write() earlier.
|
* hwloc_shmem_topology_write() earlier.
|
||||||
*
|
*
|
||||||
* \return -1 with errno set to EINVAL if the layout of the topology structure
|
* \return -1 with errno set to \c EINVAL if the layout of the topology structure
|
||||||
* is different between the writer process and the adopter process.
|
* is different between the writer process and the adopter process.
|
||||||
*/
|
*/
|
||||||
HWLOC_DECLSPEC int hwloc_shmem_topology_adopt(hwloc_topology_t *topologyp,
|
HWLOC_DECLSPEC int hwloc_shmem_topology_adopt(hwloc_topology_t *topologyp,
|
||||||
|
578
src/3rdparty/hwloc/include/private/netloc.h
vendored
578
src/3rdparty/hwloc/include/private/netloc.h
vendored
File diff suppressed because it is too large
Load Diff
11
src/3rdparty/hwloc/include/private/private.h
vendored
11
src/3rdparty/hwloc/include/private/private.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2009 CNRS
|
* Copyright © 2009 CNRS
|
||||||
* Copyright © 2009-2022 Inria. All rights reserved.
|
* Copyright © 2009-2023 Inria. All rights reserved.
|
||||||
* Copyright © 2009-2012, 2020 Université Bordeaux
|
* Copyright © 2009-2012, 2020 Université Bordeaux
|
||||||
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
* Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
@ -245,6 +245,12 @@ struct hwloc_topology {
|
|||||||
* temporary variables during discovery
|
* temporary variables during discovery
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* set to 1 at the beginning of load() if the filter of any cpu cache type (L1 to L3i) is not NONE,
|
||||||
|
* may be checked by backends before querying caches
|
||||||
|
* (when they don't know the level of caches they are querying).
|
||||||
|
*/
|
||||||
|
int want_some_cpu_caches;
|
||||||
|
|
||||||
/* machine-wide memory.
|
/* machine-wide memory.
|
||||||
* temporarily stored there by OSes that only provide this without NUMA information,
|
* temporarily stored there by OSes that only provide this without NUMA information,
|
||||||
* and actually used later by the core.
|
* and actually used later by the core.
|
||||||
@ -420,7 +426,7 @@ extern void hwloc_internal_memattrs_need_refresh(hwloc_topology_t topology);
|
|||||||
extern void hwloc_internal_memattrs_refresh(hwloc_topology_t topology);
|
extern void hwloc_internal_memattrs_refresh(hwloc_topology_t topology);
|
||||||
extern int hwloc_internal_memattrs_dup(hwloc_topology_t new, hwloc_topology_t old);
|
extern int hwloc_internal_memattrs_dup(hwloc_topology_t new, hwloc_topology_t old);
|
||||||
extern int hwloc_internal_memattr_set_value(hwloc_topology_t topology, hwloc_memattr_id_t id, hwloc_obj_type_t target_type, hwloc_uint64_t target_gp_index, unsigned target_os_index, struct hwloc_internal_location_s *initiator, hwloc_uint64_t value);
|
extern int hwloc_internal_memattr_set_value(hwloc_topology_t topology, hwloc_memattr_id_t id, hwloc_obj_type_t target_type, hwloc_uint64_t target_gp_index, unsigned target_os_index, struct hwloc_internal_location_s *initiator, hwloc_uint64_t value);
|
||||||
extern int hwloc_internal_memattrs_guess_memory_tiers(hwloc_topology_t topology);
|
extern int hwloc_internal_memattrs_guess_memory_tiers(hwloc_topology_t topology, int force_subtype);
|
||||||
|
|
||||||
extern void hwloc_internal_cpukinds_init(hwloc_topology_t topology);
|
extern void hwloc_internal_cpukinds_init(hwloc_topology_t topology);
|
||||||
extern int hwloc_internal_cpukinds_rank(hwloc_topology_t topology);
|
extern int hwloc_internal_cpukinds_rank(hwloc_topology_t topology);
|
||||||
@ -477,6 +483,7 @@ extern char * hwloc_progname(struct hwloc_topology *topology);
|
|||||||
#define HWLOC_GROUP_KIND_INTEL_DIE 104 /* no subkind */
|
#define HWLOC_GROUP_KIND_INTEL_DIE 104 /* no subkind */
|
||||||
#define HWLOC_GROUP_KIND_S390_BOOK 110 /* subkind 0 is book, subkind 1 is drawer (group of books) */
|
#define HWLOC_GROUP_KIND_S390_BOOK 110 /* subkind 0 is book, subkind 1 is drawer (group of books) */
|
||||||
#define HWLOC_GROUP_KIND_AMD_COMPUTE_UNIT 120 /* no subkind */
|
#define HWLOC_GROUP_KIND_AMD_COMPUTE_UNIT 120 /* no subkind */
|
||||||
|
#define HWLOC_GROUP_KIND_AMD_COMPLEX 121 /* no subkind */
|
||||||
/* then, OS-specific groups */
|
/* then, OS-specific groups */
|
||||||
#define HWLOC_GROUP_KIND_SOLARIS_PG_HW_PERF 200 /* subkind is group width */
|
#define HWLOC_GROUP_KIND_SOLARIS_PG_HW_PERF 200 /* subkind is group width */
|
||||||
#define HWLOC_GROUP_KIND_AIX_SDL_UNKNOWN 210 /* subkind is SDL level */
|
#define HWLOC_GROUP_KIND_AIX_SDL_UNKNOWN 210 /* subkind is SDL level */
|
||||||
|
8
src/3rdparty/hwloc/include/private/xml.h
vendored
8
src/3rdparty/hwloc/include/private/xml.h
vendored
@ -19,13 +19,14 @@ HWLOC_DECLSPEC int hwloc__xml_verbose(void);
|
|||||||
typedef struct hwloc__xml_import_state_s {
|
typedef struct hwloc__xml_import_state_s {
|
||||||
struct hwloc__xml_import_state_s *parent;
|
struct hwloc__xml_import_state_s *parent;
|
||||||
|
|
||||||
/* globals shared because the entire stack of states during import */
|
/* globals shared between the entire stack of states during import */
|
||||||
struct hwloc_xml_backend_data_s *global;
|
struct hwloc_xml_backend_data_s *global;
|
||||||
|
|
||||||
/* opaque data used to store backend-specific data.
|
/* opaque data used to store backend-specific data.
|
||||||
* statically allocated to allow stack-allocation by the common code without knowing actual backend needs.
|
* statically allocated to allow stack-allocation by the common code without knowing actual backend needs.
|
||||||
|
* libxml is 3 ptrs. nolibxml is 3 ptr + one int.
|
||||||
*/
|
*/
|
||||||
char data[32];
|
char data[4 * SIZEOF_VOID_P];
|
||||||
} * hwloc__xml_import_state_t;
|
} * hwloc__xml_import_state_t;
|
||||||
|
|
||||||
struct hwloc__xml_imported_v1distances_s {
|
struct hwloc__xml_imported_v1distances_s {
|
||||||
@ -74,8 +75,9 @@ typedef struct hwloc__xml_export_state_s {
|
|||||||
|
|
||||||
/* opaque data used to store backend-specific data.
|
/* opaque data used to store backend-specific data.
|
||||||
* statically allocated to allow stack-allocation by the common code without knowing actual backend needs.
|
* statically allocated to allow stack-allocation by the common code without knowing actual backend needs.
|
||||||
|
* libxml is 1 ptr. nolibxml is 1 ptr + 2 size_t + 3 ints.
|
||||||
*/
|
*/
|
||||||
char data[40];
|
char data[6 * SIZEOF_VOID_P];
|
||||||
} * hwloc__xml_export_state_t;
|
} * hwloc__xml_export_state_t;
|
||||||
|
|
||||||
HWLOC_DECLSPEC void hwloc__xml_export_topology(hwloc__xml_export_state_t parentstate, hwloc_topology_t topology, unsigned long flags);
|
HWLOC_DECLSPEC void hwloc__xml_export_topology(hwloc__xml_export_state_t parentstate, hwloc_topology_t topology, unsigned long flags);
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user