VOLK 1.0 is available. This is the first release of VOLK as an independently tracked sub-project of GNU Radio.


VOLK has been tracked separately from GNU Radio since 2014 Dec 23. Contributors between the split and the initial release are



The test and profiler have significantly changed. The profiler supports run-time changes to vlen and iters to help kernel development and provide more flexibility on embedded systems. Additionally there is a new option to update an existing volk_profile results file with only new kernels which will save time when updating to newer versions of VOLK

The QA system creates a static list of kernels and test cases. The QA testing and profiler iterate over this static list rather than each source file keeping its own list. The QA also emits XML results to lib/.unittest/kernels.xml which is formatted similarly to JUnit results.


Modtool was updated to support the QA and profiler changes.


New proto-kernels:

  • 16ic_deinterleave_real_8i_neon
  • 16ic_s32f_deinterleave_32f_neon
  • fix preprocessor errors for some compilers on byteswap and popcount puppets

ORC was moved to the asm kernels directory.


The posix_memalign implementation of Volk_malloc now falls back to a standard malloc if alignment is 1.


Several build system and cmake changes have made it possible to build VOLK both independently with proper soname versions and in-tree for projects such as GNU Radio.

The static builds take advantage of cmake object libraries to speed up builds.

Finally, there are a number of changes to satisfy compiler warnings and make QA work on multiple machines.