public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andrew Ammerlaan" <andrewammerlaan@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/sci:master commit in: dev-libs/oneCCL/files/, dev-libs/oneCCL/
Date: Sat, 25 Feb 2023 11:01:48 +0000 (UTC)	[thread overview]
Message-ID: <1677322897.593360fbff423fce1da25ab884d6c4c9fe1b590b.andrewammerlaan@gentoo> (raw)

commit:     593360fbff423fce1da25ab884d6c4c9fe1b590b
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 25 11:01:37 2023 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Sat Feb 25 11:01:37 2023 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=593360fb

dev-libs/oneCCL: add 2021.8

Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 .../files/oneCCL-2021.8-use-system-libs.patch      | 104 +++++++++++++++++++++
 dev-libs/oneCCL/oneCCL-2021.8.ebuild               |  62 ++++++++++++
 2 files changed, 166 insertions(+)

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


             reply	other threads:[~2023-02-25 11:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-25 11:01 Andrew Ammerlaan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-12-10 21:36 [gentoo-commits] proj/sci:master commit in: dev-libs/oneCCL/files/, dev-libs/oneCCL/ Andrew Ammerlaan
2022-12-01 21:39 Andrew Ammerlaan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1677322897.593360fbff423fce1da25ab884d6c4c9fe1b590b.andrewammerlaan@gentoo \
    --to=andrewammerlaan@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox