Skip to content

Commit 05a5055

Browse files
committed
linux+API: Remove support for Intel Xeon Phi (MIC, Knights Corner) co-processors
Closes #368 Signed-off-by: Brice Goglin <[email protected]>
1 parent 7e9767c commit 05a5055

File tree

13 files changed

+9
-395
lines changed

13 files changed

+9
-395
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ test-suite.log
112112
/tests/hwloc/hwloc_iodevs
113113
/tests/hwloc/xmlbuffer
114114
/tests/hwloc/gl
115-
/tests/hwloc/intel-mic
116115
/tests/hwloc/linux-libnuma
117116
/tests/hwloc/glibc-sched
118117
/tests/hwloc/openfabrics-verbs

NEWS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ bug fixes (and other actions) for each version of hwloc since version
1616
0.9.
1717

1818

19+
Version 2.2.0
20+
-------------
21+
* Remove support for Intel Xeon Phi (MIC, Knights Corner) co-processors.
22+
23+
1924
Version 2.1.0
2025
-------------
2126
* API

doc/Makefile.am

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ dox_inputs = $(DOX_CONFIG) \
8080
$(hwloc_include_dir)/hwloc/cudart.h \
8181
$(hwloc_include_dir)/hwloc/nvml.h \
8282
$(hwloc_include_dir)/hwloc/gl.h \
83-
$(hwloc_include_dir)/hwloc/intel-mic.h \
8483
$(hwloc_include_dir)/hwloc/openfabrics-verbs.h \
8584
$(srcdir)/netloc.doxy \
8685
$(hwloc_include_dir)/netloc.h
@@ -716,10 +715,7 @@ man3_cuda_DATA = \
716715
$(DOX_MAN_DIR)/man3/hwlocality_gl.3 \
717716
$(DOX_MAN_DIR)/man3/hwloc_gl_get_display_osdev_by_port_device.3 \
718717
$(DOX_MAN_DIR)/man3/hwloc_gl_get_display_osdev_by_name.3 \
719-
$(DOX_MAN_DIR)/man3/hwloc_gl_get_display_by_osdev.3 \
720-
$(DOX_MAN_DIR)/man3/hwlocality_intel_mic.3 \
721-
$(DOX_MAN_DIR)/man3/hwloc_intel_mic_get_device_cpuset.3 \
722-
$(DOX_MAN_DIR)/man3/hwloc_intel_mic_get_device_osdev_by_index.3
718+
$(DOX_MAN_DIR)/man3/hwloc_gl_get_display_by_osdev.3
723719

724720
man3_glibc_scheddir = $(man3dir)
725721
man3_glibc_sched_DATA = \

doc/doxygen-config.cfg.in

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright © 2010-2017 Inria. All rights reserved.
1+
# Copyright © 2010-2019 Inria. All rights reserved.
22
# Copyright © 2009 Cisco Systems, Inc. All rights reserved.
33
# See COPYING in top-level directory.
44

@@ -23,7 +23,6 @@ INPUT = \
2323
@top_srcdir@/include/hwloc/cudart.h \
2424
@top_srcdir@/include/hwloc/nvml.h \
2525
@top_srcdir@/include/hwloc/gl.h \
26-
@top_srcdir@/include/hwloc/intel-mic.h \
2726
@top_srcdir@/include/hwloc/openfabrics-verbs.h \
2827
@top_srcdir@/include/hwloc/diff.h \
2928
@top_srcdir@/include/hwloc/shmem.h \

doc/hwloc.doxy

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1470,9 +1470,6 @@ components when I/O discovery is enabled and supported.
14701470
(OpenCL component)</li>
14711471
<li><em>cuda0</em> for the first NVIDIA CUDA device
14721472
(CUDA component, using the NVIDIA CUDA Library)</li>
1473-
<li><em>mic0</em> for the first Intel Xeon Phi (MIC) coprocessor
1474-
(Linux component)</li>
1475-
</ul>
14761473
</li>
14771474
<li>DMA engine channel (::HWLOC_OBJ_OSDEV_DMA)
14781475
<ul>
@@ -1888,23 +1885,6 @@ and SectorSize (in bytes).
18881885
and size of the shared memory in each multiprocessor of a CUDA device.
18891886
Sizes are in kB.
18901887
</dd>
1891-
<dt>MICSerialNumber (MIC coprocessor OS device)</dt>
1892-
<dd>
1893-
The serial number of an Intel Xeon Phi (MIC) coprocessor.
1894-
hwloc may run either inside the coprocessor itself, or on the host processor.
1895-
That attribute is set in both cases, so that the exact same coprocessor may be
1896-
identified from both point of views, even if there are multiple nodes with
1897-
multiple MICs.
1898-
When running hwloc on the host, each hwloc OS device object that
1899-
corresponds to a Xeon Phi gets such an attribute.
1900-
When running hwloc inside a Xeon Phi coprocessor, the root of the topology
1901-
(Machine object) gets this attribute.
1902-
</dd>
1903-
<dt>MICFamily, MICSKU, MICActiveCores, MICMemorySize (MIC coprocessor OS device)</dt>
1904-
<dd>The family, SKU (model),
1905-
number of active cores, and memory size (in kB)
1906-
of an Intel Xeon Phi (MIC) coprocessor.
1907-
</dd>
19081888
<dt>Address, Port (Network interface OS devices)</dt>
19091889
<dd>The MAC address and the port number of a software network
19101890
interface, such as <tt>eth4</tt> on Linux.
@@ -2301,14 +2281,6 @@ enabled for the current topology.
23012281
information (if I/O device discovery is enabled).
23022282
</dd>
23032283

2304-
<dt>Intel Xeon Phi (MIC)</dt>
2305-
<dd>
2306-
hwloc/intel-mic.h helps interoperability with Intel Xeon Phi (MIC)
2307-
coprocessors by returning the list of processors near these devices.
2308-
It may also return the corresponding OS device hwloc object for further
2309-
information (if I/O device discovery is enabled).
2310-
</dd>
2311-
23122284
<dt>OpenCL</dt>
23132285
<dd>
23142286
hwloc/opencl.h enables interoperability with the OpenCL interface.
@@ -3564,27 +3536,6 @@ See <tt>HWLOC_DUMPED_HWDATA_DIR</tt> in \ref envvar for details
35643536
about the location of dumped files.
35653537

35663538

3567-
\subsection faq_phi How do I build for Intel Xeon Phi coprocessor?
3568-
3569-
\note This section does not apply to standalone Intel Xeon Phi processors (Knights Landing and Knights Mill).
3570-
3571-
Intel Xeon Phi coprocessors (Knights Corner) usually runs a Linux environment
3572-
but cross-compiling from the host is required.
3573-
hwloc uses standard autotools options for cross-compiling.
3574-
3575-
If building with <tt>icc</tt>:
3576-
\verbatim
3577-
./configure CC="icc -mmic" --host=x86_64-k1om-linux --build=x86_64-unknown-linux-gnu
3578-
\endverbatim
3579-
3580-
If building with the Xeon Phi-specific GCC that comes with the MPSS environment,
3581-
for instance <tt>/usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc</tt>:
3582-
\verbatim
3583-
export PATH=$PATH:/usr/linux-k1om-4.7/bin/
3584-
./configure --host=x86_64-k1om-linux --build=x86_64-unknown-linux-gnu
3585-
\endverbatim
3586-
3587-
35883539
\subsection faq_bgq How do I build hwloc for BlueGene/Q?
35893540

35903541
IBM BlueGene/Q machines run a standard Linux on the login/frontend nodes

