Skip to content

Commit ba95b4e

Browse files
authored
Merge pull request #47 from AdaWorldAPI/claude/transcode-deepnsm-rust-oNa1Z
fix: f16 subnormal overflow + OpenChat 3.5 Q8_0 integration test Fix signed arithmetic overflow in f16_to_f32 for subnormal exponents. Add integration test that streams OpenChat 3.5 Q8_0 (7.7 GB) through the bgz17 indexer → 42.6 MB output (679× overall compression). Results: Attention 328×, FeedForward 920×, Embedding 3765×. Peak RAM: 524 MB. Time: 185s. 226 tensors indexed, 65 skipped. https://claude.ai/code/session_01Y69Vnw751w75iVSBRws7o7
2 parents 9c080a9 + c8ac357 commit ba95b4e

3 files changed

Lines changed: 583 additions & 1 deletion

File tree

src/hpc/gguf.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,8 @@ fn f16_to_f32(bits: u16) -> f32 {
425425
e -= 1;
426426
}
427427
m &= 0x3FF;
428-
let f32_bits = (sign << 31) | (((127 - 15 + 1 + e as u32) & 0xFF) << 23) | (m << 13);
428+
let f32_exp = (127i32 - 15 + 1 + e).max(0) as u32;
429+
let f32_bits = (sign << 31) | ((f32_exp & 0xFF) << 23) | (m << 13);
429430
return f32::from_bits(f32_bits);
430431
}
431432
if exp == 31 {

0 commit comments

Comments
 (0)