.\" Manpage for volk_gnsssdr_profile
.\" SPDX-License-Identifier: GPL-3.0-or-later
.\" SPDX-FileCopyrightText: Carles Fernandez-Prades <carles.fernandez(at)cttc.es>
.\" Contact carles.fernandez@cttc.es to correct errors or typos.
.TH volk_gnsssdr_profile 1 "1 Apr 2025" "0.0.20" "volk_gnsssdr_profile man page"
.SH NAME
\fBvolk_gnsssdr_profile\fR \- Profiler application for libvolk_gnsssdr functions.
.SH SYNOPSIS
\fBvolk_gnsssdr_profile\fR [OPTION]
.SH DESCRIPTION
The Vector-Optimized Library of Kernels of GNSS-SDR (VOLK_GNSSSDR) is a software
library that provides developers with an interface to use Single Input -
Multiple Data (SIMD) instructions, which are of special interest for operations
that are in the receiver's critical path of the processing load.
.TP
Processors providing SIMD instruction sets compute with multiple processing
elements that perform the same operation on multiple data points simultaneously,
thus exploiting data-level parallelism, an can be found in most modern desktop
and laptop personal computers. In a nutshell, VOLK_GNSSSDR implements in
assembly language optimized versions of computationally-intensive operations for
different processor architectures that are commonly found in modern computers.
In order to use the most optimized version for the specific processor(s) of the
host machine running the software receiver (that is, the implementation than
runs the fastest).
.TP
\fBvolk_gnsssdr_profile\fR is a program that tests all known VOLK_GNSSSDR
kernels (that is, basic processing components like adders, multipliers,
correlators, and much more) for each architecture supported by the host machine,
measuring their performance. When finished, the profiler writes to
$HOME/.volk_gnsssdr/volk_gnsssdr_config the best architecture for each
VOLK_GSSSDR function. This file is read when using a function to know the best
version to execute.
.SH OPTIONS
\fBvolk_gnsssdr_profile\fR takes the following options:
.TP
\fB-h\fR [ \fB--help\fR ] Print help message.
.TP
\fB-b\fR [ \fB--benchmark\fR ] [ \fB=arg(=1)\fR ] (\fB=0\fR) Run all kernels (benchmark mode).
.TP
\fB-t\fR [ \fB--tol\fR ] <arg> (\fB=9.99999997e-07\fR) Set the default error tolerance for tests.
.TP
\fB-v\fR [ \fB--vlen\fR ] <arg> (\fB=8111\fR) Set the default vector length for tests.
.TP
\fB-i\fR [ \fB--iter\fR ] <arg> (\fB=1987\fR) Set the default number of test iterations per kernel.
.TP
\fB-R\fR [ \fB--tests-regex\fR ] <arg> Run tests matching regular expression.
.TP
\fB-u\fR [ \fB--update\fR ] [ \fB=arg(=1)\fR ] (\fB=0\fR) Run only kernels missing from config; use -R to further restrict the candidates.
.TP
\fB-n\fR [ \fB--dry-run\fR ] [ \fB=arg(=1)\fR ] (\fB=0\fR) Dry run. Respect other options, but do not write to file.
.TP
\fB-j\fR [ \fB--json\fR ] \fI<arg>\fR JSON output file.
.SH SEE ALSO
.BR gnss-sdr (1)
\.TP
Check https://gnss\-sdr.org for more information.
.SH HISTORY
This library was originally developed by Andres Cecilia Luque in the framework
of the Summer of Code in Space program (SOCIS 2014) by the European Space Agency
(ESA), and then integrated into \fBgnss-sdr\fR. This software is based on the
VOLK library https://www.libvolk.org/
.SH BUGS
No known bugs.
.SH AUTHOR
Andres Cecilia Luque (a.cecilia.luque@gmail.com)
\.TP
Carles Fernandez-Prades (carles.fernandez@cttc.es)
