{"record":{"id":"7aba66bc71a6a46d","repo":"tracel-ai/burn","slug":"not-yet-supported","errorCode":null,"errorMessage":"Not yet supported","messagePattern":"Not yet supported","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/burn-cubecl-fusion/src/base.rs","lineNumber":113,"sourceCode":"        // Only the block scale is threaded through below; a two-level scheme's per-tensor scale\n        // would be silently dropped, so refuse rather than build a handle short one factor.\n        assert!(\n            global_scale_dtype(&scheme).is_none(),\n            \"fused kernels don't yet support a two-level scheme's per-tensor scale\"\n        );\n        let mut handle = self.handle.clone();\n        handle.offset_start = Some(qparams.scales.offset_start as u64);\n        handle.offset_end = Some(qparams.scales.offset_end as u64);\n\n        Some(Self {\n            client: self.client.clone(),\n            handle,\n            device: self.device.clone(),\n            dtype: match scheme.scale_dtype() {\n                ScaleDtype::F32 => DType::F32,\n                ScaleDtype::F16 => DType::F16,\n                ScaleDtype::BF16 => DType::BF16,\n                ScaleDtype::UE8M0 | ScaleDtype::UE4M3 => unimplemented!(\"Not yet supported\"),\n            },\n            strides: qparams.scales.metadata.strides().clone(),\n            qparams: None,\n        })\n    }\n}\n\npub(crate) fn strides_dyn_rank(shape: &[usize]) -> Strides {\n    let mut strides = strides![0; shape.len()];\n\n    let mut current = 1;\n    shape.iter().enumerate().rev().for_each(|(index, val)| {\n        strides[index] = current;\n        current *= val;\n    });\n\n    strides\n}","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/tracel-ai/burn/blob/d16f7ba2ed0d41408189384044cc886fb4c8f957/crates/burn-cubecl-fusion/src/base.rs#L95-L131","documentation":"In crates/burn-cubecl-fusion/src/base.rs, tensor metadata construction maps `ScaleDtype` to Burn `DType`; `UE8M0` and `UE4M3` scale dtypes hit `unimplemented!(\"Not yet supported\")` because microscaling FP8 scale formats are not yet wired into the fusion backend.","triggerScenarios":"Constructing a fused quantized tensor handle whose quantization scheme uses `ScaleDtype::UE8M0` or `ScaleDtype::UE4M3` (mxFP8-style block scales).","commonSituations":"Running quantized (microscaling) models through the CubeCL fusion backend; exporting/initializing quantized weights with FP8 block-scale formats on supported hardware.","solutions":["Use a supported scale dtype (`ScaleDtype::F32`, `F16`, or `BF16`) in the quantization scheme.","Avoid the fusion backend for quantized tensors with UE8M0/UE4M3 scales; use a non-fused path.","Upgrade to a Burn/CubeCL version that implements the microscaling scale dtype mapping."],"exampleFix":"// before\nlet scheme = QuantScheme::new(...).with_scale_dtype(ScaleDtype::UE8M0); // panics in base.rs metadata build\n\n// after\nlet scheme = QuantScheme::new(...).with_scale_dtype(ScaleDtype::F32); // supported","handlingStrategy":"validation","validationCode":"fn is_supported_scale_dtype(s: &ScaleDtype) -> bool {\n    matches!(s, ScaleDtype::F32 | ScaleDtype::F16 | ScaleDtype::BF16)\n}\nassert!(is_supported_scale_dtype(&scheme.scale_dtype()), \"use F32/F16/BF16 scale dtype\");","typeGuard":"fn is_mx_scale_dtype(s: &ScaleDtype) -> bool {\n    matches!(s, ScaleDtype::UE8M0 | ScaleDtype::UE4M3)\n}","tryCatchPattern":null,"preventionTips":["Configure quantization schemes with F32/F16/BF16 scale dtypes only.","Check the fusion backend's supported scale dtypes before enabling fused quantized kernels.","Add a startup assertion on the quantization scheme's scale dtype."],"tags":["rust","quantization","dtype","fusion","cubecl"],"backgroundTag":"dtype-not-supported","analyzedSha":"d16f7ba2ed0d41408189384044cc886fb4c8f957","analyzedAt":"2026-09-05T13:19:14.260Z","contentChangedAt":"2026-09-05T13:19:14.260Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}