Skip to content

ggml_validate_row_data rejects the ROCmFPx types it just produced — no FPx recipe can be quantized #1

Description

@walcz-de

Summary

llama-quantize offers the ROCmFPx recipes but cannot produce them: the row-data validation rejects the very types it just wrote, so every FPx quantization aborts.

Reproduction

llama-quantize model-f16.gguf out.gguf Q6_0_ROCMFPX_AGENT
ggml_validate_row_data: invalid type 103
... (repeated per tensor)
llama_model_quantize: failed to quantize: quantized data validation failed
llama_quantize: failed to quantize model from '.../model-f16.gguf'

Exit code 1, output file truncated at ~11 MB.

Cause

ggml_validate_row_data() in ggml/src/ggml-quants.c only handles the two FP4 types:

case GGML_TYPE_Q4_0_ROCMFP4:        // 100
case GGML_TYPE_Q4_0_ROCMFP4_FAST:   // 101

The FPx family is not covered:

Q6_0_ROCMFPX = 102
Q8_0_ROCMFPX = 103
Q3_0_ROCMFPX = 104
Q2_0_ROCMFPX = 107

Commit e5b4bc02 ("rocmfp4: validate the FP4 row data instead of rejecting it as unknown") added the two FP4 cases; the FPx types were not carried along.

Q6_0_ROCMFPX_AGENT mixes Q8_0_ROCMFPX (103) into the sensitive tensors — which is exactly what makes it the agent/tool-call recipe — so it trips the gap immediately.

Scope

All recipes in the FPx family are affected, which includes every *_AGENT variant advertised in the quantize type list:

Q3_0_ROCMFPX        Q3_0_ROCMFPX_AGENT
Q6_0_ROCMFPX        Q6_0_ROCMFPX_AGENT      Q6_0_ROCMFPX_LEAN
Q8_0_ROCMFPX        Q8_0_ROCMFPX_AGENT      Q6_0_ROCMFPX_AGENT_LEAN
Q2_0_ROCMFPX

They are selectable and documented, and none of them can be produced.

Fix

Extend ggml_validate_row_data() with the FPx types, following the shape of the two FP4 cases already there.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions