diff options
author | Lockywolf <for_sbo.openvkl_2024-03-05@lockywolf.net> | 2024-03-20 19:56:36 +0700 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2024-03-20 14:25:05 +0700 |
commit | c3895e2fabba918bdb35503a3a5d7906069df54a (patch) | |
tree | 12b291dee7fd027a4b995e2214d790c0b3d90d46 /libraries/openvkl | |
parent | ee04acc2fefcb5e921d69c75944149b3ef396308 (diff) |
libraries/openvkl: Added (Intel Open Volume Kernel Library).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'libraries/openvkl')
-rw-r--r-- | libraries/openvkl/README | 33 | ||||
-rw-r--r-- | libraries/openvkl/openvkl.SlackBuild | 119 | ||||
-rw-r--r-- | libraries/openvkl/openvkl.info | 10 | ||||
-rw-r--r-- | libraries/openvkl/slack-desc | 19 |
4 files changed, 181 insertions, 0 deletions
diff --git a/libraries/openvkl/README b/libraries/openvkl/README new file mode 100644 index 0000000000000..33966d96c485c --- /dev/null +++ b/libraries/openvkl/README @@ -0,0 +1,33 @@ +Intel Open Volume Kernel Library (Intel Open VKL) is a collection of +high-performance volume computation kernels, developed at Intel. The +target users of Open VKL are graphics application engineers who want to +improve the performance of their volume rendering applications by +leveraging Open VKL’s performance-optimized kernels, which include +volume traversal and sampling functionality for a variety of volumetric +data formats. Open VKL supports x86 CPUs under Linux, macOS, and +Windows; ARM CPUs on macOS; as well as Intel® GPUs under Linux and +Windows (currently in beta). + +Open VKL contains kernels optimized for the latest x86 processors with +support for SSE, AVX, AVX2, and AVX-512 instructions, and for ARM +processors with support for NEON instructions. Open VKL supports Intel +GPUs based on the Xe HPG microarchitecture (Intel® Arc™ GPU) under +Linux and Windows and Xe HPC microarchitecture (Intel® Data Center GPU +Flex Series and Intel® Data Center GPU Max Series) under Linux. Intel +GPU support leverages the SYCL open standard programming language; SYCL +allows one to write C++ code that can be run on various devices, such +as CPUs and GPUs. Open VKL is part of the Intel® oneAPI Rendering +Toolkit and is released under the permissive Apache 2.0 license. + +Open VKL provides a C-based API on CPU and GPU, and also supports +applications written with the Intel Implicit SPMD Program Compiler +(Intel ISPC) for CPU by also providing an ISPC interface to the core +volume algorithms. This makes it possible to write a renderer in ISPC +that automatically vectorizes and leverages SSE, AVX, AVX2, AVX-512, +and NEON instructions. ISPC also supports runtime code selection, thus +ISPC will select the best code path for your application. + +In addition to the volume kernels, Open VKL provides tutorials and +example renderers to demonstrate how to best use the Open VKL API. + +IMPORTANT: this build requires llvm-17 from Slackware64-15.0/extra diff --git a/libraries/openvkl/openvkl.SlackBuild b/libraries/openvkl/openvkl.SlackBuild new file mode 100644 index 0000000000000..fac93fe68f9d7 --- /dev/null +++ b/libraries/openvkl/openvkl.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/bash + +# Slackware build script for openvkl + +# Copyright 2024, Lockywolf +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=openvkl +VERSION=${VERSION:-2.0.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "aarch64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} + + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DMAN_INSTALL_DIR=/usr/man \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install/strip DESTDIR=$PKG +cd .. + +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + CHANGELOG.md README.md SECURITY.md LICENSE.txt \ + third-party-programs-TBB.txt third-party-programs-Embree.txt \ + third-party-programs.txt third-party-programs-OSPRay.txt \ + doc \ + $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/usr/share/doc/* $PKG/usr/doc/$PRGNAM-$VERSION/ +rm -rf $PKG/usr/share/doc +rmdir $PKG/usr/share +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/libraries/openvkl/openvkl.info b/libraries/openvkl/openvkl.info new file mode 100644 index 0000000000000..899c82cee4a9d --- /dev/null +++ b/libraries/openvkl/openvkl.info @@ -0,0 +1,10 @@ +PRGNAM="openvkl" +VERSION="2.0.1" +HOMEPAGE="https://github.com/openvkl/openvkl/" +DOWNLOAD="UNSUPPORTED" +MD5SUM="" +DOWNLOAD_x86_64="https://github.com/openvkl/openvkl/archive/v2.0.1/openvkl-2.0.1.tar.gz" +MD5SUM_x86_64="992e57cf395a6fea146a1ca8c608d6d4" +REQUIRES="rkcommon embree" +MAINTAINER="Lockywolf" +EMAIL="for_sbo.openvkl_2024-03-05@lockywolf.net" diff --git a/libraries/openvkl/slack-desc b/libraries/openvkl/slack-desc new file mode 100644 index 0000000000000..35d5f4869be32 --- /dev/null +++ b/libraries/openvkl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +openvkl: openvkl (Intel Open Volume Kernel Library) +openvkl: +openvkl: Intel Open Volume Kernel Library (Intel Open VKL) is a collection +openvkl: of high-performance volume computation kernels, developed at Intel. +openvkl: The target users of Open VKL are graphics application engineers who +openvkl: want to improve the performance of their volume rendering +openvkl: applications by leveraging Open VKL's performance-optimized kernels, +openvkl: which include volume traversal and sampling functionality for a +openvkl: variety of volumetric data formats. +openvkl: +openvkl: |