Originally published on libvolk.org

Hi everyone!

We have a new VOLK release! We are happy to announce VOLK v2.5.0! We want to thank all contributors. This release wouldn’t have been possible without them.

This release adds new kernel implementations and fixes. Some of these were longstanding PRs that could only be merged recently thanks to our switch from CLA to DCO.

Announcements

I would like to point out one upcoming change. After this release, we will rename our development branch to main as discussed in issue #461.

I’d like to point the community to this VOLK relicensing GREP. This is an ongoing effort to relicense VOLK under LGPLv3. We’re looking for people and organizations that are interested in leading this effort.

Contributors

Changes

  • 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
  • Compilers

    • MSVC
      • Fix MSVC builds
    • GCC
      • Fix segmentation fault when using GCC 8
    • MinGW
      • add support and test for MinGW/MSYS2
  • The README has received several improvements

  • Build

    • Fix python version detection
    • cmake: Check that ‘distutils’ is available
    • c11: Remove pre-C11 preprocessor instructions
  • CI

    • Add more CI to GitHub Actions
    • Remove redundant tests from TravisCI
    • Add non-x86 GitHub Actions
    • Update compiler names in CI
    • Disable fail-fast CI
    • Add more debug output to tests
  • Contributing

    • contributing: Add CONTRIBUTING.md and DCO.txt