9 research outputs found
gnuradio/volk: Release 2.1.0
Highlights
VOLK v2.1.0 is a collection of really cool changes. We'd like to highlight some of them.
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
Contributors
Albin Stigo [email protected]
Amr Bekhit [email protected]
Andrej Rode [email protected]
Carles Fernandez [email protected]
Christoph Mayer [email protected]
Clayton Smith [email protected]
Damian Miralles [email protected]
Johannes Demel [email protected] [email protected]
Marcus Müller [email protected]
Michael Dickens [email protected]
Philip Balister [email protected]
Takehiro Sekine [email protected]
Vasil Velichkov [email protected]
luz.paz [email protected]
Changes
Usage
Update README to reflect how to build on Raspberry Pi and the importance of running volk_profile
Toolchain
Add toolchain file for Raspberry Pi 3
Update Raspberry 4 toolchain file
Kernels
Add neonv7 to volk_16ic_magnitude_16i
Add neonv7 to volk_32fc_index_max_32u
Add neonv7 to volk_32fc_s32f_power_spectrum_32f
Add NEONv8 to volk_32f_64f_add_64f
Add Neonv8 to volk_32fc_deinterleave_64f_x2
Add volk_32fc_x2_s32fc_multiply_conjugate_add_32fc
Add NEONv8 to volk_32fc_convert_16ic
CI
Fix AVX FMA rotator
appveyor: Enable testing on windows
Fixes for flaky kernels for more reliable CI
volk_32f_log2_32f
volk_32f_x3_sum_of_poly_32f
volk_32f_indexmax{16,32}u
volk_32f_8u_polarbutterflypuppet_32f
volk_8u_conv_k7_r2puppet_8u
volk_32fc_convert_16ic
volk_32fc_s32f_magnitude_16i
volk_32f_s32fconvert{8,16,32}i
volk_16ic_magnitude_16i
volk_32f_64f_add_64f
Use Intel SDE to test all kernels
TravisCI
Add native tests on arm64
Add native tests on s390x and ppc64le (allow failure)
Build
Build Volk without Boost if C++17 std::filesystem or std::experimental::filesystem is available
Update to more modern CMake
Prevent CMake to choose previously installed VOLK headers
CMake
bump minimum version to 3.8
Use sha256 instead of md5 for unique target name hash
Python: Prefer Python3 over Python2 if available
C++
VOLK C++ allocator and C++11 std::vector type alias adde
gnuradio/volk: Release v2.2.0
Hi everyone,
we have a new VOLK release v2.2.0!
We want to thank all contributors. This release wouldn't have been possible without them.
We're curious about VOLK users. Especially we'd like to learn about VOLK users who use VOLK outside GNU Radio.
If you have ideas for VOLK enhancements, let us know. Start with an issue to discuss your idea. We'll be happy to see new features get merged into VOLK.
The v2.1.0 release was rather large because we had a lot of backlog. We aim for more incremental releases in order to get new features out there.
Highlights
VOLK v2.2.0 updates our build tools and adds support functionality to make it easier to use VOLK in your projects.
Dropped Python 2 build support
Removed Python six module dependency
Use C11 aligned_alloc whenever possible
MacOS posix_memalign fall-back
MSVC _aligned_malloc fall-back
Add VOLK version in volk_version.h (included in volk.h)
Improved CMake code
Improved code with lots of refactoring and performance tweaks
Contributors
Carles Fernandez [email protected]
Gwenhael Goavec-Merou [email protected]
Albin Stigo [email protected]
Johannes Demel [email protected] [email protected]
Michael Dickens [email protected]
Valerii Zapodovnikov [email protected]
Vasil Velichkov [email protected]
ghostop14 [email protected]
rear1019 [email protected]
Changes
CMake
Fix detection of AVX and NEON
Fix for macOS
lib/CMakeLists: use asm instead of asm for ARM tests
lib/CMakeLists: fix detection when compiler support NEON but nor neonv7 nor neonv8
lib/CMakeLists.txt: use VOLK_ASM instead of asm__
lib/CMakeLists.txt: let VOLK choose preferred neon version when both are supported
lib/CMakeLists.txt: simplify neon test support. Unset neon version if not supported
For attribute, change from clang to "clang but not MSC"
Readme
logo: Add logo at top of README.md
Build dependencies
python: Drop Python2 support
python: Reduce six usage
python: Move to Python3 syntax and modules
six: Remove build dependency on python six
Allocation
alloc: Use C11 aligned_alloc
alloc: Implement fall backs for C11 aligned_alloc
alloc: Fix for incomplete MSVC standard compliance
alloc: update to reflect alloc changes
Library usage
Fixup VolkConfigVersion
add volk_version.h
Refactoring
qa_utils.cc: fix always false expression
volk_prefs.c: check null realloc and use temporary pointer
volk_profile.cc: double assignment and return 0
volk_32f_x2_pow_32f.h: do not need to _mm256_setzero_ps()
volk_8u_conv_k7_r2puppet_8u.h: d_polys[i] is positive
kernels: change one iteration for's to if's
kernels: get rid of some assignments
qa_utils.cc: actually throw something
qa_utils.cc: fix always true code
rotator: Refactor AVX kernels
rotator: Remove unnecessary variable
kernel: Refactor square_dist_scalar_mult
square_dist_scalar_mult: Speed-Up AVX, Add unaligned
square_dist_scalar_mult: refactor AVX2 kernel
kernel: create AVX2 meta intrinsics
CI
appveyor: Test with python 3.4 and 3.8
appveyor: Add job names
appveyor: Make ctest more verbose
Performance
Improve performance of generic kernels with complex multiply
square_dist_scalar_mult: Add SSE version
Adds NEON versions of cos, sin and ta
gnuradio/volk: Release 2.0.0
2.0.0 Release Notes
<p>This is the first release under semantic versioning.</p>
<p>This is very likely the version to be the dependency of the GNU Radio 3.8.0.0 release.</p>
Contributors
<ul>
<li>Albin Stigo <a href="mailto:[email protected]">[email protected]</a></li>
<li>A. Maitland Bottoms <a href="mailto:[email protected]">[email protected]</a></li>
<li>Andrej Rode <a href="mailto:[email protected]">[email protected]</a></li>
<li>Andrew <a href="mailto:[email protected]">[email protected]</a></li>
<li>Ben Hilburn <a href="mailto:[email protected]">[email protected]</a></li>
<li>Brandon P. Enochs <a href="mailto:[email protected]">[email protected]</a></li>
<li>Brennan Ashton <a href="mailto:[email protected]">[email protected]</a></li>
<li>Carles Fernandez <a href="mailto:[email protected]">[email protected]</a></li>
<li>Christoph Mayer <a href="mailto:[email protected]">[email protected]</a></li>
<li>Clayton Smith <a href="mailto:[email protected]">[email protected]</a></li>
<li>cmayer <a href="mailto:[email protected]">[email protected]</a></li>
<li>Damian Miralles <a href="mailto:[email protected]">[email protected]</a></li>
<li>Dan Robertson <a href="mailto:[email protected]">[email protected]</a></li>
<li>hcab14 <a href="mailto:[email protected]">[email protected]</a></li>
<li>Jeison Cardoso <a href="mailto:[email protected]">[email protected]</a></li>
<li>Jessica Iwamoto <a href="mailto:[email protected]">[email protected]</a></li>
<li>Johannes Demel <a href="mailto:[email protected]">[email protected]</a></li>
<li>Karl Semich <a href="mailto:[email protected]">[email protected]</a></li>
<li>Marc L <a href="mailto:[email protected]">[email protected]</a></li>
<li>Marcus Müller <a href="mailto:[email protected]">[email protected]</a></li>
<li>Michael Dickens <a href="mailto:[email protected]">[email protected]</a></li>
<li>Nathan West <a href="mailto:[email protected]">[email protected]</a></li>
<li>Nicholas Corgan <a href="mailto:[email protected]">[email protected]</a></li>
<li>Philip Balister <a href="mailto:[email protected]">[email protected]</a></li>
<li>rear1019 <a href="mailto:[email protected]">[email protected]</a></li>
<li>Ryan Volz <a href="mailto:[email protected]">[email protected]</a></li>
<li>Zlika <a href="mailto:[email protected]">[email protected]</a></li>
</ul>
gnuradio/volk: Release v2.3.0
[2.3.0] - 2020-05-09
Hi everyone!
VOLK 2.3 is out! We want to thank all contributors. This release wouldn't have been possible without them. We saw lots of great improvements.
On GNU Radio 'master' VOLK was finally removed as a submodule.
Currently we see ongoing discussions on how to improve CPU feature detection because VOLK is not as reliable as we'd like it to be in that department. We'd like to benefit from other open source projects and don't want to reinvent the wheel. Thus, one approach would be to include cpu_features as a submodule.
Highlights
Better reproducible builds
CMake improvements
ORC is removed from the public interface where it was never supposed to be.
CMake fixes for better usability
Updated and new CI chain
TravisCI moved to new distro and does more tests for newer GCC/Clang
Github Actions
Add Action to check proper code formatting.
Add CI that also runs on MacOS with XCode.
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
Contributors
Bernhard M. Wiedemann [email protected]
Clayton Smith [email protected]
Johannes Demel [email protected] [email protected]
Michael Dickens [email protected]
Tom Rondeau [email protected]
Vasil Velichkov [email protected]
ghostop14 [email protected]
Changes
Reproducible builds
Drop compile-time CPU detection
Drop another instance of compile-time CPU detection
CI updates
ci: Add Github CI Action
ci: Remove Ubuntu 16.04 GCC5 test on TravisCI
TravisCI: Update CI to bionic distro
TravisCI: Add GCC 8 test
TravisCI: Structure CI file
TravisCI: Clean-up .travis.yml
Enforce C/C++ coding style
clang-format: Apply clang-format
clang-format: Update PR with GitHub Action
clang-format: Rebase onto current master
Fix compiler warnings
shadow: rebase kernel fixes
shadow: rebase volk_profile fix
CMake
cmake: Remove the ORC from the VOLK public link interface
versioning: Remove .Maint from libvolk version
Fix endif macro name in comment
Kernels
volk: accurate exp kernel
exp: Rename SSE4.1 to SSE2 kernel
Add 32f_s32f_add_32f kernel
This kernel adds in vector + scalar functionality
Fix the broken index max kernels
Treat the mod_range puppet as such
Add puppet for power spectral density kernel
Updated log10 calcs to use faster log2 approach
fix: Use unaligned load
divide: Optimize complexmultiplyconjugat
gnuradio/volk: Release v2.4.1
[2.4.1] - 2020-12-17
Hi everyone!
We have a new VOLK bugfix release! We are happy to announce VOLK v2.4.1! We want to thank all contributors. This release wouldn't have been possible without them.
Our v2.4.0 release introduced quite a lot of changes under the hood. With this bugfix release, we want to make sure that everything works as expected again.
Contributors
A. Maitland Bottoms [email protected]
Johannes Demel [email protected]
Michael Dickens [email protected]
Philip Balister [email protected]
Ron Economos [email protected]
Ryan Volz [email protected]
Changes
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.
CI
Add CI test for static library build.
Releases
project: Include git submodules (i.e. cpu_features) in release tarball.
scripts: Add GPG signature to release script
Other
readme: Update TravisCI status badg
gnuradio/volk: Release v2.2.1
Hi everyone,
with VOLK 2.2.0, we introduced another AVX rotator bug which is fixed with this release.
In the process 2 more bugs were identified and fixed. Further, we saw some documentation improvements.
Contributors
Clayton Smith [email protected]
Michael Dickens [email protected]
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 comment
Vector-Optimized Library of Kernels (VOLK)
VOLK is the Vector-Optimized Library of Kernels. It is a free 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 that is optimized for a variety of platforms
Vector-Optimized Library of Kernels (VOLK)
<p>Hi everyone!</p>
<p>This is the VOLK v3.1.1 release! We want to thank all contributors. This release wouldn't have been possible without them.</p>
<p>This is a maintenance release to fix subtle bugs in many areas and to improve our tests where possible. All in all, our CI is more stable now and catches more errors.</p>
<h3>Contributors</h3>
<p>Clayton Smith <a href="mailto:[email protected]">[email protected]</a>
Johannes Demel <a href="mailto:[email protected]">[email protected]</a>, <a href="mailto:[email protected]">[email protected]</a>
Kenji Rikitake <a href="mailto:[email protected]">[email protected]</a>
Philip Balister <a href="mailto:[email protected]">[email protected]</a></p>
<h3>Changes</h3>
<ul>
<li><p>CI fixes</p>
<ul>
<li>Allow for rounding error in float-to-int conversions</li>
<li>Allow for rounding error in <code>volk_32fc_s32f_magnitude_16i</code></li>
<li>Allow for rounding error in float-to-int interleave</li>
<li>Add missing <code>volk_16_byteswap_u_orc</code> to puppet</li>
<li>Fix 64-bit integer testing</li>
<li>Build and test neonv7 protokernels on armv7</li>
</ul>
</li>
<li><p>kernels</p>
<ul>
<li>Remove broken sse32 kernels</li>
<li>Fix flaky <code>fm_detect</code> test</li>
<li>Fix flaky <code>mod_range</code> test</li>
<li>Remove unnecessary volatiles from <code>volk_32fc_s32f_magnitude_16i</code></li>
<li>Remove SSE protokernels written in assembly</li>
<li>Remove inline assembler from <code>volk_32fc_convert_16ic_neon</code></li>
<li>Use bit shifts in generic and <code>byte_shuffle</code> reverse</li>
<li>Remove disabled SSE4.1 dot product</li>
<li>Fix <code>conv_k7_r2</code> kernel and puppet</li>
<li>Remove unused argument from renormalize</li>
<li>Align types in ORC function signatures</li>
<li>Uncomment AVX2 implementation</li>
<li>Renormalize in every iteration on AVX2</li>
<li>Remove extraneous permutations</li>
<li>Compute the minimum over both register lanes</li>
<li><code>volk_32fc_s32f_atan2_32f</code>: Add NaN tests for avx2 and avx2fma code</li>
</ul>
</li>
<li><p>fixes</p>
<ul>
<li>Express version information in decimal</li>
<li>Remove <code>__VOLK_VOLATILE</code></li>
<li>Remove references to simdmath library</li>
<li>cmake: Switch to GNUInstallDirs</li>
<li>fprintf: Remove fprintf statements from <code>volk_malloc</code></li>
<li>release: Prepare release with updated files</li>
<li>Get the sse2neon.h file to a git submodule to avoid random copies.</li>
</ul>
</li>
</ul>
Vector-Optimized Library of Kernels (VOLK)
<p>Hi everyone!</p>
<p>This is the VOLK v3.1.2 release! We want to thank all contributors.
This release wouldn't have been possible without them.</p>
<p>The last maintenance release revealed issues in areas that are difficult to test.
While the changes to the library should be minimal, usability should be improved.
Most notably, we build and deploy <a href="https://www.libvolk.org/docs">the VOLK documentation</a>
automatically now.</p>
<h3>Contributors</h3>
<ul>
<li>Andrej Rode <a href="mailto:[email protected]">[email protected]</a></li>
<li>Clayton Smith <a href="mailto:[email protected]">[email protected]</a></li>
<li>Johannes Demel <a href="mailto:[email protected]">[email protected]</a>, <a href="mailto:[email protected]">[email protected]</a></li>
<li>Marcus Müller <a href="mailto:[email protected]">[email protected]</a></li>
<li>Rick Farina (Zero_Chaos) <a href="mailto:[email protected]">[email protected]</a></li>
</ul>
<h3>Changes</h3>
<ul>
<li>Documentation improvements, and automatically generate and publish<ul>
<li>docs: Add VOLK doc build to CI</li>
<li>docs: Add upload to GitHub actions</li>
<li>cpu_features: Update hints in README</li>
</ul>
</li>
<li>Remove sse2neon with a native NEON implementation<ul>
<li>Replace sse2neon with native NEON</li>
<li>Remove loop unrolling</li>
<li>Simplify Spiral-generated code</li>
</ul>
</li>
<li>Improve CI pipeline with new runner<ul>
<li>flyci: Test CI service with M2 instance</li>
<li>actions: Update GH Actions checkout</li>
</ul>
</li>
<li>Auto-format CMake files<ul>
<li>cmake: Add .cmake-format.py</li>
<li>cmake: Apply .cmake-format.py</li>
</ul>
</li>
<li>Release script fixes<ul>
<li>scripts/release: fix multi-concatenation of submodule tars</li>
<li>shellcheck fixes</li>
<li>bash negative exit codes are not portable, let's be positive</li>
</ul>
</li>
</ul>
