VOLK Developer's Call December 2013


  • Progress with VOLK on ARM
  • QA issues
    • ARM failures.
    • misc (sum_of_poly)
  • New VOLK profiling tools
    • extending volk_profile with options´╗┐
    • data collection


A couple of mixed reports of failing kernels on ARM. Namely deinterleave and 32fc_magnitude with mixed success. Magnitude is off by 1 and appears that the tolerance given to PROFILE isn't propagating to the check correctly. The deinterleave was a typecast problem. Tom submitted fixes, but the bugs may still be alive.

Nathan also suspects that sum_of_poly may not be getting properly tested since passing. This came up while working on newer NEON kernels, which may have other QA issues as well.
Action item for Tom, Philip, and Nathan to schedule time on IRC to compare notes and code to resolve all of the above.

New profiling tools

Tim added a benchmark option to volk_profile to test all kernels available, including kernels where there is only a generic available. Nathan has an action item to add an option to run kernels by name.

stats.gnuradio.org is up and running. Likely a student project to clean up the interface.

Tim and Tom working on collecting CFLAGs from builds in GNU Radio to be saved along with gnuradio-config-info and a new volk-config-info. This along with /proc/cpuinfo and /proc/version provides a mostly complete view of a system. One missing bit is collecting actual clock speed of ARM processors and clock speeds across platforms. BOGOMIPS are reported in Linux for both Intel and ARM, but this is not available on OS X. Michael Dickens brought up code to manually test clock speed to be used across all platforms. Perhaps we write a function that we run regardless of platform to give us some indication of speed that we can use for comparison.

We want to make sure we capture as much information about the processor and platform as possible. Tell us about any missing information that might be useful.

New features in gnuradio-config-info and (a new tool) volk-config info to get compiler version and cflags used when building. volk-config-tool also reports the machines the library was built to include, all machines available on the current platform, and the machine volk will use when running.

Open Fora

Martin brought up kernels doing operations in place. There is no (known to members of call) restriction against this and it's probably possible to give the input and output argument the same pointer, but note that they will be aliased in the VOLK kernel.

A release is coming up in a few weeks. Nathan has an action item to push avx branch