Searching Biological Evolution at Scale with MMseqs2 on AMD

Source: AMD•

Searching Biological Evolution at Scale with MMseqs2 on AMD

AMD Instinct GPUs accelerate protein sequence search and MSA generation with MMseqs2 and HIPSW++, reaching 97 TCUPS on eight MI325X GPUs.

Protein structure prediction starts with evolution, searching for the signals that encode structure.

Before an AI model predicts a fold, annotates a gene, or guides protein design, it often needs to identify related protein sequences. At today’s scale, that can mean searching databases containing hundreds of millions of proteins and evaluating billions of candidate comparisons.

These searches are used to build multiple sequence alignments (MSAs), which capture evolutionary signals such as conserved positions and coordinated mutations. Their depth and diversity directly affect the information available to downstream models. As biological databases continue to grow, sequence search increasingly becomes part of the systems challenge behind biomolecular modeling.

To accelerate this critical stage of the workflow on AMD platforms, we developed two complementary open-source GPU paths: HIPSW++ for exact Smith–Waterman alignment scoring, and a ROCm-enabled MMseqs2-GPU for high-throughput homology search and MSA generation.

Together, they bring evolutionary sequence search onto AMD GPUs, allowing sequence search and downstream protein-folding workloads to run on the same infrastructure.

Evolutionary Computation Before the AI Prediction

Sequence search relies on computations that are difficult to parallelize efficiently. Smith–Waterman, for example, uses dynamic programming to find optimal local alignments between sequences. The difficulty comes from data dependencies: each cell in the alignment matrix depends on values immediately above, to the left, and diagonally above it, making the computation appear inherently sequential.

Fig. 1: Data dependency in the Smith–Waterman algorithm using two protein sequences of length six.

However, cells along the same anti-diagonal are independent once the preceding diagonals are complete (Fig. 1). This enables wavefront parallelism, allowing many GPU threads to advance through the matrix concurrently while preserving the exact algorithm.

HIPSW++: Exact Alignment Redesigned for AMD GPUs

HIPSW++ accelerates exact Smith–Waterman alignment with affine gap penalties. Rather than simply translating a CPU implementation to the GPU, it restructures the computation around the AMD GPU architecture.

A wavefront of threads cooperatively processes each alignment matrix. Intermediate values remain in thread-local registers wherever possible, reducing memory traffic. Neighboring threads exchange boundary values through wavefront shuffle instructions, while substitution matrices are staged in Local Data Share (LDS) with access patterns designed to minimize bank conflicts (Fig. 2).

This exposes two levels of parallelism:

  • Within an alignment, threads work together across the dynamic-programming matrix.
  • Across alignments, independent sequence pairs are distributed among many wavefronts.

Together, these techniques keep both the compute units and the memory system productively occupied.

Fig. 2: HIPSW++ maps a tiled dynamic-programming matrix across a GPU wavefront, retaining most state in registers and using shuffle operations for cross-thread communication.

MMseqs2: Eliminate Unlikely Matches Early

Running full Smith–Waterman alignment against every sequence in a database containing hundreds of millions of proteins would be prohibitively expensive. MMseqs2 instead uses a cascade of filters that discards unlikely matches before they reach more expensive alignment stages. This filtering is particularly important for homology search and MSA generation used by protein structure prediction workflows.

Our ROCm-enabled MMseqs2 implementation accelerates the gapless alignment filter. Compared with Smith–Waterman, its dependency structure is simpler: each cell depends only on its upper-left diagonal neighbor (Fig. 3).

That simpler dependency exposes substantially more parallelism. Many cells across a row can be evaluated concurrently, allowing the matrix to be processed row by row on the GPU. The ROCm-enabled implementation combines this row-wise execution with a matrix-partitioning approach similar to HIPSW++. The implementation also supports multi-GPU execution, splitting the utilized sequence database evenly across various AMD GPUs on the same server.

Fig. 3: Data dependencies and tiled layout of the dynamic-programming matrix for the MMseqs2 gapless filter on the GPU.

Scaling MMseqs2 Across AMD Instinct GPUs

The value of accelerating sequence search extends beyond an individual algorithm. In protein-folding pipelines, MSA generation sits upstream of the AI model and can lie directly on the critical path for throughput. Running this search natively on the GPU enables collocating it on the same hardware used for folding and consolidates the pipeline onto a single accelerator. This simplifies deployment, reduces data movement, and removes separate compute paths for search and folding while preserving the co-evolutionary signal the downstream models rely on.

