Header-only auto-vectorization (av) library for primitive arithmetic operations over arrays.
The goal of the project is to provide the best arithmetic kernels for the given architecture.
Library is auto-generated with the help of cmake building system.
It can be included to the destination project simply by adding include_sudirectory(./thirdparty/av)
.
- Doesn't contain cpp files
- Performs auto adjustment during cmake build
- Provides a way to perform specialization against user-defined function
kernel
- an elementary arithmetic operation, hascore
template structure and get_label() functiontest_function
- user defined structure with fixed interface containing functioncompute
and structureinput_data
.compute
can be built using one or morekernels
.benchmark
- automatically generated set ofkernel_tests
, one for each specifickernel
.kernel_tests
- a set oftest_functions
built using a specialized version of kernels, one for each specifickernel_parameter
.kernel_parameter
- a value which specializes kernel by characteristics depending on the hardware properties.