tracel-ai/burn · error

todo!("Quantization not supported yet")

Error message

todo!("Quantization not supported yet")

What it means

The fusion backend's tr_execute (crates/burn-fusion/src/ops/transaction.rs:21) resolves each read tensor to its client representation, but for read_qfloats it maps every element to todo!("Quantization not supported yet"). The fusion server has no quantized-tensor handling, so any fused transaction containing a quantized read panics.

Source

Thrown at crates/burn-fusion/src/ops/transaction.rs:21

    ops::{TransactionOps, TransactionPrimitive},
};

use crate::{Fusion, FusionBackend};

impl<B: FusionBackend> TransactionOps<Fusion<B>> for Fusion<B> {
    async fn tr_execute(
        transaction: TransactionPrimitive<Self>,
    ) -> Result<burn_backend::ops::TransactionPrimitiveData, ExecutionError> {
        B::tr_execute(TransactionPrimitive::new(
            transaction
                .read_floats
                .into_iter()
                .map(|t| t.client.clone().resolve_tensor_float::<B>(t))
                .collect(),
            transaction
                .read_qfloats
                .into_iter()
                .map(|_t| todo!("Quantization not supported yet"))
                .collect(),
            transaction
                .read_ints
                .into_iter()
                .map(|t| t.client.clone().resolve_tensor_int::<B>(t))
                .collect(),
            transaction
                .read_bools
                .into_iter()
                .map(|t| t.client.clone().resolve_tensor_bool::<B>(t))
                .collect(),
        ))
        .await
    }
}

View on GitHub (pinned to d16f7ba2ed)

Solutions

  1. Do not include quantized tensors in fusion transactions; convert them to float tensors (dequantize) before building the transaction.
  2. Perform quantized reads individually, outside of TransactionPrimitive.
  3. Check the fusion backend's feature matrix for quantization support before adopting quantized ops.
Defensive patterns

Strategy: validation

Validate before calling

assert!(transaction.read_qfloats.is_empty(), "fusion backend does not support quantized reads in transactions");

Prevention

When it happens

Trigger: Executing a transaction (tr_execute) on the fusion backend where transaction.read_qfloats contains at least one QuantizedTensor handle.

Common situations: Running a model with quantized weights/layers under the fusion (JIT) backend and batching reads via a transaction; quantization works through normal ops but not the fused transaction path.

Related errors


AI-assisted analysis of tracel-ai/burn@d16f7ba2ed (2026-09-05). Data as JSON: /api/errors/460dd0d378116128. Report an issue: GitHub.