MCPcopy Create free account
hub / github.com/evilsocket/cake / load_fp8_var_builder

Function load_fp8_var_builder

cake-core/src/utils/fp8.rs:138–157  ·  view source on GitHub ↗

Create a VarBuilder that transparently dequantizes FP8 weights. # Safety Inherits the mmap safety requirements from `MmapedSafetensors`.

(
    filenames: &[std::path::PathBuf],
    dtype: DType,
    device: &Device,
)

Source from the content-addressed store, hash-verified

136///
137/// Inherits the mmap safety requirements from `MmapedSafetensors`.
138pub unsafe fn load_fp8_var_builder<'a>(
139 filenames: &[std::path::PathBuf],
140 dtype: DType,
141 device: &Device,
142) -> anyhow::Result<VarBuilder<'a>> {
143 let inner = MmapedSafetensors::multi(filenames)?;
144
145 let fp8_count = inner
146 .tensors()
147 .iter()
148 .filter(|(_, v)| v.dtype() == safetensors::tensor::Dtype::F8_E4M3)
149 .count();
150 log::info!(
151 "FP8 model detected: {} tensors will be dequantized at load time",
152 fp8_count
153 );
154
155 let backend: Box<dyn SimpleBackend> = Box::new(Fp8Backend { inner });
156 Ok(VarBuilder::from_backend(backend, dtype, device.clone()))
157}
158
159// ─── Fp8Linear: reusable FP8-aware Linear layer ─────────────────────────────
160

Callers 2

load_var_builderMethod · 0.85
encode_t5Function · 0.85

Calls 2

dtypeMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected