mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-19 03:53:22 -04:00
dev-libs/pocl: initial import
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
1
dev-libs/pocl/Manifest
Normal file
1
dev-libs/pocl/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST pocl-1.6.tar.gz 1595212 BLAKE2B ee628ec466df03c44f02235c78b516aeea0e02f82ce095cd798d6d4d4cf81773adf16493837306243ac7e0de58b2ccfbdcfb3a63ff8e287f6c83c58160811712 SHA512 ecd3a3867a62a2a555183741fa4586eeefae00514d66d15a79b9094ff0a0248b213f62ab23b3e61bdb1042e760cd34b07e546f97b304ac86c3f861a9161df1b1
|
||||
20
dev-libs/pocl/files/vendor_opencl_libs_location.patch
Normal file
20
dev-libs/pocl/files/vendor_opencl_libs_location.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -125,7 +125,7 @@
|
||||
endif()
|
||||
|
||||
# for libpocl.so
|
||||
-set(POCL_INSTALL_PUBLIC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH "POCL public libdir")
|
||||
+set(POCL_INSTALL_PUBLIC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/OpenCL/vendors/pocl" CACHE PATH "POCL public libdir")
|
||||
|
||||
# for llvmopencl.so
|
||||
set(POCL_INSTALL_PRIVATE_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pocl" CACHE PATH "POCL private libdir")
|
||||
@@ -134,7 +134,7 @@
|
||||
if(UNIX AND NOT CMAKE_CROSSCOMPILING AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(POCL_INSTALL_ICD_VENDORDIR "/etc/OpenCL/vendors" CACHE PATH "POCL ICD file destination")
|
||||
else()
|
||||
- set(POCL_INSTALL_ICD_VENDORDIR "${CMAKE_INSTALL_PREFIX}/etc/OpenCL/vendors" CACHE PATH "POCL ICD file destination")
|
||||
+ set(POCL_INSTALL_ICD_VENDORDIR "${SYSCONFDIR}/etc/OpenCL/vendors" CACHE PATH "POCL ICD file destination")
|
||||
endif()
|
||||
|
||||
# for kernel-<target>.bc
|
||||
30
dev-libs/pocl/metadata.xml
Normal file
30
dev-libs/pocl/metadata.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<description>comaintainers welcome</description>
|
||||
<email>lssndrbarbieri@gmail.com</email>
|
||||
<name>Alessandro Barbieri</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
PoCL is a portable open source (MIT-licensed) implementation of the OpenCL standard (1.2 with some 2.0 features supported). In addition to being an easily portable multi-device (truely heterogeneous) open-source OpenCL implementation, a major goal of this project is improving interoperability of diversity of OpenCL-capable devices by integrating them to a single centrally orchestrated platform. Also one of the key goals longer term is to enhance performance portability of OpenCL programs across device types utilizing runtime and compiler techniques.
|
||||
|
||||
Upstream PoCL currently supports various CPUs, NVIDIA GPUs via libcuda, HSA-supported GPUs and TCE ASIPs (experimental, see: OpenASIP). It is also known to have multiple (private) adaptations in active production use.
|
||||
|
||||
PoCL uses Clang as an OpenCL C frontend and LLVM for kernel compiler implementation, and as a portability layer. Thus, if your desired target has an LLVM backend, it should be able to get OpenCL support easily by using PoCL.
|
||||
</longdescription>
|
||||
<upstream>
|
||||
<remote-id type="github">pocl/pocl</remote-id>
|
||||
</upstream>
|
||||
<use>
|
||||
<flag name="accel">Enable the generic hardware accelerator device driver</flag>
|
||||
<flag name="cl20">Enable reporting OpenCL 2.0 for the CPU device</flag>
|
||||
<flag name="conformance">Ensures that certain build options which would result in non-conformant pocl build stay disabled. Note that this does not quarantee a fully conformant build of pocl by itself</flag>
|
||||
<flag name="cuda">Enable the CUDA backend for NVIDIA GPUs</flag>
|
||||
<flag name="float-conversion">When enabled, OpenCL printf() call's f/e/g formatters are handled by pocl. When disabled, these are handled by system C library.</flag>
|
||||
<flag name="hardening">Enable hardening against various attacks. May worsen performance</flag>
|
||||
<!--<flag name="hsa">Enable the HSA base profile runtime device driver</flag>-->
|
||||
<flag name="hwloc">Enable hwloc support</flag>
|
||||
<flag name="memmanager">Enables custom memory manager. Except for special circumstances, this should be disabled</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
87
dev-libs/pocl/pocl-1.6.ebuild
Normal file
87
dev-libs/pocl/pocl-1.6.ebuild
Normal file
@@ -0,0 +1,87 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
DOCS_AUTODOC=0
|
||||
DOCS_BUILDER="sphinx"
|
||||
DOCS_DIR="doc/sphinx/source"
|
||||
PYTHON_COMPAT=( python3_{7..9} )
|
||||
|
||||
inherit cmake llvm python-any-r1 docs
|
||||
|
||||
LLVM_MAX_SLOT=11
|
||||
|
||||
DESCRIPTION="Portable Computing Language (an implementation of OpenCL)"
|
||||
HOMEPAGE="
|
||||
http://portablecl.org
|
||||
https://github.com/pocl/pocl
|
||||
"
|
||||
SRC_URI="https://github.com/pocl/pocl/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="accel cl20 +conformance cuda debug examples float-conversion hardening +hwloc memmanager" #hsa tce
|
||||
|
||||
#TODO: add dependencies for cuda
|
||||
RDEPEND="
|
||||
dev-libs/libltdl
|
||||
sys-devel/llvm:${LLVM_MAX_SLOT}
|
||||
virtual/opencl
|
||||
|
||||
!cuda? ( sys-devel/clang:${LLVM_MAX_SLOT} )
|
||||
cuda? ( sys-devel/clang:${LLVM_MAX_SLOT}[llvm_targets_NVPTX] )
|
||||
debug? ( dev-util/lttng-ust )
|
||||
hwloc? ( sys-apps/hwloc[cuda?] )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
doc? ( $(python_gen_any_dep '<dev-python/markupsafe-2.0[${PYTHON_USEDEP}]') )
|
||||
"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
PATCHES=( "${FILESDIR}/vendor_opencl_libs_location.patch" )
|
||||
|
||||
src_configure() {
|
||||
llvm_pkg_setup
|
||||
local mycmakeargs=(
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DENABLE_HSA=OFF
|
||||
-DENABLE_ICD=ON
|
||||
-DENABLE_POCL_BUILDING=OFF
|
||||
-DKERNELLIB_HOST_CPU_VARIANTS=native
|
||||
-DPOCL_ICD_ABSOLUTE_PATH=OFF
|
||||
-DSTATIC_LLVM=OFF
|
||||
|
||||
-DENABLE_ACCEL_DEVICE=$(usex accel)
|
||||
-DENABLE_CONFORMANCE=$(usex conformance)
|
||||
-DENABLE_CUDA=$(usex cuda)
|
||||
-DENABLE_HOST_CPU_DEVICE_CL20=$(usex cl20)
|
||||
-DENABLE_HWLOC=$(usex hwloc)
|
||||
-DENABLE_POCL_FLOAT_CONVERSION=$(usex float-conversion)
|
||||
-DHARDENING_ENABLE=$(usex hardening)
|
||||
-DPOCL_DEBUG_MESSAGES=$(usex debug)
|
||||
-DUSE_POCL_MEMMANAGER=$(usex memmanager)
|
||||
-DWITH_LLVM_CONFIG=$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
docs_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
dodoc CREDITS README CHANGES
|
||||
if use doc; then
|
||||
dodoc -r _build/html
|
||||
docompress -x "/usr/share/doc/${P}/html"
|
||||
fi
|
||||
if use examples; then
|
||||
dodoc -r examples
|
||||
docompress -x "/usr/share/doc/${P}/examples"
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user