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 32andseq_len 259992make 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.