diff options
author | Andrew Ammerlaan <andrewammerlaan@gentoo.org> | 2023-02-25 12:01:37 +0100 |
---|---|---|
committer | Andrew Ammerlaan <andrewammerlaan@gentoo.org> | 2023-02-25 12:01:37 +0100 |
commit | 593360fbff423fce1da25ab884d6c4c9fe1b590b (patch) | |
tree | 1b04730716d5a99ee7541003f5ba0e26bb97ac95 /dev-libs | |
parent | sci-libs/oneDAL: add 2023.0.1 (diff) | |
download | sci-593360fbff423fce1da25ab884d6c4c9fe1b590b.tar.gz sci-593360fbff423fce1da25ab884d6c4c9fe1b590b.tar.bz2 sci-593360fbff423fce1da25ab884d6c4c9fe1b590b.zip |
dev-libs/oneCCL: add 2021.8
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/oneCCL/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/oneCCL/files/oneCCL-2021.8-use-system-libs.patch | 104 | ||||
-rw-r--r-- | dev-libs/oneCCL/oneCCL-2021.8.ebuild | 62 |
3 files changed, 167 insertions, 0 deletions
diff --git a/dev-libs/oneCCL/Manifest b/dev-libs/oneCCL/Manifest index 825fc0a11..95c5b9e72 100644 --- a/dev-libs/oneCCL/Manifest +++ b/dev-libs/oneCCL/Manifest @@ -1 +1,2 @@ DIST oneCCL-2021.7.1.tar.gz 35807233 BLAKE2B 0608b548f42c28983453a1e693c922aff0f6c77ffbf35f92b69113ba9fb02263bf8e1efa94ba47330559bb97b81493923cac10ce2c68c5fb50181677152fcc28 SHA512 e77d836afdcccbc2a1d2f9903916f17698a0d5ad795cd76dbb19a835375e89d0ecfa4695d87758e1ca6078bc23e30416d0a228ad3060816409b91851ad0b0790 +DIST oneCCL-2021.8.tar.gz 36868388 BLAKE2B b27f04efaddf2c31befd70388f0aa84b9cb5266b5d4e4a300064e0dc98e4d7eee3590288dc0b8cc1640fe0a9b928a0dfdf16a2ea45db9bd1517a8ca2dd00bdfe SHA512 879d1b73e594d5ff2c5a5aee08dfb4aded11c4974a9efcc199e7c2ee87b00c2441edb1dcb073bb4ed2587d752efcafe338072959b7b0f89fc1692dc377f748c2 diff --git a/dev-libs/oneCCL/files/oneCCL-2021.8-use-system-libs.patch b/dev-libs/oneCCL/files/oneCCL-2021.8-use-system-libs.patch new file mode 100644 index 000000000..dbb3a9e5f --- /dev/null +++ b/dev-libs/oneCCL/files/oneCCL-2021.8-use-system-libs.patch @@ -0,0 +1,104 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1e65ce9..cabbff9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -109,15 +109,13 @@ add_definitions(-DCCL_CXX_COMPILER="${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILE + SET(CCL_ENABLE_ZE OFF CACHE BOOL "Enable Level Zero support") + + set(CCL_COMMON_INSTALL_PREFIX "intel64") +-set(CMAKE_INSTALL_LIBDIR "lib") + set(CCL_INSTALL_LIB "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + set(CCL_INSTALL_INCLUDE "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") + set(CCL_INSTALL_DOC "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR}") + set(CCL_INSTALL_BIN "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") +-set(CCL_INSTALL_ENV "${CMAKE_INSTALL_PREFIX}/env") +-set(CCL_INSTALL_ETC "${CMAKE_INSTALL_PREFIX}/etc") +-set(CCL_INSTALL_LICENSE "${CMAKE_INSTALL_PREFIX}/licensing") +-set(CCL_INSTALL_MODULE "${CMAKE_INSTALL_PREFIX}/modulefiles") ++set(CCL_INSTALL_ENV "${CMAKE_INSTALL_FULL_SYSCONFDIR}/env") ++set(CCL_INSTALL_ETC "${CMAKE_INSTALL_FULL_SYSCONFDIR}") ++set(CCL_INSTALL_MODULE "${CMAKE_INSTALL_FULL_SYSCONFDIR}/modulefiles") + set(CCL_INSTALL_EXAMPLES "${CMAKE_INSTALL_PREFIX}/examples") + set(CCL_INSTALL_TESTS "${CMAKE_INSTALL_PREFIX}/tests") + set(CCL_INSTALL_KERNELS "${CMAKE_INSTALL_PREFIX}/lib/kernels") +@@ -125,23 +123,23 @@ set(CCL_INSTALL_KERNELS "${CMAKE_INSTALL_PREFIX}/lib/kernels") + # setup dependency directories + set(DEPS_DIR "${PROJECT_SOURCE_DIR}/deps") + +-set(MPI_INCLUDE_DIR "${DEPS_DIR}/mpi/include/") +-set(MPI_LIB_DIR "${DEPS_DIR}/mpi/lib/") ++set(MPI_INCLUDE_DIR "/usr/include/") ++set(MPI_LIB_DIR "/usr/lib64/") + message(STATUS "MPI_INCLUDE_DIR: ${MPI_INCLUDE_DIR}") + message(STATUS "MPI_LIB_DIR: ${MPI_LIB_DIR}") + + if ("${LIBFABRIC_DIR}" STREQUAL "") +- set(LIBFABRIC_INCLUDE_DIR "${DEPS_DIR}/ofi/include") +- set(LIBFABRIC_LIB_DIR "${DEPS_DIR}/ofi/lib/") ++ set(LIBFABRIC_INCLUDE_DIR "${DEPS_DIR}/ofi/include/") ++ set(LIBFABRIC_LIB_DIR "${DEPS_DIR}/ofi/lib64/") + else() + set(LIBFABRIC_INCLUDE_DIR "${LIBFABRIC_DIR}/include/") +- set(LIBFABRIC_LIB_DIR "${LIBFABRIC_DIR}/lib") ++ set(LIBFABRIC_LIB_DIR "${LIBFABRIC_DIR}/lib64/") + endif() + message(STATUS "LIBFABRIC_LIB_DIR: ${LIBFABRIC_LIB_DIR}") + message(STATUS "LIBFABRIC_INCLUDE_DIR: ${LIBFABRIC_INCLUDE_DIR}") + +-set(HWLOC_INCLUDE_DIR "${DEPS_DIR}/hwloc/include/") +-set(HWLOC_LIB_DIR "${DEPS_DIR}/hwloc/lib/") ++set(HWLOC_INCLUDE_DIR "/usr/include/") ++set(HWLOC_LIB_DIR "/usr/lib64/") + message(STATUS "HWLOC_INCLUDE_DIR: ${HWLOC_INCLUDE_DIR}") + message(STATUS "HWLOC_LIB_DIR: ${HWLOC_LIB_DIR}") + +@@ -150,7 +148,7 @@ set(ITT_LIB_DIR "${DEPS_DIR}/itt/lib64") + message(STATUS "ITT_INCLUDE_DIR: ${ITT_INCLUDE_DIR}") + message(STATUS "ITT_LIB_DIR: ${ITT_LIB_DIR}") + +-set(LEVEL_ZERO_INCLUDE_DIR "${DEPS_DIR}/level_zero/include/") ++set(LEVEL_ZERO_INCLUDE_DIR "/usr/include/level_zero") + message(STATUS "LEVEL_ZERO_INCLUDE_DIR: ${LEVEL_ZERO_INCLUDE_DIR}") + + message(STATUS "DRM_INCLUDE_DIR: ${DRM_INCLUDE_DIR}") +@@ -290,8 +288,6 @@ configure_file(third-party-programs.txt ${CMAKE_CURRENT_BINARY_DIR}/third-party- + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/vars.sh DESTINATION ${CCL_INSTALL_ENV}) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/setvars.sh DESTINATION ${CCL_INSTALL_ENV}) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/ccl DESTINATION ${CCL_INSTALL_MODULE}) +-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/third-party-programs.txt DESTINATION ${CCL_INSTALL_LICENSE}) +-install(PROGRAMS ${PROJECT_SOURCE_DIR}/LICENSE DESTINATION ${CCL_INSTALL_LICENSE}) + + # copy kernels + if (COMPUTE_BACKEND AND EXISTS "${PROJECT_SOURCE_DIR}/src/kernels") +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 3948373..168a690 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -279,8 +279,8 @@ list(APPEND SRC_LINK_LIBS + dl + pthread + ${EXTERNAL_LIBS} +- ${HWLOC_LIB_DIR}/libhwloc.a +- ${ITT_LIB_DIR}/libittnotify.a) ++ libhwloc.so ++ libittnotify.so) + + if (ENABLE_MPI) + set(SRC_C_FLAGS "${SRC_C_FLAGS} -DCCL_ENABLE_MPI") +@@ -350,16 +350,3 @@ if ("${LIBFABRIC_DIR}" STREQUAL "") + install(DIRECTORY ${DEPS_DIR}/ofi/lib/ + DESTINATION ${CCL_INSTALL_LIB}) + endif() +- +-if (ENABLE_MPI) +- file(GLOB mpi_bins "${DEPS_DIR}/mpi/bin/*") +- install(PROGRAMS ${mpi_bins} DESTINATION ${CCL_INSTALL_BIN}) +- install(DIRECTORY ${DEPS_DIR}/mpi/include/ +- DESTINATION ${CCL_INSTALL_INCLUDE}) +- install(DIRECTORY ${DEPS_DIR}/mpi/lib/ +- DESTINATION ${CCL_INSTALL_LIB}) +- install(DIRECTORY ${DEPS_DIR}/mpi/etc/ +- DESTINATION ${CCL_INSTALL_ETC}) +- install(DIRECTORY ${DEPS_DIR}/mpi/licensing/ +- DESTINATION ${CCL_INSTALL_LICENSE}/mpi/) +-endif() diff --git a/dev-libs/oneCCL/oneCCL-2021.8.ebuild b/dev-libs/oneCCL/oneCCL-2021.8.ebuild new file mode 100644 index 000000000..a67659f4a --- /dev/null +++ b/dev-libs/oneCCL/oneCCL-2021.8.ebuild @@ -0,0 +1,62 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="oneAPI Collective Communications Library" +HOMEPAGE="https://github.com/oneapi-src/oneCCL" +SRC_URI="https://github.com/oneapi-src/oneCCL/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" + +IUSE="mpi" + +BDEPEND="sys-devel/DPC++" + +DEPEND=" + dev-libs/level-zero:= + sys-apps/hwloc:= + sys-block/libfabric:= + sys-devel/ittapi + sys-cluster/pmix + mpi? ( virtual/mpi ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/${PN}-2021.8-use-system-libs.patch" +) + +src_prepare() { + # No -Werror + find . -name "CMakeLists.txt" -exec sed -i "s/-Werror//g" {} + || die + + # Use system libs instead + rm -r deps/* || die + + # DPC++ compiler required for full functionality + export CC="${ESYSROOT}/usr/lib/llvm/intel/bin/clang" + export CXX="${ESYSROOT}/usr/lib/llvm/intel/bin/clang++" + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DBUILD_EXAMPLES=OFF + # BUILD_CONFIG causes sandbox violation + -DBUILD_CONFIG=OFF + -DCCL_ENABLE_ZE=ON + # TODO: Find out how to execute the tests + -DBUILD_FT=OFF + -DENABLE_MPI_TESTS=OFF + -DENABLE_MPI="$(usex mpi)" + # Use system fabric + -DLIBFABRIC_DIR="${ESYSROOT}/usr" + ) + cmake_src_configure +} |