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 |
+} |