This repository contains optimized versions of compute kernels used in genomics applications like GATK and HTSJDK. These kernels are optimized to run on Intel Architecture (AVX, AVX2, AVX-512, and multicore) under 64-bit Linux and Mac OSX.
Kernels included:
- PairHMM
- AVX and AVX-512 optimized versions of PairHMM used in GATK HaplotypeCaller and MuTect2.
- OpenMP support for multicore processors.
- Smith-Waterman
- AVX2 and AVX-512 optimized versions of Smith-Waterman used in GATK HaplotypeCaller and MuTect2.
- DEFLATE Compression/Decompression:
- Performance optimized Level 1 and 2 compression and decompression from Intel's ISA-L library.
- Performance optimized Level 3 through 9 compression from Intel's Open Source Technology Center zlib library.
GKL release binaries are built on CentOS 7, to enable running on most Linux distributions (see holy-build-box for a good discription of portability issues).
- Java JDK 8
- Git >= 2.5
- CMake >= 2.8.12.2
- GCC g++ >= 5.3.1
- GNU patch >= 2.6
- GNU libtool >= 2.2.6
- GNU automake >= 1.11.1
- Yasm >= 1.2.0
- zlib-devel >= 1.2.7
Run these commands to setup the build environment on CentOS:
sudo yum install -y java-1.8.0-openjdk-devel git cmake patch libtool automake yasm zlib-devel centos-release-scl
sudo yum install -y devtoolset-7-gcc-c++
source scl_source enable devtoolset-7
After build requirements are met, clone, and build :
git clone https://github.com/Intel-HLS/GKL.git
cd GKL
./gradlew build
For more details check build.sh
All code is licensed under the MIT License, except:
- PairHMM code from GATK is licensed under the BSD 3-Clause License.
- ISA-L code is licensed under the BSD 3-Clause License.
- Intel Open Source Technology Center zlib (otc_zlib) code is licensed under the Zlib License.
- zlib code is licensed under the Zlib License.