# Why YuE2Pipeline Disables cuDNN Benchmarking and Forces Highest Float32 Precision for BF16 Sampling

> Discover why YuE2Pipeline disables cuDNN benchmarking and enforces float32 precision. Learn how this ensures reproducible BF16 sampling and bit-exact arithmetic for classifier-free guidance.

- Repository: [multimodal-art-projection/YuE](https://github.com/multimodal-art-projection/YuE)
- Tags: internals
- Published: 2026-09-14

---

**`YuE2Pipeline.__init__` explicitly disables cuDNN auto-tuning and forces highest-precision float32 matrix operations to eliminate nondeterministic behavior and precision loss, ensuring that BF16 logits up-casted to float32 for classifier-free guidance maintain bit-exact arithmetic and reproducible sampling distributions.**

The `YuE2Pipeline` class in the `multimodal-art-projection/YuE` repository implements a strict deterministic configuration regime that directly impacts BF16 sampling stability. These initialization settings prevent PyTorch from selecting optimized but nondeterministic convolution algorithms and disable reduced-precision shortcuts like TF32, which is essential for maintaining exact token probabilities when working with B-float-16 logits.

## The Deterministic Configuration Stack in [`pipeline.py`](https://github.com/multimodal-art-projection/YuE/blob/main/pipeline.py)

Inside [`src/yue2/pipeline.py`](https://github.com/multimodal-art-projection/YuE/blob/main/src/yue2/pipeline.py), the `YuE2Pipeline.__init__` method (lines 39-44) configures six critical PyTorch backend flags before model execution begins:

### Disabling cuDNN Auto-Tuning

The pipeline disables cuDNN benchmarking to prevent runtime algorithm selection variations:

- **`torch.backends.cudnn.benchmark = False`** (line 39): Prevents the cuDNN auto-tuner from selecting convolution algorithms based on heuristic benchmarks. While benchmarking improves throughput, the selected algorithm can vary across runs or hardware, introducing nondeterminism into the hidden states used for sampling.
- **`torch.backends.cudnn.deterministic = True`** (line 40): Forces cuDNN to use only deterministic kernels, eliminating randomness from non-deterministic algorithm choices.

### Eliminating TF32 and Reduced-Precision Paths

The code explicitly blocks precision-reducing optimizations that would compromise float32 accuracy:

- **`torch.backends.cuda.matmul.allow_tf32 = False`** (line 41)
- **`torch.backends.cudnn.allow_tf32 = False`** (line 42)
- **`torch.backends.cuda.matmul.allow_fp16_reduced_precision_reduction = False`** (line 43)

These flags prevent NVIDIA GPUs from silently substituting TensorFloat-32 (TF32) or reduced-precision FP16 reduction paths for speed. The final configuration **`torch.set_float32_matmul_precision("highest")`** (line 44) instructs PyTorch to avoid tensor core implementations that would reduce float32 accuracy.

## Impact on BF16 Sampling in [`sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/sampling.py)

The precision safeguards directly support the historical BF16 sampling path implemented in [`src/yue2/sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/src/yue2/sampling.py). This connection is critical for classifier-free guidance (CFG) arithmetic stability.

### Historical BF16 Sampling Logic

As noted in the comment at line 26 of [`sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/sampling.py), the pipeline handles the distinction between vLLM's expected FP32 logits and the "historical" BF16 mode. The critical dtype decision appears at line 28:

```python
scores = logits.clone() if legacy_off else logits.float().clone()

```

When operating in default BF16 mode (`legacy_off=False`), the code **up-casts BF16 logits to float32** before applying CFG subtraction and multiplication operations.

### Preserving BF16 Arithmetic Accuracy

The pipeline's strict float32 precision settings ensure that once BF16 values are up-casted, subsequent matrix multiplications retain full precision. If TF32 or reduced-precision FP16 pathways remained enabled, the up-casted BF16 values could undergo silent precision reduction during CFG arithmetic, altering the token probability distribution and breaking reproducibility. This deterministic environment is also required by [`src/yue2/cuda_graph.py`](https://github.com/multimodal-art-projection/YuE/blob/main/src/yue2/cuda_graph.py), which handles CUDA graph execution for the VLLM backend.

## Practical Configuration Examples

The following examples demonstrate how the pipeline's deterministic settings interact with BF16 sampling.

### Standard Deterministic BF16 Generation

When instantiating `YuE2Pipeline`, the deterministic flags are applied automatically:

```python
from yue2 import YuE2Pipeline

# Loads with cudnn.benchmark=False and highest float32 precision enforced

with YuE2Pipeline.from_pretrained(progress=False) as pipe:
    # BF16 logits are automatically up-cast to float32 with preserved precision

    result = pipe(style="pop", lyrics="Hello world")
    print("Generated audio shape:", result.audio.shape)

```

### Risks of Overriding Precision Settings

Disabling the pipeline's safeguards compromises BF16 sampling consistency:

```python
import torch
from yue2 import YuE2Pipeline

# WARNING: Re-enabling benchmark mode introduces nondeterminism

torch.backends.cudnn.benchmark = True
torch.backends.cudnn.deterministic = False

with YuE2Pipeline.from_pretrained(progress=False) as pipe:
    # cuDNN may select different algorithms, changing hidden states

    # TF32 may alter precision of BF16 up-cast values during CFG

    result = pipe(style="jazz", lyrics="Midnight jazz")

```

## Summary

- **`YuE2Pipeline.__init__`** in [`src/yue2/pipeline.py`](https://github.com/multimodal-art-projection/YuE/blob/main/src/yue2/pipeline.py) disables `cudnn.benchmark` and forces highest float32 matmul precision to eliminate nondeterministic convolution algorithms and precision loss.
- **Six PyTorch backend flags** collectively prevent TF32 usage and reduced-precision reduction paths that could silently alter numerical results during model execution.
- **BF16 sampling** in [`src/yue2/sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/src/yue2/sampling.py) up-casts BF16 logits to float32 for classifier-free guidance; the precision settings ensure this up-casting produces bit-exact, reproducible results.
- **Determinism** is prioritized over raw throughput to guarantee identical generation results across different GPU hardware and software runs.

## Frequently Asked Questions

### Why does disabling cuDNN benchmarking improve BF16 sampling reliability?

Disabling `cudnn.benchmark` prevents the cuDNN library from heuristically selecting different convolution algorithms based on input tensor sizes or hardware capabilities. While benchmarking improves raw performance, the algorithm selection can vary between runs, causing hidden state differences that propagate through to the BF16 sampling logits in [`sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/sampling.py). Fixed algorithms ensure identical computational paths every time, which is essential when the pipeline relies on precise CFG arithmetic with up-casted BF16 values.

### What happens if I enable TF32 while using YuE2Pipeline's BF16 sampling?

Enabling TF32 (`torch.backends.cuda.matmul.allow_tf32 = True`) allows NVIDIA GPUs to execute float32 matrix multiplications using reduced-precision tensor cores. When BF16 logits are up-cast to float32 in [`sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/sampling.py), TF32 would silently reduce the effective precision of these values during classifier-free guidance arithmetic. This can shift the token probability distribution away from the reference implementation, producing different audio outputs and breaking the bit-exact reproducibility the pipeline is designed to ensure.

### How does `torch.set_float32_matmul_precision("highest")` affect inference speed?

Setting the highest precision mode typically disables the use of NVIDIA tensor cores for float32 operations, falling back to standard CUDA cores or high-precision tensor core modes. This trade-off sacrifices some throughput—often resulting in 10-20% slower matrix multiplications compared to TF32 modes—to guarantee bit-exact reproducibility required for the BF16 sampling path's mathematical correctness and stable generation results.

### Where exactly does the BF16 to float32 conversion occur in the codebase?

The conversion logic resides in [`src/yue2/sampling.py`](https://github.com/multimodal-art-projection/YuE/blob/main/src/yue2/sampling.py) at line 28, where the code executes `logits.float().clone()` when the `legacy_off` parameter is False (the default setting). This up-casting occurs before classifier-free guidance computations, ensuring that the VLLM backend receives FP32 logits as expected while preserving the original BF16 training distribution through subsequent high-precision arithmetic operations configured by `YuE2Pipeline.__init__`.