- Update to version 3.2.0

New and improved kernels
  * add RISC-V Vector extension (RVV) kernels
  * New AVX512F implementation
  Improved and modernized CI
  * ci: Add first native Linux ARM runners
  * macos: Fix CI dependency error
  * appveyor: Update to VS 2022/Python 3.12
  * Update android_build.yml
  Improved builds
  * cmake: Fix 64bit host CPU detection
  * cmake: Suppress invalid escape sequence warnings with Python 3.12
  * cmake/pkgconfig: use CMAKE_INSTALL_FULL_* variables
  * cmake: Fix VOLK as a submodule build issue
  * Adds toolchain file for Raspberry Pi 5
  New and improved tests
  * gtest: Start work on new test infrastructure
  * tests: Add a log info print test
  * gtest: Make gtest an install dependency
  * gtest: Enable GTests in CI workflows
  * tests: Beautify test output
  Documentation
  * cpu_features: Update hints in README
  Code quality
  * Add const to several args
  Usability features
  * feature: add env variable kernel override

OBS-URL: https://build.opensuse.org/package/show/hardware:sdr/volk?expand=0&rev=27
This commit is contained in:
Martin Hauke 2025-02-04 06:27:50 +00:00 committed by Git OBS Bridge
commit 5367a5c161
9 changed files with 542 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
volk-3.1.2.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce62f645c2ee3ef8b38f923de78ef4df9a1b7696d618f57781955803ee29bab3
size 381388

14
volk-3.1.2.tar.xz.asc Normal file
View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEYP2fX9zcnIzoe6UVBXnWl3LNmyIFAmXbCW4ACgkQBXnWl3LN
myIrXwwAiW/OsQ5xvhQFaiotElu4sBthdfkgsbPlnO1qkrgHbSOK7ULvt1MY9VbV
Alm8PtD2NQBlC0MJUlwgtX0AWyiM81xRCejsn1FhVhMmDzsEFCMR5OnCs7BGCSwH
zHCuN/jxEZ3wDTeDwPtFH0Lb769nQ2TVy0QARcwUTkgVJtXV1lbAFsKMksQXunxE
9IQXvrdKnEOeNn7lPx9o+NN+z284pPE+efA25Ts1gTSydm8fFPh2chK6HJqz1H64
Fh2D/kfYbE8yZjKLXnDPrDSHp0QUeWKtr1VhjyeV6Jmn6/VA81yM2IuTfQ3yrhw5
N/+bU5QwrR4HqtSyIZbaF81k/2gdDTeFrh3lE6CUINHuXjd3th2mNlfjmPxTIYVB
I0T9ku08Euhw5kSELnMH6tkwPQbbwTgmqM0K1Ym80ZPYoAxFfsm0MzOUTRkhl9d5
0FamvWKnm021uD4p3/vB+GVO29CUzqSDEHVi6pU2yoE6FcQcoQmO3ElOHzEUzcCT
M9wM8swH
=cObP
-----END PGP SIGNATURE-----

3
volk-3.2.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:93fcf717545f5e60491c57fd8dd348d814d3f95332d9dada5e53ab38015ff90a
size 399816

14
volk-3.2.0.tar.xz.asc Normal file
View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEYP2fX9zcnIzoe6UVBXnWl3LNmyIFAmehP0kACgkQBXnWl3LN
myLA6gv8CckL/RB0OdrHmzVhkxuDvyh2Tph+UpfL6Z1Pnvd2jmzLXGRPk7N1u7c+
J2XBKpi+K37l0Airs0Mqs07iAtuK7Ij7++YBdJBx772rGiTe7lot9ZoY0yIYdO7x
btVNQIHikkWStpbs+qsHZase7mly/d6XmMweO8MEnOhZ/pnaBxpLVmTx5u6ZOc8S
eok8B4cpR3+m9VQY9eG/4PPZqxGm/hVdyzNvhAR0kgmrtnucYEJKKpRFFp0SWegt
46Jcj3usVJ32BfHwl8bp2g3x6u/OTYYujQAY7DoEeFWvzfKYRCy2kK1dUrfx2717
SzPBgormsK/kKALgvcXkE1pYzmnWYT4jtIqcUMeL6dKxSjAMiAelL72cuJzbGW9k
smfKFG8pfNHduc9aAJ09fcrCZJLfDeICAg7ufMf4psk6WvYJtJmvvrT3rOph+spi
c8k6fckOzKrknprfaDfmc7MJZVROblilLBI216UMSd/JbhhBXUWnoc7P+TR92D9g
p4gJJb7R
=hnP+
-----END PGP SIGNATURE-----

333
volk.changes Normal file
View File

@ -0,0 +1,333 @@
-------------------------------------------------------------------
Tue Feb 4 00:25:00 UTC 2025 - Wojciech Kazubski <wk@ire.pw.edu.pl>
- Update to version 3.2.0
New and improved kernels
* add RISC-V Vector extension (RVV) kernels
* New AVX512F implementation
Improved and modernized CI
* ci: Add first native Linux ARM runners
* macos: Fix CI dependency error
* appveyor: Update to VS 2022/Python 3.12
* Update android_build.yml
Improved builds
* cmake: Fix 64bit host CPU detection
* cmake: Suppress invalid escape sequence warnings with Python 3.12
* cmake/pkgconfig: use CMAKE_INSTALL_FULL_* variables
* cmake: Fix VOLK as a submodule build issue
* Adds toolchain file for Raspberry Pi 5
New and improved tests
* gtest: Start work on new test infrastructure
* tests: Add a log info print test
* gtest: Make gtest an install dependency
* gtest: Enable GTests in CI workflows
* tests: Beautify test output
Documentation
* cpu_features: Update hints in README
Code quality
* Add const to several args
Usability features
* feature: add env variable kernel override
-------------------------------------------------------------------
Mon Feb 26 19:21:24 UTC 2024 - Wojciech Kazubski <wk@ire.pw.edu.pl>
- Update to version 3.1.2
Documentation improvements, and automatically generate and publish
* docs: Add VOLK doc build to CI
* docs: Add upload to GitHub actions
* cpu_features: Update hints in README
Remove sse2neon with a native NEON implementation
* Replace sse2neon with native NEON
* Remove loop unrolling
* Simplify Spiral-generated code
Improve CI pipeline with new runner
* flyci: Test CI service with M2 instance
* actions: Update GH Actions checkout
Auto-format CMake files
* cmake: Add .cmake-format.py
* cmake: Apply .cmake-format.py
Release script fixes
* scripts/release: fix multi-concatenation of submodule tars
* shellcheck fixes
* bash negative exit codes are not portable, let's be positive
- Update to version 3.1.1
CI fixes
* Allow for rounding error in float-to-int conversions
* Allow for rounding error in volk_32fc_s32f_magnitude_16i
* Allow for rounding error in float-to-int interleave
* Add missing volk_16_byteswap_u_orc to puppet
* Fix 64-bit integer testing
* Build and test neonv7 protokernels on armv7
kernels
* Remove broken sse32 kernels
* Fix flaky fm_detect test
* Fix flaky mod_range test
* Remove unnecessary volatiles from volk_32fc_s32f_magnitude_16i
* Remove SSE protokernels written in assembly
* Remove inline assembler from volk_32fc_convert_16ic_neon
* Use bit shifts in generic and byte_shuffle reverse
* Remove disabled SSE4.1 dot product
* Fix conv_k7_r2 kernel and puppet
* Remove unused argument from renormalize
* Align types in ORC function signatures
* Uncomment AVX2 implementation
* Renormalize in every iteration on AVX2
* Remove extraneous permutations
* Compute the minimum over both register lanes
* volk_32fc_s32f_atan2_32f: Add NaN tests for avx2 and avx2fma
code
fixes
* Express version information in decimal
* Remove __VOLK_VOLATILE
* Remove references to simdmath library
* cmake: Switch to GNUInstallDirs
* fprintf: Remove fprintf statements from volk_malloc
* release: Prepare release with updated files
* Get the sse2neon.h file to a git submodule to avoid random
copies.
-------------------------------------------------------------------
Fri Jan 19 10:45:21 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update descriptions
- Limit fdupes to /usr so it does not accidentally hardlink across
mounts.
-------------------------------------------------------------------
Tue Dec 5 21:33:20 UTC 2023 - Martin Hauke <mardnh@gmx.de>
- Update to version 3.1.0
Build and dependency updates
* cmake: Link to cpu_features only in BUILD_INTERFACE.
* cmake: Do not install cpu_features with volk.
* Use CpuFeatures target.
* Use cpu_features on RISC-V platforms.
* cpu_features: Update submodule pointer.
* Add UBSAN to ASAN builds.
New kernel API
* Use pointers to pass in s32fc arguments.
* The old API is deprecated but will be available for the
foreseeable future.
Updated kernels
* Remove unused ORC code.
* Prefer NEON kernels over ORC.
* Require all kernels to have a generic implementation.
* Remove redundant a_generic kernels.
* Remove ORC kernels that use sqrtf.
* reverse: Rename dword_shuffle to generic.
* volk_32f_s32f_convert_8i: code style
* volk_32fc_x2_divide_32fc: add documentation about numerical
accuracy.
* kernel: Refactor 32f_s32f_multiply_32f kernel.
* kernel: Refactor 32f_x2_subtract_32f kernel.
* convert 32f->32i: fix compiler warnings about loss of int
precision.
* 64u_ byteswape: remove buggy Neonv8 protokernel.
* 64u_ byteswape: remove buggy Neon protokernel.
* Remove broken volk_16i_max_star_16i_neon protokernel.
* Fix truncate-toward-zero distortion.
* Fix encodepolar documentation.
New kernels
* add volk_32f_s32f_x2_convert_8u kernel.
* Fix documentation for the clamp kernel.
* added new kernel: volk_32f_s32f_x2_clamp.
* new kernels for atan2.
* Add 32f_s32f_multiply_32f RISC-V manually optimized assembly.
* Add .size to volk_32f_s32f_multiply_32f_sifive_u74.
* Add volk_32fc_x2_dot_prod_32fc_sifive_u74.
-------------------------------------------------------------------
Sat Jan 14 17:55:44 UTC 2023 - Martin Hauke <mardnh@gmx.de>
- Update to version 3.0.0
* License switch to LGPLv3+
* Fix build for 32 bit arm with neon
* Add experimental support for MIPS and RISC-V
-------------------------------------------------------------------
Mon Sep 5 17:48:54 UTC 2022 - Wojciech Kazubski <wk@ire.pw.edu.pl>
- Update to version 2.5.2
CI
* Update all test jobs to more recent actions
volk_8u_x4_conv_k7_r2_8u
* Add NEON implementation neonspiral via sse2neon.h
Fixes
* Fix out-of-bounds reads
* Fix broken neon kernels
* Fix float to int conversion
CMake
* Suppress superfluous warning
* Fix Python install path calculation and documentation
cpu_features
* Update submodule pointer
VOLK 3.0 release preparations
* Use SPDX license identifiers everywhere
* Re-arrange files in top-level folder
* Update Doxygen and all Doxygen related tasks into docs
-------------------------------------------------------------------
Sat Feb 12 12:59:47 UTC 2022 - Wojciech Kazubski <wk@ire.pw.edu.pl>
- Update to version 2.5.1
Kernels
* Fixup underperforming GENERIC kernel for volk_8u_x4_conv_k7_r2_8u
* volk_32fc_x2_conjugate_dot_prod_32fc: New generic implementation
* Add volk_32f(c)_index_min_16/32u
* Fix volk_32fc_index_min_32u_neon
* Fix volk_32fc_index_min_32u_neon
Misc
* Fix volk_malloc alignment bug
* qa: Remove repeating tests
* python: Switch to sysconfig module
* deprecate: Add attribute deprecated
* deprecate: Exclude warnings on Windows
* docs: Update docs
* Add the list of contributors agreeing to LGPL licensing
* Add a script to count the lines that are pending resubmission
* Testing: Add test for LGPL licensing
* Update CODE_OF_CONDUCT file
Boost
* boost: Remove boost dependency
* c++: Require C++17 for std::filesystem
cpu_features
* cpu_features: Update submodule pointer
* cpu_features: Make cpu_features submodule optional
Zenodo
* zenodo: Add metadata file
* zenodo: Re-organize .zenodo.json
- Patch volk-fix-cpu_features-compilation-error.patch removed (not
needed
-------------------------------------------------------------------
Thu Jul 22 20:11:16 UTC 2021 - Wojciech Kazubski <wk@ire.pw.edu.pl>
- fixed build for s390x (no cpu_features)
-------------------------------------------------------------------
Sat Jun 5 12:00:12 UTC 2021 - Martin Hauke <mardnh@gmx.de>
- Update to version 2.5.0
Kernels
* volk_32f_stddev_and_mean_32f_x2: implemented Young and
Cramer's algorithm
* volk_32fc_accumulator_s32fc: Add new kernel
* volk_16ic_x2_dot_prod_16ic_u_avx2: Fix Typo, was _axv2.
* Remove _mm256_zeroupper() calls
* Enforce consistent function prototypes
* 32fc_index_max: Improve speed of AVX2 version
* conv_k7_r2: Disable broken AVX2 code
* improve volk_8i_s32f_convert_32f for ARM NEON
* Calculate cos in AVX512F
* Calculate sin using AVX512F
Fixes:
* Fix segmentation fault when using GCC 8
* Fix python version detection
* cmake: Check that 'distutils' is available
* c11: Remove pre-C11 preprocessor instructions
-------------------------------------------------------------------
Thu Dec 17 21:06:38 UTC 2020 - Martin Hauke <mardnh@gmx.de>
- Update to version 2.4.1
Build
* cpu_features CMake option
* Add cpu_features to static library build.
* Use static liborc-0.4 library for static library build.
* cmake: Detect if cpu_features submodule is present.
Install
* Check for lib64 versus lib and set LIB_SUFFIX accordingly.
- Switch back to the release github tarballs
- Verify source signature
-------------------------------------------------------------------
Mon Nov 30 11:31:35 UTC 2020 - Martin Hauke <mardnh@gmx.de>
- Update to version 2.4.0
Documentation
* Update README to be more verbose and to improve usefulness.
CMake
* Enable to not install volk_modtool.
* Remove "find_package_handle_standard_args" warning.
cpu_features
* Use cpu_features v0.6.0 as a private submodule to detect
available CPU features.
* Fix incorrect feature detection for newer AVX versions.
* Circumvent platform specific feature detection.
* Enable more architecture specific kernels on more platforms.
Kernels
* Disable slow and broken SSE4.1 kernel in
volk_32fc_x2_dot_prod_32fc.
* Adjust min/max for 32f_s32f_convert_8i kernel
* Use INT8_* instead of CHAR_*
- Upstream tarball does not have the cpu_features included so use
a service file to generate the tarball.
- Add patch:
* volk-fix-cpu_features-compilation-error.patch
-------------------------------------------------------------------
Sat May 9 12:09:27 UTC 2020 - Martin Hauke <mardnh@gmx.de>
- Update to version 2.3.0
* Better reproducible builds
* CMake improvements
+ ORC is removed from the public interface where it was never
supposed to be.
+ CMake fixes for better usability
* Enforce C/C++ coding style via clang-format
* Kernel fixes
+ Add puppet for `power_spectral_density` kernel
+ Treat the `mod_range` puppet as a puppet for correct use
with `volk_profile`
+ Fix `index_max` kernels
+ Fix `rotator`. We hope that we finally found the root cause
of the issue.
* Kernel optimizations
+ Updated log10 calcs to use faster log2 approach
+ Optimize `complexmultiplyconjugate`
* New kernels
+ accurate exp kernel is finally merged after years
+ Add 32f_s32f_add_32f kernel to perform vector + scalar float
operation
-------------------------------------------------------------------
Wed Feb 26 19:47:28 UTC 2020 - Martin Hauke <mardnh@gmx.de>
- Update to version 2.2.1
Changes
* Fix loop bound in AVX rotator
* Fix out-of-bounds read in AVX2 square dist kernel
* Fix length checks in AVX2 index max kernels
* includes: rearrange attributes to simplify macros Whitespace
* kernels: fix usage in header comments
- Update to version 2.2.0
Highlights
* Dropped Python 2 build support
+ Removed Python six module dependency
* Use C11 aligned_alloc whenever possible
* Add VOLK version in volk_version.h (included in volk.h)
* Improved CMake code
* Improved code with lots of refactoring and performance tweaks
-------------------------------------------------------------------
Sun Dec 22 14:26:11 UTC 2019 - Martin Hauke <mardnh@gmx.de>
- Update to version 2.1.0
* The AVX FMA rotator bug is fixed
* VOLK offers `volk::vector<>` for C++ to follow RAII
* Move towards modern dependencies
- CMake 3.8
- Prefer Python3
- We will drop Python2 support in a future release!
- Use C++17 `std::filesystem`
- This enables VOLK to be built without Boost if
available!
* more stable CI
* lots of bugfixes
* more optimized kernels, especially more NEON versions
-------------------------------------------------------------------
Thu Sep 12 13:28:15 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- First version of standalone VOLK package, version 2.0.0

41
volk.keyring Normal file
View File

@ -0,0 +1,41 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
QmJ1QBw7ro7qE4DzzfHx4SAl662MN6uPgvPUBQ==
=kJgM
-----END PGP PUBLIC KEY BLOCK-----

110
volk.spec Normal file
View File

@ -0,0 +1,110 @@
#
# spec file for package volk
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sonum 3
%global soname 3_2
Name: volk
Version: 3.2.0
Release: 0
Summary: Vector-Optimized Library of Kernels
License: LGPL-3.0-or-later
Group: Development/Libraries/C and C++
URL: https://libvolk.org/
Source: https://github.com/gnuradio/volk/releases/download/v%{version}/%{name}-%{version}.tar.xz
Source98: https://github.com/gnuradio/volk/releases/download/v%{version}/%{name}-%{version}.tar.xz.asc#/%{name}-%{version}.tar.xz.asc
Source99: volk.keyring
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_system-devel
BuildRequires: orc
BuildRequires: python-rpm-macros
BuildRequires: python3-Mako
Provides: bundled(cpu_features) = 0.6.0
%description
VOLK is a library of vector-optimized kernels. It is a subproject
of GNU Radio, but can also be used standalone.
%package devel
Summary: Development files for VOLK
# Formerly part of gnuradio 3.7.x.y
Group: Development/Libraries/C and C++
Requires: libvolk%{soname} = %{version}
Recommends: volk_modtool
Conflicts: gnuradio-devel < 3.8.0.0
Provides: gnuradio-devel:%{_libdir}/pkgconfig/volk.pc
%description devel
This package provides the the development files for VOLK.
%package -n libvolk%{soname}
Summary: Vector-Optimized Library of Kernels
Group: System/Libraries
Recommends: volk
%description -n libvolk%{soname}
This package provides the VOLK shared library.
%package -n volk_modtool
Summary: VOLK kernel creation utility
Group: Development/Tools/Other
%description -n volk_modtool
This package provides volk_modtool, used for creating new
VOLK kernels.
%prep
%autosetup
%build
%cmake
%cmake_build
%install
%cmake_install
chmod -x %{buildroot}%{python3_sitearch}/volk_modtool/*py
sed -i -e '1 { \@.*/bin/env.*python.*@ d }' %{buildroot}%{python3_sitearch}/volk_modtool/*py
%fdupes %{buildroot}/%{_prefix}
%post -n libvolk%{soname} -p /sbin/ldconfig
%postun -n libvolk%{soname} -p /sbin/ldconfig
%files
%license COPYING
%doc docs/CHANGELOG.md README.md
%{_bindir}/volk_profile
%files devel
%{_bindir}/volk-config-info
%{_includedir}/volk
%{_libdir}/cmake/volk
%{_libdir}/libvolk.so
%{_libdir}/pkgconfig/volk.pc
%files -n libvolk%{soname}
%{_libdir}/libvolk.so.%{sonum}*
%files -n volk_modtool
%doc python/volk_modtool/README.md
%{_bindir}/volk_modtool
%{python3_sitearch}/volk_modtool
%changelog