We compare MMSeqs2 scanning the Uniref50 database with a single query sequence on one, two, four, and eight AMD Instinct MI325X, MI300X, and NVIDIA H100 GPUs. CPU-based MMseqs2 and JackHMMER executed on an EPYC 9684X (96 cores / 192 threads) are also shown for context (Fig. 4).

Fig. 4: MMseqs2 performance when scanning the UniRef50 across AMD Instinct MI325X, MI300X and NVIDIA H100 GPU systems, alongside CPU-based MMseqs2 and JackHMMER measurements.

In this testing, ROCm-enabled MMseqs2 scaled with each additional GPU, reaching up to 97 TCUPS on eight MI325X GPUs. Across every tested 1-, 2-, 4-, and 8-GPU configuration, MI325X exceeded the corresponding H100 result, while MI300X was comparable to or higher than H100. The GPU implementations also delivered substantially higher throughput than CPU-based MMseqs2 and JackHMMER. This multi-GPU scaling gives researchers a practical path to accelerate increasingly large sequence searches without extensive code changes.

Accelerating the Whole Path to Biological Insight

AI is changing how we predict protein structures and design biological molecules.

But the AI model is only one part of the pipeline.

Evolutionary search provides important biological context before structure prediction begins. HIPSW++ and ROCm-enabled MMseqs2-GPU bring two important sequence-search workloads to AMD Instinct GPUs through open-source implementations designed for performance and scale.

As biological datasets continue to grow, the ability to search evolution at scale will increasingly determine how quickly AI can turn sequence into biological insight.

Explore the MMseqs2 repository for GPU-accelerated homology search and MSA generation on AMD GPUs, and HIPSW++ for GPU-accelerated Smith–Waterman alignment.

Footnotes

[1] Based on internal testing conducted September 21, 2026. Software under test: MMseqs2 ROCm (commit d401e78, https://github.com/soedinglab/MMseqs2/commit/d401e78c2d18a822cdb1527d7464a043f6035a15), built with CMake flag ENABLE_HIP=1; MMseqs2 CUDA, precompiled binary version 73e15d1e4d870c5e0019afd27c1bdfe969f23c35 (https://github.com/soedinglab/MMseqs2/releases); HMMER v3.4 (http://eddylab.org/software/hmmer/hmmer.tar.gz), built with default options. Workload: 1,024 concatenated repetitions of the third sequence from QUERY.fasta (https://github.com/soedinglab/MMseqs2/blob/master/examples/QUERY.fasta) aligned against the UniRef50 database (release: March 2025; size: ~20 GB). Runtime options: --gpu 1 for MMseqs2 GPU tests; --prefilter-mode 1 for the MMseqs2 multicore CPU test; HIP_VISIBLE_DEVICES / CUDA_VISIBLE_DEVICES used to select 1, 2, 4, and 8 GPUs. Measurement conditions: data loading, initialization, and preprocessing time are included; NUMA control was used to limit multicore CPU execution to a single socket; database build time is excluded; reported values represent the best of three runs. Test systems: MI300X system (used for MI300X and multicore CPU benchmarks) — 8× AMD Instinct MI300X (OAM, 192 GB HBM3), AMD EPYC 9684X (96 cores / 192 threads), 256 GB RAM, Rocky Linux 9.6 (Blue Onyx), Linux 5.14.0-611.54.1.el9_7.x86_64, amdgpu 6.16.13, ROCm 7.2.0; MI325X system — 8× AMD Instinct MI325X (OAM, 192 GB HBM3), 8× AMD EPYC 9755 (128 cores / 128 threads), 2.8 TiB RAM, Rocky Linux 9.1 (Blue Onyx), Linux 5.14.0-611.54.1.el9_7.x86_64, amdgpu 6.16.13, ROCm 7.2.0; H100 system — 8× NVIDIA H100 (SXM, 80 GB HBM3), NVIDIA Grace 72 Arm Neoverse V2 (72 cores / 72 threads), 960 GB RAM, AlmaLinux 8.10 (Cerulean Leopard), Linux 4.18.0-553.100.1.el8_10.x86_64, NVIDIA driver 590.48.01, CUDA 13.4. System configurations may vary; results may differ.

What this article says