hwloc/topology-linux.c

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -5052,24 +5052,6 @@ hwloc_linux_free_cpuinfo(struct hwloc_linux_cpuinfo_proc * Lprocs, unsigned nump
50525052
****** Main Topology Discovery ******
50535053
*************************************/
50545054

5055-
static void
5056-
hwloc__linux_get_mic_sn(struct hwloc_topology *topology, struct hwloc_linux_backend_data_s *data)
5057-
{
5058-
char line[64], *tmp, *end;
5059-
if (hwloc_read_path_by_length("/proc/elog", line, sizeof(line), data->root_fd) < 0)
5060-
return;
5061-
if (strncmp(line, "Card ", 5))
5062-
return;
5063-
tmp = line + 5;
5064-
end = strchr(tmp, ':');
5065-
if (!end)
5066-
return;
5067-
*end = '\0';
5068-
5069-
if (tmp[0])
5070-
hwloc_obj_add_info(hwloc_get_root_obj(topology), "MICSerialNumber", tmp);
5071-
}
5072-
50735055
static void
50745056
hwloc_gather_system_info(struct hwloc_topology *topology,
50755057
struct hwloc_linux_backend_data_s *data)
@@ -5450,8 +5432,6 @@ hwloc_linuxfs_look_cpu(struct hwloc_backend *backend, struct hwloc_disc_status *
54505432
free(cpuset_name);
54515433
}
54525434

5453-
hwloc__linux_get_mic_sn(topology, data);
5454-
54555435
/* data->utsname was filled with real uname or \0, we can safely pass it */
54565436
hwloc_add_uname_info(topology, &data->utsname);
54575437

@@ -6136,95 +6116,6 @@ hwloc_linuxfs_lookup_infiniband_class(struct hwloc_backend *backend, unsigned os
61366116
return 0;
61376117
}
61386118

6139-
static void
6140-
hwloc_linuxfs_mic_class_fillinfos(int root_fd,
6141-
struct hwloc_obj *obj, const char *osdevpath)
6142-
{
6143-
char path[296]; /* osdevpath <= 256 */
6144-
char family[64];
6145-
char sku[64];
6146-
char sn[64];
6147-
char string[21];
6148-
6149-
obj->subtype = strdup("MIC");
6150-
6151-
snprintf(path, sizeof(path), "%s/family", osdevpath);
6152-
if (!hwloc_read_path_by_length(path, family, sizeof(family), root_fd)) {
6153-
char *eol = strchr(family, '\n');
6154-
if (eol)
6155-
*eol = 0;
6156-
hwloc_obj_add_info(obj, "MICFamily", family);
6157-
}
6158-
6159-
snprintf(path, sizeof(path), "%s/sku", osdevpath);
6160-
if (!hwloc_read_path_by_length(path, sku, sizeof(sku), root_fd)) {
6161-
char *eol = strchr(sku, '\n');
6162-
if (eol)
6163-
*eol = 0;
6164-
hwloc_obj_add_info(obj, "MICSKU", sku);
6165-
}
6166-
6167-
snprintf(path, sizeof(path), "%s/serialnumber", osdevpath);
6168-
if (!hwloc_read_path_by_length(path, sn, sizeof(sn), root_fd)) {
6169-
char *eol;
6170-
eol = strchr(sn, '\n');
6171-
if (eol)
6172-
*eol = 0;
6173-
hwloc_obj_add_info(obj, "MICSerialNumber", sn);
6174-
}
6175-
6176-
snprintf(path, sizeof(path), "%s/active_cores", osdevpath);
6177-
if (!hwloc_read_path_by_length(path, string, sizeof(string), root_fd)) {
6178-
unsigned long count = strtoul(string, NULL, 16);
6179-
snprintf(string, sizeof(string), "%lu", count);
6180-
hwloc_obj_add_info(obj, "MICActiveCores", string);
6181-
}
6182-
6183-
snprintf(path, sizeof(path), "%s/memsize", osdevpath);
6184-
if (!hwloc_read_path_by_length(path, string, sizeof(string), root_fd)) {
6185-
unsigned long count = strtoul(string, NULL, 16);
6186-
snprintf(string, sizeof(string), "%lu", count);
6187-
hwloc_obj_add_info(obj, "MICMemorySize", string);
6188-
}
6189-
}
6190-
6191-
static int
6192-
hwloc_linuxfs_lookup_mic_class(struct hwloc_backend *backend, unsigned osdev_flags)
6193-
{
6194-
struct hwloc_linux_backend_data_s *data = backend->private_data;
6195-
int root_fd = data->root_fd;
6196-
unsigned idx;
6197-
DIR *dir;
6198-
struct dirent *dirent;
6199-
6200-
dir = hwloc_opendir("/sys/class/mic", root_fd);
6201-
if (!dir)
6202-
return 0;
6203-
6204-
while ((dirent = readdir(dir)) != NULL) {
6205-
char path[256];
6206-
hwloc_obj_t obj, parent;
6207-
6208-
if (!strcmp(dirent->d_name, ".") || !strcmp(dirent->d_name, ".."))
6209-
continue;
6210-
if (sscanf(dirent->d_name, "mic%u", &idx) != 1)
6211-
continue;
6212-
6213-
snprintf(path, sizeof(path), "/sys/class/mic/mic%u", idx);
6214-
parent = hwloc_linuxfs_find_osdev_parent(backend, root_fd, path, osdev_flags);
6215-
if (!parent)
6216-
continue;
6217-
6218-
obj = hwloc_linux_add_os_device(backend, parent, HWLOC_OBJ_OSDEV_COPROC, dirent->d_name);
6219-
6220-
hwloc_linuxfs_mic_class_fillinfos(root_fd, obj, path);
6221-
}
6222-
6223-
closedir(dir);
6224-
6225-
return 0;
6226-
}
6227-
62286119
static int
62296120
hwloc_linuxfs_lookup_drm_class(struct hwloc_backend *backend, unsigned osdev_flags)
62306121
{
@@ -6784,7 +6675,6 @@ hwloc_look_linuxfs(struct hwloc_backend *backend, struct hwloc_disc_status *dsta
67846675
hwloc_linuxfs_lookup_dax_class(backend, osdev_flags);
67856676
hwloc_linuxfs_lookup_net_class(backend, osdev_flags);
67866677
hwloc_linuxfs_lookup_infiniband_class(backend, osdev_flags);
6787-
hwloc_linuxfs_lookup_mic_class(backend, osdev_flags);
67886678
if (ofilter != HWLOC_TYPE_FILTER_KEEP_IMPORTANT) {
67896679
hwloc_linuxfs_lookup_drm_class(backend, osdev_flags);
67906680
hwloc_linuxfs_lookup_dma_class(backend, osdev_flags);

include/Makefile.am

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright © 2009-2018 Inria. All rights reserved.
1+
# Copyright © 2009-2019 Inria. All rights reserved.
22
# Copyright © 2009-2010 Université Bordeaux
33
# Copyright © 2009-2014 Cisco Systems, Inc. All rights reserved.
44
# Copyright © 2011 Oracle and/or its affiliates. All rights reserved.
@@ -30,7 +30,6 @@ include_hwloc_HEADERS = \
3030
hwloc/nvml.h \
3131
hwloc/plugins.h \
3232
hwloc/gl.h \
33-
hwloc/intel-mic.h \
3433
hwloc/rename.h \
3534
hwloc/deprecated.h
3635
include_hwloc_autogendir = $(includedir)/hwloc/autogen

0 commit comments

Comments
 (0)