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.

Accelerate functions