Using Tiberius v2.0.6 on AMD GPUs

Using Tiberius v2.0.6 on AMD GPUs

Tiberius is a deep learning-based ab initio gene structure prediction tool that end-to-end integrates convolutional and long short-term memory layers with a differentiable HMM layer. It can be used to predict gene structures from genomic sequences only (ab initio), while matching the accuracy of tools that use extrinsic evidence.

Example job script

#!/bin/bash -l #SBATCH -A ${PAWSEY_PROJECT}-gpu #SBATCH --nodes=1 #SBATCH --partition=gpu #SBATCH --time=1:00:00 #SBATCH --gres=gpu:1 # Load required module module load singularity/3.11.4-nompi # Example command srun -N 1 -n 1 -c 8 --gres=gpu:1 --gpus-per-task=1 \ singularity exec docker://quay.io/pawsey/tiberius:v2.0.6_rocm7.0.2 \ tiberius \ --genome $MYSCRATCH/Tiberius/test_data/Panthera_pardus/inp/genome.fa \ --model_cfg mammalia_softmasking_v2 \ --out test.gtf \ --batch_size 32 \ --seq_len 259992

 

Important notes:

  • The batch_size 32 and seq_len 259992 make the best use of the GPU memory, and provide a 32% speedup compared to the default settings.

  • Each Tiberius process can only use one GPU at a time, so you want to always set --gres=gpu:1 --gpus-per-task=1. To be very specific, Tiberius is actually using one GCD per GPU.

  • Consider downloading the container ahead of time so you’re not wasting expensive GPU time pulling the container.