Huxelerate Hugenomic GPU Library ================================ Huxelerate Hugenomic GPU Library provides a suite of accelerated functions that solves the most common computational bottlenecks in the genomic domain. The accelerated functions can be integrated in your data analysis application allowing to gain order of magnitute in performance and drastically cut execution time and development effort: - You call them in your code as you would do with any function, with no hardware expertise - We do the heavy lifting by automatically running them on domain specific architectures This documentation will guide you in using the Hugenomic GPU Library. System requirements ------------------- Currently, the Hugenomic GPU Library is supported on Linux systems only with the following prerequisites: - CUDA-capable GPU with compute capability of 3.7 or higher - CUDA 11.3 runtime and libraries or higher - gcc 7.5.0 or higher Quick Start ------------ To quick start using the Hugenomic GPU library, you can start from an example in the examples folder. Otherwise, if you wish to build your own C++ application, you only need to include the proper header files from the ``include`` folder of the Hugenomic GPU library inside your C++ application. As an example you can use the following code to include the ksw2 accelerated function: .. code-block:: C #include "ksw2.hpp" At this point you are ready to compile your code. During the compilation process you need to: - link the pthread library - link the cudart library - link the hugenomicgpu library - add the include path for the Hugenomic GPU library - Use C++14 standard or higher Notice that there are different flavors of the hugenomicgpu library. Each flavor is compiled for a given CUDA runtime and for GPUs with specific compute capabilities. As an example ``lib/linux/cuda_11.3/sm_86/libhugenomicgpu.a`` refers to the hugenomic GPU library compiled using CUDA runtime 11.3 for GPUs with compute capability 8.6 or higher. When compiling your application you can link against the library flavor that best fits your system configuration. A basic compilation command is the following: .. code-block:: bash g++ -o executable_name.exe source_code.cpp -O3 -std=c++14 -Ipath_to_hugenomic_gpu_library/include/ -Lpath_to_hugenomic_library/lib/linux/cuda_11.3/sm_86 -Lpath_to_cuda_lib64 -pthread -lcudart -lhugenomicgpu On the first execution of the application, you will need to activate a node-locked license for your machine. To do so, simply set the environment variable ``HUGENOMIC_GPU_LICENSE_KEY`` with the license key provided by Huxelerate: .. code-block:: bash export HUGENOMIC_GPU_LICENSE_KEY= Then simply run your application. Accelerate functions -------------------- .. toctree:: :maxdepth: 1 ksw2