> This page is for Boltz-2, version 1.9.0.
> For other versions, use one of these documentation indexes:
> - 1.10.0 (Latest) (default): https://docs.nvidia.com/nim/bionemo/boltz2/1.10.0/llms.txt
> - 1.9.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.9.0/llms.txt
> - 1.8.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.8.0/llms.txt
> - 1.7.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.7.0/llms.txt
> - 1.6.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.6.0/llms.txt
> - 1.5.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.5.0/llms.txt
> - 1.4.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.4.0/llms.txt
> - 1.3.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.3.0/llms.txt
> - 1.2.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.2.0/llms.txt
> - 1.1.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.1.0/llms.txt
> - 1.0.0: https://docs.nvidia.com/nim/bionemo/boltz2/1.0.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nim/bionemo/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nim/bionemo/_mcp/server.

## Release 1.8.0

### Summary

This release replaces the separate TensorRT and PyTorch backend options with a unified optimized backend built on new custom kernels, improves inference performance and supported sequence lengths, and adds affinity embedding outputs for binding affinity prediction.

### Key Features

* **Unified optimized backend**: Removed the previous separate TensorRT (`trt`) and PyTorch (`torch`) backend selection. The NIM now uses a single new optimized backend that automatically selects the best execution path for each request.

* **Automatic backend selection**:
  * Fully supports the Boltz2 OSS model
  * Short sequences (≤768 residues): TensorRT engines
  * Medium and long sequences (>768 residues): PyTorch backend with new optimized kernels

* **New optimized kernel backend includes**:

* Fused Adaptive Layer Norm

* DualGemm sm80 (two variants)

* Gated sigmoid sm80

* FAv2/v3 TriangleAttent/AttentionPairBias

* Pre-computed masks, with masks left-aligned into new kernels for dual GEMM and attention operations

* Pre-computed buffers for Pairformer/DiT

* **Performance increased up to 1.7x on H100, and sequence length limits increased across supported GPUs**:

  | GPU family                  | Previous max sequence length | New max sequence length | Increase |
  | --------------------------- | ---------------------------: | ----------------------: | -------: |
  | A100 / H100                 |                         2048 |                    2560 |      25% |
  | L40S / A6000 / RTX 6000 Ada |                         1536 |                    1665 |     8.3% |
  | B200 / B300 (Blackwell)     |                         2048 |                    3072 |      50% |

  Actual maximum supported sequence length may exceed the values shown above, depending on available GPU VRAM.

* **Affinity embedding outputs**: Boltz2Affinity now exports embedding vectors as outputs. The new ligand-level request flag `output_affinity_embedding` defaults to `false` and requires `predict_affinity=true` on the same ligand. When enabled, the ligand's entry under `affinities` includes `affinity_embedding`, `model_1_affinity_embedding`, and `model_2_affinity_embedding` (2D number arrays or `null`). Each embedding vector has **384 dimensions**.

### Removed Configuration

The following environment variables are no longer supported and have been removed:

* `NIM_BOLTZ_ENABLE_DIFFUSION_TF32`
* `NIM_BOLTZ_STRUCTURE_OPTIMIZED_BACKEND`
* `NIM_BOLTZ_AFFINITY_OPTIMIZED_BACKEND`

### Notes

* For best performance with the unified optimized backend, run a **warm-up** pass with representative test-case sequences before measuring latency/throughput.

* The first request in a given sequence-length range can be slower because of **JIT compilation** and runtime kernel specialization. As a result, you may observe a one-time startup latency when entering a new range (for example, short, medium, or long sequences). After that initial compilation for the range, subsequent requests in the same range should show improved performance.