blob: 2af3e71f1697e4efd3f7355d9957d48e5051bf7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
VOLK is the Vector-Optimized Library of Kernels. It is a free library,
currently offered under the GPLv3, 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.
VOLK was introduced as a part of GNU Radio in late 2010 based on code released
in the public domain. In 2015 it was released as an independent library for
use by a wider audience.
|