Gentoo Archives: gentoo-commits

From: Andrew Ammerlaan <andrewammerlaan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: dev-libs/oneCCL/files/, dev-libs/oneCCL/
Date: Thu, 01 Dec 2022 21:39:41
Message-Id: 1669930772.7be9956c54ca0e17129298337f375aa9de057321.andrewammerlaan@gentoo
1 commit: 7be9956c54ca0e17129298337f375aa9de057321
2 Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 1 21:38:20 2022 +0000
4 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 1 21:39:32 2022 +0000
6 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=7be9956c
7
8 dev-libs/oneCCL: new package, add 2021.7.1
9
10 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
11
12 .../files/oneCCL-2021.7.1-use-system-libs.patch | 102 +++++++++++++++++++++
13 dev-libs/oneCCL/metadata.xml | 11 +++
14 dev-libs/oneCCL/oneCCL-2021.7.1.ebuild | 54 +++++++++++
15 3 files changed, 167 insertions(+)
16
17 diff --git a/dev-libs/oneCCL/files/oneCCL-2021.7.1-use-system-libs.patch b/dev-libs/oneCCL/files/oneCCL-2021.7.1-use-system-libs.patch
18 new file mode 100644
19 index 000000000..0f9a785b4
20 --- /dev/null
21 +++ b/dev-libs/oneCCL/files/oneCCL-2021.7.1-use-system-libs.patch
22 @@ -0,0 +1,102 @@
23 +diff --git a/CMakeLists.txt b/CMakeLists.txt
24 +index 74c4fc0..92c4d16 100644
25 +--- a/CMakeLists.txt
26 ++++ b/CMakeLists.txt
27 +@@ -87,15 +87,13 @@ add_definitions(-DCCL_CXX_COMPILER="${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILE
28 + SET(CCL_ENABLE_ZE OFF CACHE BOOL "Enable Level Zero support")
29 +
30 + set(CCL_COMMON_INSTALL_PREFIX "intel64")
31 +-set(CMAKE_INSTALL_LIBDIR "lib")
32 + set(CCL_INSTALL_LIB "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
33 + set(CCL_INSTALL_INCLUDE "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
34 + set(CCL_INSTALL_DOC "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR}")
35 + set(CCL_INSTALL_BIN "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
36 +-set(CCL_INSTALL_ENV "${CMAKE_INSTALL_PREFIX}/env")
37 +-set(CCL_INSTALL_ETC "${CMAKE_INSTALL_PREFIX}/etc")
38 +-set(CCL_INSTALL_LICENSE "${CMAKE_INSTALL_PREFIX}/licensing")
39 +-set(CCL_INSTALL_MODULE "${CMAKE_INSTALL_PREFIX}/modulefiles")
40 ++set(CCL_INSTALL_ENV "${CMAKE_INSTALL_FULL_SYSCONFDIR}/env")
41 ++set(CCL_INSTALL_ETC "${CMAKE_INSTALL_FULL_SYSCONFDIR}")
42 ++set(CCL_INSTALL_MODULE "${CMAKE_INSTALL_FULL_SYSCONFDIR}/modulefiles")
43 + set(CCL_INSTALL_EXAMPLES "${CMAKE_INSTALL_PREFIX}/examples")
44 + set(CCL_INSTALL_TESTS "${CMAKE_INSTALL_PREFIX}/tests")
45 + set(CCL_INSTALL_KERNELS "${CMAKE_INSTALL_PREFIX}/lib/kernels")
46 +@@ -103,23 +101,23 @@ set(CCL_INSTALL_KERNELS "${CMAKE_INSTALL_PREFIX}/lib/kernels")
47 + # setup dependency directories
48 + set(DEPS_DIR "${PROJECT_SOURCE_DIR}/deps")
49 +
50 +-set(MPI_INCLUDE_DIR "${DEPS_DIR}/mpi/include/")
51 +-set(MPI_LIB_DIR "${DEPS_DIR}/mpi/lib/")
52 ++set(MPI_INCLUDE_DIR "/usr/include/")
53 ++set(MPI_LIB_DIR "/usr/lib64/")
54 + message(STATUS "MPI_INCLUDE_DIR: ${MPI_INCLUDE_DIR}")
55 + message(STATUS "MPI_LIB_DIR: ${MPI_LIB_DIR}")
56 +
57 + if ("${LIBFABRIC_DIR}" STREQUAL "")
58 +- set(LIBFABRIC_INCLUDE_DIR "${DEPS_DIR}/ofi/include")
59 +- set(LIBFABRIC_LIB_DIR "${DEPS_DIR}/ofi/lib/")
60 ++ set(LIBFABRIC_INCLUDE_DIR "${DEPS_DIR}/ofi/include/")
61 ++ set(LIBFABRIC_LIB_DIR "${DEPS_DIR}/ofi/lib64/")
62 + else()
63 + set(LIBFABRIC_INCLUDE_DIR "${LIBFABRIC_DIR}/include/")
64 +- set(LIBFABRIC_LIB_DIR "${LIBFABRIC_DIR}/lib")
65 ++ set(LIBFABRIC_LIB_DIR "${LIBFABRIC_DIR}/lib64/")
66 + endif()
67 + message(STATUS "LIBFABRIC_LIB_DIR: ${LIBFABRIC_LIB_DIR}")
68 + message(STATUS "LIBFABRIC_INCLUDE_DIR: ${LIBFABRIC_INCLUDE_DIR}")
69 +
70 +-set(HWLOC_INCLUDE_DIR "${DEPS_DIR}/hwloc/include/")
71 +-set(HWLOC_LIB_DIR "${DEPS_DIR}/hwloc/lib/")
72 ++set(HWLOC_INCLUDE_DIR "/usr/include/")
73 ++set(HWLOC_LIB_DIR "/usr/lib64/")
74 + message(STATUS "HWLOC_INCLUDE_DIR: ${HWLOC_INCLUDE_DIR}")
75 + message(STATUS "HWLOC_LIB_DIR: ${HWLOC_LIB_DIR}")
76 +
77 +@@ -128,7 +126,7 @@ set(ITT_LIB_DIR "${DEPS_DIR}/itt/lib64")
78 + message(STATUS "ITT_INCLUDE_DIR: ${ITT_INCLUDE_DIR}")
79 + message(STATUS "ITT_LIB_DIR: ${ITT_LIB_DIR}")
80 +
81 +-set(LEVEL_ZERO_INCLUDE_DIR "${DEPS_DIR}/level_zero/include/")
82 ++set(LEVEL_ZERO_INCLUDE_DIR "/usr/include/level_zero")
83 + message(STATUS "LEVEL_ZERO_INCLUDE_DIR: ${LEVEL_ZERO_INCLUDE_DIR}")
84 +
85 + set(CMAKE_SKIP_INSTALL_RPATH TRUE)
86 +@@ -241,8 +239,6 @@ configure_file(third-party-programs.txt ${CMAKE_CURRENT_BINARY_DIR}/third-party-
87 + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vars.sh DESTINATION ${CCL_INSTALL_ENV})
88 + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/setvars.sh DESTINATION ${CCL_INSTALL_ENV})
89 + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/ccl DESTINATION ${CCL_INSTALL_MODULE})
90 +-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/third-party-programs.txt DESTINATION ${CCL_INSTALL_LICENSE})
91 +-install(PROGRAMS ${PROJECT_SOURCE_DIR}/LICENSE DESTINATION ${CCL_INSTALL_LICENSE})
92 +
93 + # copy kernels
94 + if (COMPUTE_BACKEND AND EXISTS "${PROJECT_SOURCE_DIR}/src/kernels")
95 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
96 +index 7b4cff9..7ef00f8 100644
97 +--- a/src/CMakeLists.txt
98 ++++ b/src/CMakeLists.txt
99 +@@ -263,7 +263,7 @@ list(APPEND SRC_LINK_LIBS
100 + pthread
101 + ${EXTERNAL_LIBS}
102 + fabric
103 +- ${HWLOC_LIB_DIR}/libhwloc.a
104 ++ ${HWLOC_LIB_DIR}/libhwloc.so
105 + ${ITT_LIB_DIR}/libittnotify.a)
106 +
107 + if (ENABLE_MPI)
108 +@@ -335,16 +335,3 @@ if ("${LIBFABRIC_DIR}" STREQUAL "")
109 + install(DIRECTORY ${DEPS_DIR}/ofi/lib/
110 + DESTINATION ${CCL_INSTALL_LIB})
111 + endif()
112 +-
113 +-if (ENABLE_MPI)
114 +- file(GLOB mpi_bins "${DEPS_DIR}/mpi/bin/*")
115 +- install(PROGRAMS ${mpi_bins} DESTINATION ${CCL_INSTALL_BIN})
116 +- install(DIRECTORY ${DEPS_DIR}/mpi/include/
117 +- DESTINATION ${CCL_INSTALL_INCLUDE})
118 +- install(DIRECTORY ${DEPS_DIR}/mpi/lib/
119 +- DESTINATION ${CCL_INSTALL_LIB})
120 +- install(DIRECTORY ${DEPS_DIR}/mpi/etc/
121 +- DESTINATION ${CCL_INSTALL_ETC})
122 +- install(DIRECTORY ${DEPS_DIR}/mpi/licensing/
123 +- DESTINATION ${CCL_INSTALL_LICENSE}/mpi/)
124 +-endif()
125
126 diff --git a/dev-libs/oneCCL/metadata.xml b/dev-libs/oneCCL/metadata.xml
127 new file mode 100644
128 index 000000000..ad55412d9
129 --- /dev/null
130 +++ b/dev-libs/oneCCL/metadata.xml
131 @@ -0,0 +1,11 @@
132 +<?xml version="1.0" encoding="UTF-8"?>
133 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
134 +<pkgmetadata>
135 + <maintainer type="person">
136 + <email>andrewammerlaan@g.o</email>
137 + <name>Andrew Ammerlaan</name>
138 + </maintainer>
139 + <upstream>
140 + <remote-id type="github">oneapi-src/oneCCL</remote-id>
141 + </upstream>
142 +</pkgmetadata>
143
144 diff --git a/dev-libs/oneCCL/oneCCL-2021.7.1.ebuild b/dev-libs/oneCCL/oneCCL-2021.7.1.ebuild
145 new file mode 100644
146 index 000000000..ae069bb2a
147 --- /dev/null
148 +++ b/dev-libs/oneCCL/oneCCL-2021.7.1.ebuild
149 @@ -0,0 +1,54 @@
150 +# Copyright 2022 Gentoo Authors
151 +# Distributed under the terms of the GNU General Public License v2
152 +
153 +EAPI=8
154 +
155 +inherit cmake
156 +
157 +DESCRIPTION="oneAPI Collective Communications Library"
158 +HOMEPAGE="https://github.com/oneapi-src/oneCCL"
159 +SRC_URI="https://github.com/oneapi-src/oneCCL/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
160 +
161 +LICENSE="Apache-2.0"
162 +SLOT="0"
163 +KEYWORDS="~amd64"
164 +
165 +IUSE="mpi"
166 +
167 +DEPEND="
168 + dev-libs/level-zero
169 + sys-apps/hwloc
170 + sys-block/libfabric
171 + mpi? ( virtual/mpi )
172 +"
173 +RDEPEND="${DEPEND}"
174 +
175 +PATCHES=(
176 + "${FILESDIR}/${PN}-2021.7.1-use-system-libs.patch"
177 +)
178 +
179 +src_prepare() {
180 + # No -Werror
181 + find . -name "CMakeLists.txt" -exec sed -i "s/-Werror//g" {} + || die
182 +
183 + # Use system libs instead
184 + rm -r deps/hwloc deps/level_zero deps/mpi deps/ofi || die
185 +
186 + cmake_src_prepare
187 +}
188 +
189 +src_configure() {
190 + local mycmakeargs=(
191 + -DBUILD_EXAMPLES=OFF
192 + # BUILD_CONFIG causes sandbox violation
193 + -DBUILD_CONFIG=OFF
194 + -DCCL_ENABLE_ZE=ON
195 + # TODO: Find out how to execute the tests
196 + -DBUILD_FT=OFF
197 + -DENABLE_MPI_TESTS=OFF
198 + -DENABLE_MPI="$(usex mpi)"
199 + # Use system fabric
200 + -DLIBFABRIC_DIR="${ESYSROOT}/usr"
201 + )
202 + cmake_src_configure
203 +}