1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-06-29 16:33:15 +00:00
gnss-sdr/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
2016-01-20 18:16:09 +01:00
..
apps Range reduced to 4 bits in the volk short int test input to avoid 2016-01-14 18:56:22 +01:00
cmake some fixes 2016-01-13 10:22:06 +01:00
gen Updating volk_gnsssdr to the new volk scheme 2016-01-12 20:15:16 +01:00
include/volk_gnsssdr Merge branch 'new_volk_module' of git+ssh://github.com/gnss-sdr/gnss-sdr 2016-01-13 20:04:18 +01:00
kernels/volk_gnsssdr Sout out the aligned/unaligned thing in old kernels 2016-01-20 18:16:09 +01:00
lib Adding a puppet for the multiple correlator 2016-01-19 12:42:55 +01:00
python/volk_gnsssdr_modtool Updating volk_gnsssdr to the new volk scheme 2016-01-12 20:15:16 +01:00
tmpl Updating volk_gnsssdr to the new volk scheme 2016-01-12 20:15:16 +01:00
CMakeLists.txt Updating volk_gnsssdr to the new volk scheme 2016-01-12 20:15:16 +01:00
Doxyfile.in Updating volk_gnsssdr to the new volk scheme 2016-01-12 20:15:16 +01:00
DoxygenLayout.xml Updating volk_gnsssdr to the new volk scheme 2016-01-12 20:15:16 +01:00
README.txt Updating documentation 2016-01-16 14:11:12 +01:00
volk_gnsssdr.pc.in some linking fixes 2014-11-09 15:31:35 +01:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# This is VOLK_GNSSSDR, the Vector Optimized Library of Kernels for GNSS-SDR
#
#
# Copyright (C) 2010-2015 (see AUTHORS file for a list of contributors)
#
# This file is part of GNSS-SDR.
#
# GNSS-SDR is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#  
# GNSS-SDR is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.

This is a set of extra kernels that can be used in combination with VOLK's.
Please see http://libvolk.org for bug tracking, documentation, source code, and 
contact information about VOLK.

The boilerplate of this code was originally generated with volk_modtool, and then
some modifications were added to accomodate the specificities of these kernels.
This library contains kernels of hand-written SIMD code for different mathematical
operations, mainly with 8-bit and 16-bit data types, offering a generic, 
platform/architecture agnostic version that will run in all machines, plus versions 
for different SIMD instruction sets. Then, the application volk_gnsssdr_profile runs
all versions that your machine can execute and annotates which is the fastest, that 
will then be selected at runtime when executing GNSS-SDR. In this way, we can  address
at the same time portability (by creating executables that will run in nearly 
all processor architectures) and efficiency (by providing custom implementations 
specially designed to take advantage of the specific processor that is running the code).

These kernels have some specific features (i.e. saturation arithmetics) that are
aimed to Global Navigation Satellite Systems signal processing, but could make
them not suitable for its general use in other applications.


How to use VOLK_GNSSSDR:

It is automatically built and installed along with GNSS-SDR if it is not found by 
CMake on your system at configure time.

However, you can install and use VOLK_GNSSSDR kernels as you use VOLK's, independently 
from GNSS-SDR.

Build with cmake:

    $ mkdir build
    $ cd build
    $ cmake ..
    $ make
    $ make test
    $ sudo make install

That's it!

Before its first use, please execute volk_gnsssdr_profile to let the system know which 
is the fastest available implementation. This only has to be done once:

    $ volk_gnsssdr_profile
    
From now on, GNSS-SDR (and any other program of your own that makes use of VOLK_GNSSSDR) 
will benefit from the acceleration provided by SIMD instructions.


VOLK_GNSSSDR was originally created by Andres Cecilia Luque in the framework of the 
Summer Of Code In Space (SOCIS 2014) program organized by the European Space Agency.