Skip to content

fix(compile-hlo): read block-quant weights through the packed view - #1479

Merged
michalharakal merged 1 commit into
developfrom
fix/block-quant-off-heap-weights
Nov 6, 2026
Merged

michalharakal merged 1 commit into
developfrom
fix/block-quant-off-heap-weights

Conversation

@michalharakal

Copy link
Copy Markdown
Contributor

Follow-up to #1478.

BlockQuantMatmulConverter read Q8_0 / Q4_0 blocks only from heap packedData. Weights loaded from a GGUF are off-heap BufferPackedTensorData, whose packedData throws, so exporting a real checkpoint failed with "has no block accessors".

The converter now decodes the canonical ggml blocks (Q8_0: f16 d + 32 i8; Q4_0: f16 d + 16 nibble bytes) by copying rows out of packedView.storage, which works for heap and loader-backed weights alike.

Found while exporting the full FunctionGemma 270M decode step: all 127 projections fold, and the module runs on an SL2610 NPU with Torq 2.3.0 in one dispatch, picking the same top-1 token as the f32 reference.

Tests: new offHeapStyleStorageReadsTheSameBlocks (a storage whose packedData throws gives byte-identical codes, scales and zero points for Q8_0 and Q4_0). The BlockQuantMatmulExportTest suite and apiCheck pass.

🤖 Generated with Claude Code

BlockQuantMatmulConverter read Q8_0 / Q4_0 blocks from heap packedData only.
Weights from the GGUF loader are off-heap BufferPackedTensorData, whose
packedData throws, so exporting a real checkpoint failed. The converter now
decodes the canonical ggml blocks (Q8_0: f16 d + 32 i8; Q4_0: f16 d + 16
nibble bytes) by copying rows out of packedView.storage, which works for heap
and loader-backed weights alike.

Found exporting the full FunctionGemma decode step (127 folded projections).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@michalharakal
michalharakal merged commit a3b9c40 into develop Nov 6, 2026
17 checks passed
@michalharakal
michalharakal deleted the fix/block-quant-off-heap-weights branch November 6, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant