package/volk: new package
VOLK is the Vector-Optimized Library of Kernels Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> Reviewed-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
736c4c1655
commit
5f54ccb46f
@ -1205,6 +1205,7 @@ F: package/python-markdown/
|
||||
F: package/python-remi/
|
||||
F: package/python-sip/
|
||||
F: package/uhd/
|
||||
F: package/volk/
|
||||
|
||||
N: Heiko Thiery <heiko.thiery@gmail.com>
|
||||
F: board/kontron/bl-imx8mm/
|
||||
|
@ -2071,6 +2071,7 @@ endif
|
||||
source "package/tz/Config.in"
|
||||
source "package/tzdata/Config.in"
|
||||
source "package/uvw/Config.in"
|
||||
source "package/volk/Config.in"
|
||||
source "package/xapian/Config.in"
|
||||
endmenu
|
||||
|
||||
|
33
package/volk/Config.in
Normal file
33
package/volk/Config.in
Normal file
@ -0,0 +1,33 @@
|
||||
comment "volk needs a toolchain w/ C++, NPTL, wchar, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_VOLK
|
||||
bool "volk"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
depends on BR2_USE_MMU # use fork()
|
||||
depends on BR2_USE_WCHAR # boost
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem
|
||||
select BR2_PACKAGE_BOOST
|
||||
select BR2_PACKAGE_BOOST_FILESYSTEM
|
||||
select BR2_PACKAGE_BOOST_SYSTEM
|
||||
help
|
||||
VOLK is the Vector-Optimized Library of Kernels. It is a
|
||||
library that contains kernels of hand-written SIMD code
|
||||
for different mathematical operations. Since each SIMD
|
||||
architecture can be very different and no compiler has yet
|
||||
come along to handle vectorization properly or highly
|
||||
efficiently, VOLK approaches the problem differently.
|
||||
|
||||
For each architecture or platform that a developer wishes
|
||||
to vectorize for, a new proto-kernel is added to VOLK. At
|
||||
runtime, VOLK will select the correct proto-kernel. In this
|
||||
way, the users of VOLK call a kernel for performing the
|
||||
operation that is platform/architecture agnostic. This
|
||||
allows us to write portable SIMD code.
|
||||
|
||||
https://www.libvolk.org/
|
4
package/volk/volk.hash
Normal file
4
package/volk/volk.hash
Normal file
@ -0,0 +1,4 @@
|
||||
# Locally computed
|
||||
sha256 3f092737006ad2b7d24852833cf040e725c6f47d68ec2f4197895f84c6400bd8 volk-2.5.1.tar.xz
|
||||
sha256 6dcdafa9e750545f5f65c2e6f53820184822db728ac2b8bfe1d4a47da09ec0d6 COPYING
|
||||
sha256 258f450f060a161fb9f9e2e7c07c6b1ee73e5142297e6792dc1ee76b028cf0ca COPYING-LGPL
|
42
package/volk/volk.mk
Normal file
42
package/volk/volk.mk
Normal file
@ -0,0 +1,42 @@
|
||||
################################################################################
|
||||
#
|
||||
# volk
|
||||
#
|
||||
################################################################################
|
||||
|
||||
VOLK_VERSION = 2.5.1
|
||||
VOLK_SITE = https://github.com/gnuradio/volk/releases/download/v$(VOLK_VERSION)
|
||||
VOLK_SOURCE = volk-$(VOLK_VERSION).tar.xz
|
||||
# See https://github.com/gnuradio/volk/tree/v2.5.1#license for some
|
||||
# details on the licensing.
|
||||
VOLK_LICENSE = GPL-3.0+
|
||||
VOLK_LICENSE_FILES = COPYING COPYING-LGPL
|
||||
|
||||
VOLK_SUPPORTS_IN_SOURCE_BUILD = NO
|
||||
|
||||
# host-python-mako are needed for volk to compile
|
||||
VOLK_DEPENDENCIES = host-python3 host-python-mako boost
|
||||
|
||||
VOLK_CONF_OPTS = \
|
||||
-DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 \
|
||||
-DENABLE_MODTOOL=OFF \
|
||||
-DENABLE_TESTING=OFF \
|
||||
-DENABLE_PROFILING=OFF \
|
||||
-DVOLK_PYTHON_DIR=lib/python$(PYTHON3_VERSION_MAJOR)/site-packages
|
||||
|
||||
# For third-party blocks, the volk library is mandatory at
|
||||
# compile time.
|
||||
VOLK_INSTALL_STAGING = YES
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
|
||||
VOLK_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ORC),y)
|
||||
VOLK_DEPENDENCIES += orc
|
||||
VOLK_CONF_OPTS += -DENABLE_ORC=ON
|
||||
else
|
||||
VOLK_CONF_OPTS += -DENABLE_ORC=OFF
|
||||
endif
|
||||
|
||||
$(eval $(cmake-package))
|
Loading…
Reference in New Issue
Block a user