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:
#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:
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:
export HUGENOMIC_GPU_LICENSE_KEY=<PROVIDED_LICENSE_KEY>
Then simply run your application.