From 8f1059314fae199a40b9d6fb675779e173e32336 Mon Sep 17 00:00:00 2001 From: Bizuayeu <30091157+Bizuayeu@users.noreply.github.com> Date: Tue, 13 Oct 2026 06:37:57 +0900 Subject: [PATCH 1/3] core: admit ModelOpt NVFP4 checkpoints from config.json's quantization block The GLM-5.3-Flash CUDA port reads nvidia/GLM-5.3-Flash-NVFP4 as stored. admit() checks config.json's quantization_config (top level, else text_config's) for quant_method modelopt, quant_algo NVFP4 and 4-bit float weights in groups of 16, and refuses anything else with a reason the caller logs (the Why of nemotron/config.zig), so a test reads the reason instead of failing on an error log. MIXED_PRECISION is refused for now. Which linears are NVFP4 is left to the tensors, not to the block's ignore list: the pinned revision 423acf37 stores the MTP layer's experts in BF16 without listing layer 45 there (da920bb0 added it). The fixture is that revision's config.json. --- .../fixtures/glm53_flash_nvfp4/config.json | 469 ++++++++++++++++++ zig/src/core/modelopt.zig | 112 +++++ zig/src/core/root.zig | 2 + 3 files changed, 583 insertions(+) create mode 100644 zig/src/core/fixtures/glm53_flash_nvfp4/config.json create mode 100644 zig/src/core/modelopt.zig diff --git a/zig/src/core/fixtures/glm53_flash_nvfp4/config.json b/zig/src/core/fixtures/glm53_flash_nvfp4/config.json new file mode 100644 index 0000000000..d0e8e75de4 --- /dev/null +++ b/zig/src/core/fixtures/glm53_flash_nvfp4/config.json @@ -0,0 +1,469 @@ +{ + "architectures": [ + "Glm5NextForConditionalGeneration" + ], + "dtype": "bfloat16", + "image_end_token_id": 154831, + "image_start_token_id": 154830, + "image_token_id": 154854, + "model_type": "glm5_next", + "text_config": { + "attention_bias": false, + "attention_dropout": 0.0, + "base_model_ep_plan": { + "layers.*.mlp.experts": "torch_a2a_experts", + "layers.*.mlp.experts.down_proj": "grouped_gemm", + "layers.*.mlp.experts.gate_up_proj": "grouped_gemm", + "layers.*.mlp.gate": "torch_a2a_router" + }, + "bos_token_id": null, + "dtype": "bfloat16", + "eos_token_id": [ + 154820, + 154827, + 154829 + ], + "first_k_dense_replace": 3, + "hc_eps": 1e-06, + "hc_mult": 4, + "hc_sinkhorn_iters": 20, + "head_dim": 0, + "hidden_act": "silu", + "hidden_size": 4096, + "index_head_dim": 128, + "index_kpool": 4, + "index_kpool_always_select_tail": true, + "index_kpool_compress": true, + "index_n_heads": 32, + "index_share_for_mtp_iteration": true, + "index_topk": 2048, + "indexer_rope_interleave": true, + "indexer_types": [ + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full", + "full" + ], + "initializer_range": 0.02, + "intermediate_size": 12288, + "kv_lora_rank": 512, + "layer_types": [ + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "deepseek_sparse_attention", + "linear_attention" + ], + "linear_attn_config": { + "full_attn_layers": [ + 3, + 7, + 11, + 15, + 19, + 23, + 27, + 31, + 35, + 39, + 43 + ], + "gate_lower_bound": -5.0, + "head_dim": 128, + "kda_layers": [ + 0, + 1, + 2, + 4, + 5, + 6, + 8, + 9, + 10, + 12, + 13, + 14, + 16, + 17, + 18, + 20, + 21, + 22, + 24, + 25, + 26, + 28, + 29, + 30, + 32, + 33, + 34, + 36, + 37, + 38, + 40, + 41, + 42, + 44 + ], + "num_heads": 64, + "short_conv_kernel_size": 4 + }, + "linear_conv_kernel_dim": 4, + "linear_head_dim": 128, + "linear_lower_bound": -5.0, + "linear_num_heads": 64, + "max_position_embeddings": 1048576, + "mhc": true, + "mla_use_nope": true, + "mlp_layer_types": [ + "dense", + "dense", + "dense", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse", + "sparse" + ], + "model_type": "glm5_next_text", + "moe_intermediate_size": 2048, + "moe_router_dtype": "float32", + "n_group": 1, + "n_routed_experts": 288, + "n_shared_experts": 1, + "norm_topk_prob": true, + "num_attention_heads": 64, + "num_experts_per_tok": 8, + "num_hidden_layers": 45, + "num_key_value_heads": 64, + "num_nextn_predict_layers": 1, + "output_router_logits": false, + "pad_token_id": 154820, + "q_lora_rank": 1536, + "qk_head_dim": 256, + "qk_nope_head_dim": 256, + "qk_rope_head_dim": 0, + "rms_norm_eps": 1e-05, + "routed_scaling_factor": 2.5, + "router_aux_loss_coef": 0.001, + "scoring_func": "sigmoid", + "swiglu_limit": 10.0, + "tie_word_embeddings": false, + "topk_group": 1, + "topk_method": "noaux_tc", + "use_cache": true, + "v_head_dim": 256, + "vocab_size": 154880 + }, + "tie_word_embeddings": false, + "transformers_version": "5.16.1", + "video_end_token_id": 154833, + "video_start_token_id": 154832, + "video_token_id": 154855, + "vision_config": { + "attention_bias": true, + "attention_dropout": 0.0, + "depth": 24, + "dtype": "bfloat16", + "hidden_act": "silu", + "hidden_size": 1024, + "image_size": 448, + "in_channels": 3, + "initializer_range": 0.02, + "intermediate_size": 4096, + "model_type": "glm5_next_vision", + "num_heads": 16, + "out_hidden_size": 4096, + "patch_size": 14, + "projection_intermediate_size": 10240, + "rms_norm_eps": 1e-05, + "spatial_merge_size": 2, + "swiglu_limit": 10.0, + "temporal_patch_size": 2 + }, + "quantization_config": { + "config_groups": { + "group_0": { + "input_activations": { + "dynamic": false, + "num_bits": 4, + "type": "float", + "group_size": 16 + }, + "weights": { + "dynamic": false, + "num_bits": 4, + "type": "float", + "group_size": 16 + }, + "targets": [ + "Linear" + ] + } + }, + "ignore": [ + "lm_head", + "model.language_model.embed_tokens", + "model.language_model.layers.0.self_attn*", + "model.language_model.layers.1.self_attn*", + "model.language_model.layers.10.mlp.gate", + "model.language_model.layers.10.mlp.shared_experts*", + "model.language_model.layers.10.self_attn*", + "model.language_model.layers.11.mlp.gate", + "model.language_model.layers.11.mlp.shared_experts*", + "model.language_model.layers.11.self_attn*", + "model.language_model.layers.12.mlp.gate", + "model.language_model.layers.12.mlp.shared_experts*", + "model.language_model.layers.12.self_attn*", + "model.language_model.layers.13.mlp.gate", + "model.language_model.layers.13.mlp.shared_experts*", + "model.language_model.layers.13.self_attn*", + "model.language_model.layers.14.mlp.gate", + "model.language_model.layers.14.mlp.shared_experts*", + "model.language_model.layers.14.self_attn*", + "model.language_model.layers.15.mlp.gate", + "model.language_model.layers.15.mlp.shared_experts*", + "model.language_model.layers.15.self_attn*", + "model.language_model.layers.16.mlp.gate", + "model.language_model.layers.16.mlp.shared_experts*", + "model.language_model.layers.16.self_attn*", + "model.language_model.layers.17.mlp.gate", + "model.language_model.layers.17.mlp.shared_experts*", + "model.language_model.layers.17.self_attn*", + "model.language_model.layers.18.mlp.gate", + "model.language_model.layers.18.mlp.shared_experts*", + "model.language_model.layers.18.self_attn*", + "model.language_model.layers.19.mlp.gate", + "model.language_model.layers.19.mlp.shared_experts*", + "model.language_model.layers.19.self_attn*", + "model.language_model.layers.2.self_attn*", + "model.language_model.layers.20.mlp.gate", + "model.language_model.layers.20.mlp.shared_experts*", + "model.language_model.layers.20.self_attn*", + "model.language_model.layers.21.mlp.gate", + "model.language_model.layers.21.mlp.shared_experts*", + "model.language_model.layers.21.self_attn*", + "model.language_model.layers.22.mlp.gate", + "model.language_model.layers.22.mlp.shared_experts*", + "model.language_model.layers.22.self_attn*", + "model.language_model.layers.23.mlp.gate", + "model.language_model.layers.23.mlp.shared_experts*", + "model.language_model.layers.23.self_attn*", + "model.language_model.layers.24.mlp.gate", + "model.language_model.layers.24.mlp.shared_experts*", + "model.language_model.layers.24.self_attn*", + "model.language_model.layers.25.mlp.gate", + "model.language_model.layers.25.mlp.shared_experts*", + "model.language_model.layers.25.self_attn*", + "model.language_model.layers.26.mlp.gate", + "model.language_model.layers.26.mlp.shared_experts*", + "model.language_model.layers.26.self_attn*", + "model.language_model.layers.27.mlp.gate", + "model.language_model.layers.27.mlp.shared_experts*", + "model.language_model.layers.27.self_attn*", + "model.language_model.layers.28.mlp.gate", + "model.language_model.layers.28.mlp.shared_experts*", + "model.language_model.layers.28.self_attn*", + "model.language_model.layers.29.mlp.gate", + "model.language_model.layers.29.mlp.shared_experts*", + "model.language_model.layers.29.self_attn*", + "model.language_model.layers.3.mlp.gate", + "model.language_model.layers.3.mlp.shared_experts*", + "model.language_model.layers.3.self_attn*", + "model.language_model.layers.30.mlp.gate", + "model.language_model.layers.30.mlp.shared_experts*", + "model.language_model.layers.30.self_attn*", + "model.language_model.layers.31.mlp.gate", + "model.language_model.layers.31.mlp.shared_experts*", + "model.language_model.layers.31.self_attn*", + "model.language_model.layers.32.mlp.gate", + "model.language_model.layers.32.mlp.shared_experts*", + "model.language_model.layers.32.self_attn*", + "model.language_model.layers.33.mlp.gate", + "model.language_model.layers.33.mlp.shared_experts*", + "model.language_model.layers.33.self_attn*", + "model.language_model.layers.34.mlp.gate", + "model.language_model.layers.34.mlp.shared_experts*", + "model.language_model.layers.34.self_attn*", + "model.language_model.layers.35.mlp.gate", + "model.language_model.layers.35.mlp.shared_experts*", + "model.language_model.layers.35.self_attn*", + "model.language_model.layers.36.mlp.gate", + "model.language_model.layers.36.mlp.shared_experts*", + "model.language_model.layers.36.self_attn*", + "model.language_model.layers.37.mlp.gate", + "model.language_model.layers.37.mlp.shared_experts*", + "model.language_model.layers.37.self_attn*", + "model.language_model.layers.38.mlp.gate", + "model.language_model.layers.38.mlp.shared_experts*", + "model.language_model.layers.38.self_attn*", + "model.language_model.layers.39.mlp.gate", + "model.language_model.layers.39.mlp.shared_experts*", + "model.language_model.layers.39.self_attn*", + "model.language_model.layers.4.mlp.gate", + "model.language_model.layers.4.mlp.shared_experts*", + "model.language_model.layers.4.self_attn*", + "model.language_model.layers.40.mlp.gate", + "model.language_model.layers.40.mlp.shared_experts*", + "model.language_model.layers.40.self_attn*", + "model.language_model.layers.41.mlp.gate", + "model.language_model.layers.41.mlp.shared_experts*", + "model.language_model.layers.41.self_attn*", + "model.language_model.layers.42.mlp.gate", + "model.language_model.layers.42.mlp.shared_experts*", + "model.language_model.layers.42.self_attn*", + "model.language_model.layers.43.mlp.gate", + "model.language_model.layers.43.mlp.shared_experts*", + "model.language_model.layers.43.self_attn*", + "model.language_model.layers.44.mlp.gate", + "model.language_model.layers.44.mlp.shared_experts*", + "model.language_model.layers.44.self_attn*", + "model.language_model.layers.5.mlp.gate", + "model.language_model.layers.5.mlp.shared_experts*", + "model.language_model.layers.5.self_attn*", + "model.language_model.layers.6.mlp.gate", + "model.language_model.layers.6.mlp.shared_experts*", + "model.language_model.layers.6.self_attn*", + "model.language_model.layers.7.mlp.gate", + "model.language_model.layers.7.mlp.shared_experts*", + "model.language_model.layers.7.self_attn*", + "model.language_model.layers.8.mlp.gate", + "model.language_model.layers.8.mlp.shared_experts*", + "model.language_model.layers.8.self_attn*", + "model.language_model.layers.9.mlp.gate", + "model.language_model.layers.9.mlp.shared_experts*", + "model.language_model.layers.9.self_attn*", + "model.visual*" + ], + "quant_algo": "NVFP4", + "kv_cache_scheme": { + "dynamic": false, + "num_bits": 8, + "type": "float" + }, + "producer": { + "name": "modelopt", + "version": "0.47.0.dev393+ga4bc45b30.d20260828" + }, + "quant_method": "modelopt" + } +} \ No newline at end of file diff --git a/zig/src/core/modelopt.zig b/zig/src/core/modelopt.zig new file mode 100644 index 0000000000..5f4e0c9e80 --- /dev/null +++ b/zig/src/core/modelopt.zig @@ -0,0 +1,112 @@ +//! ModelOpt's quantization block in config.json: admits NVFP4 weights in groups of 16, refuses the rest by name. +//! Which linears are NVFP4 comes from the tensors (nvfp4.stored), not from "ignore": nvidia/GLM-5.3-Flash-NVFP4 +//! at 423acf37 stores the MTP layer in BF16 without listing it there (da920bb0 added it). + +const std = @import("std"); + +/// The NVFP4 group size ModelOpt writes for this format. +pub const nvfp4_group = 16; + +/// Why the check refused the checkpoint, kept for the caller's log line (tests read it instead). +pub const Why = struct { + buf: [320]u8 = undefined, + len: usize = 0, + + /// Keep the reason, cut short if it is long. + pub fn set(self: *Why, comptime fmt: []const u8, args: anytype) void { + var w: std.Io.Writer = .fixed(&self.buf); + w.print(fmt, args) catch {}; + self.len = w.end; + } + + pub fn text(self: *const Why) []const u8 { + return self.buf[0..self.len]; + } +}; + +/// config.json's quantization_config (top level, else text_config's) checked as ModelOpt NVFP4. +pub fn admit(gpa: std.mem.Allocator, config_json: []const u8, why: *Why) !void { + var arena = std.heap.ArenaAllocator.init(gpa); + defer arena.deinit(); + const root = try std.json.parseFromSliceLeaky(std.json.Value, arena.allocator(), config_json, .{}); + const q = block(root) orelse { + why.set("config.json has no ModelOpt quantization_config", .{}); + return error.NotModelOpt; + }; + const algo = text(q.get("quant_algo")) orelse ""; + if (!std.ascii.eqlIgnoreCase(algo, "NVFP4")) { + why.set("ModelOpt {s}: this engine reads ModelOpt NVFP4 (nvidia/GLM-5.3-Flash-NVFP4's layout)", .{if (algo.len > 0) algo else "without quant_algo"}); + return error.UnsupportedQuant; + } + const groups = object(q.get("config_groups")) orelse { + why.set("ModelOpt NVFP4 without config_groups", .{}); + return error.UnsupportedQuant; + }; + var it = groups.iterator(); + while (it.next()) |g| { + const w = if (object(g.value_ptr.*)) |o| object(o.get("weights")) else null; + const bits = if (w) |o| int(o.get("num_bits")) else null; + const size = if (w) |o| int(o.get("group_size")) else null; + const kind = if (w) |o| text(o.get("type")) orelse "" else ""; + if (bits != 4 or size != nvfp4_group or !std.mem.eql(u8, kind, "float")) { + why.set("ModelOpt NVFP4 group {s}: weights {?d}-bit {s} in groups of {?d}, expected 4-bit float in groups of 16", .{ g.key_ptr.*, bits, kind, size }); + return error.UnsupportedQuant; + } + } +} + +fn block(root: std.json.Value) ?std.json.ObjectMap { + const top = object(root) orelse return null; + for ([_]?std.json.ObjectMap{ top, object(top.get("text_config")) }) |source| { + const q = object((source orelse continue).get("quantization_config")) orelse continue; + if (std.ascii.eqlIgnoreCase(text(q.get("quant_method")) orelse "", "modelopt")) return q; + } + return null; +} + +fn object(v: ?std.json.Value) ?std.json.ObjectMap { + const x = v orelse return null; + return if (x == .object) x.object else null; +} + +fn text(v: ?std.json.Value) ?[]const u8 { + const x = v orelse return null; + return if (x == .string) x.string else null; +} + +fn int(v: ?std.json.Value) ?i64 { + const x = v orelse return null; + return if (x == .integer) x.integer else null; +} + +test "nvidia/GLM-5.3-Flash-NVFP4's config is admitted" { + var why: Why = .{}; + try admit(std.testing.allocator, @embedFile("fixtures/glm53_flash_nvfp4/config.json"), &why); +} + +/// admit() must refuse `json` with `err`, its reason naming `word`. +fn expectRefused(json: []const u8, err: anyerror, word: []const u8) !void { + var why: Why = .{}; + try std.testing.expectError(err, admit(std.testing.allocator, json, &why)); + if (std.mem.indexOf(u8, why.text(), word) == null) { + std.debug.print("refusal \"{s}\" does not name \"{s}\"\n", .{ why.text(), word }); + return error.TestUnexpectedResult; + } +} + +test "other ModelOpt formats, and configs without ModelOpt, are refused by name" { + try expectRefused("{\"text_config\": {}}", error.NotModelOpt, "no ModelOpt"); + try expectRefused("{\"quantization_config\": {\"quant_method\": \"exl3\"}}", error.NotModelOpt, "no ModelOpt"); + try expectRefused("{\"quantization_config\": {\"quant_method\": \"modelopt\", \"quant_algo\": \"FP8\"}}", error.UnsupportedQuant, "ModelOpt FP8"); + // MIXED_PRECISION (the AXL re-pack) comes with 3.x + try expectRefused("{\"quantization_config\": {\"quant_method\": \"modelopt\", \"quant_algo\": \"MIXED_PRECISION\"}}", error.UnsupportedQuant, "MIXED_PRECISION"); + try expectRefused( + \\{"quantization_config": {"quant_method": "modelopt", "quant_algo": "NVFP4", "config_groups": + \\ {"g": {"weights": {"num_bits": 4, "type": "float", "group_size": 32}}}}} + , error.UnsupportedQuant, "groups of 32"); + var why: Why = .{}; + try admit(std.testing.allocator, + \\{"text_config": {"quantization_config": {"quant_method": "modelopt", "quant_algo": "nvfp4", "config_groups": + \\ {"g": {"weights": {"num_bits": 4, "type": "float", "group_size": 16}}}}}} + , &why); +} diff --git a/zig/src/core/root.zig b/zig/src/core/root.zig index 736248a93d..715d327c04 100644 --- a/zig/src/core/root.zig +++ b/zig/src/core/root.zig @@ -18,6 +18,7 @@ pub const registry = @import("registry.zig"); pub const tuning = @import("tuning.zig"); pub const norms_ref = @import("norms_ref.zig"); pub const act_ref = @import("act_ref.zig"); +pub const modelopt = @import("modelopt.zig"); test { _ = safetensors; @@ -37,4 +38,5 @@ test { _ = draft_depth; _ = @import("copy_index.zig"); _ = ids_json; + _ = modelopt; } From b3886b16370ed0ac2b34617e72a9a59bf5212513 Mon Sep 17 00:00:00 2001 From: Bizuayeu <30091157+Bizuayeu@users.noreply.github.com> Date: Tue, 13 Oct 2026 06:37:57 +0900 Subject: [PATCH 2/3] core: read ModelOpt NVFP4 linears as stored, with an f32 reference row nvfp4.zig is the format the GLM-5.3-Flash CUDA port's W4A16 linears read: e2m1 codes two to a byte (input 2j in byte j's low nibble) [n, k/2], an e4m3 scale per 16 inputs [n, k/16], and weight_scale_2 as an fp32 scalar that multiplies. dims() checks the four tensors fit together; Linear.read() maps them from a Checkpoint and marks input_scale as used, since the W4A4 math's static input scale is not read by W4A16 but a leftover tensor would refuse the checkpoint; row() gives a row as e2m1 x e4m3 x global in f32, the reference the GPU kernels will be compared with. stored() says a module is NVFP4 by its weight_scale tensor. The e2m1 and e4m3 values come from core.quant's nvfp4 and fp8 (#730), as f32. The fixture is the whole header of nvidia/GLM-5.3-Flash-NVFP4 (147,661 names, dtypes and shapes, gzip'd): every NVFP4 linear reads, 42 MoE layers x 288 experts x 3 plus the three dense MLP layers' 3, all under .mlp., and the MTP layer's experts stay BF16. --- .../glm53_flash_nvfp4/headers.json.gz | Bin 0 -> 434836 bytes zig/src/core/modelopt.zig | 4 +- zig/src/core/nvfp4.zig | 148 ++++++++++++++++++ zig/src/core/nvfp4_fixture_test.zig | 69 ++++++++ zig/src/core/root.zig | 3 + 5 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 zig/src/core/fixtures/glm53_flash_nvfp4/headers.json.gz create mode 100644 zig/src/core/nvfp4.zig create mode 100644 zig/src/core/nvfp4_fixture_test.zig diff --git a/zig/src/core/fixtures/glm53_flash_nvfp4/headers.json.gz b/zig/src/core/fixtures/glm53_flash_nvfp4/headers.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..db569985ec1dc9183e97e5bb1483a85609e7c9e3 GIT binary patch literal 434836 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

uG+PNR(keu)A(i4cXEr+ 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

TW7R#rmJe|iL zmon{StRs1{n50XleVoVCs*nrv@%k_JaQ1bQ zr(Tdhq0jq(Gq#iLDvL#jj`BIX5mkE`$ucD2a>gU7OJ(7MLq}3Lhg9SfW$f;u^GTdB zs_5i0Qpb>F7iYIpwXRHlYv_xeoF|mzg=O*^LwP$m!Va>3S?raequV);b*NlllPZQJ z+c<~XRd>D)FC99vl{3DbeCccU*`f3AarWPd{^V=YsUgW`&SQ5}oUi5CLtkv->}#Xf zf624uaRE2gGoTP-pVO>F%qA9uhzBD)Baud`STG`2$ed-Oac;en$Y7hO+%$w~Ym&Vz zkl9_~iF~#Rq2xGu-TXR^=hFd!^6?S=g=&RthZj>r>qc)i* r;*M;+rD0_+TiVZNri+m$KI%fI=5VQZQr literal 0 HcmV?d00001 diff --git a/zig/src/core/modelopt.zig b/zig/src/core/modelopt.zig index 5f4e0c9e80..da37ad7b5e 100644 --- a/zig/src/core/modelopt.zig +++ b/zig/src/core/modelopt.zig @@ -1,6 +1,4 @@ -//! ModelOpt's quantization block in config.json: admits NVFP4 weights in groups of 16, refuses the rest by name. -//! Which linears are NVFP4 comes from the tensors (nvfp4.stored), not from "ignore": nvidia/GLM-5.3-Flash-NVFP4 -//! at 423acf37 stores the MTP layer in BF16 without listing it there (da920bb0 added it). +//! ModelOpt NVFP4 config check (groups of 16); tensors say which linears are NVFP4, not ignore (423acf37's BF16 MTP). const std = @import("std"); diff --git a/zig/src/core/nvfp4.zig b/zig/src/core/nvfp4.zig new file mode 100644 index 0000000000..9452970477 --- /dev/null +++ b/zig/src/core/nvfp4.zig @@ -0,0 +1,148 @@ +//! NVFP4 as ModelOpt stores it: e2m1 codes two to a byte, an e4m3 scale per 16 inputs, an fp32 scale per tensor. + +const std = @import("std"); +const ckpt = @import("checkpoint.zig"); +const quant = @import("quant/quant.zig"); +const DType = ckpt.DType; + +/// Inputs sharing one e4m3 scale. +pub const group = quant.nvfp4.group; + +/// An e2m1 code's value as f32 (every e2m1 value is one exactly). +fn e2m1(code: u8) f32 { + return @floatCast(quant.nvfp4.e2m1(code)); +} + +/// An e4m3 byte's value as f32 (every e4m3 value is one exactly; 0x7f and 0xff are NaN). +fn e4m3(b: u8) f32 { + return @floatCast(quant.fp8.e4m3(b)); +} + +/// A stored tensor's dtype and shape, as a header lists it. +pub const Meta = struct { + dtype: DType, + shape: []const usize, +}; + +pub const Dims = struct { n: usize, k: usize }; + +/// The linear's [n, k] from codes U8 [n, k/2], scales F8_E4M3 [n, k/16] and fp32 scalars; else error.BadNvfp4. +pub fn dims(weight: Meta, scale: Meta, scale2: Meta, input_scale: ?Meta) !Dims { + if (weight.dtype != .u8 or weight.shape.len != 2) return error.BadNvfp4; + if (scale.dtype != .f8_e4m3 or scale.shape.len != 2) return error.BadNvfp4; + const n = weight.shape[0]; + const k = 2 * weight.shape[1]; + if (k % group != 0 or scale.shape[0] != n or scale.shape[1] * group != k) return error.BadNvfp4; + if (!scalar(scale2)) return error.BadNvfp4; + if (input_scale) |s| if (!scalar(s)) return error.BadNvfp4; + return .{ .n = n, .k = k }; +} + +fn scalar(m: Meta) bool { + return m.dtype == .f32 and (m.shape.len == 0 or (m.shape.len == 1 and m.shape[0] == 1)); +} + +/// Whether `module` (a linear's name without ".weight") is stored as NVFP4: its tensors say, not config.json. +pub fn stored(ck: *const ckpt.Checkpoint, module: []const u8) bool { + var buf: [256]u8 = undefined; + const name = std.fmt.bufPrint(&buf, "{s}.weight_scale", .{module}) catch return false; + for (ck.files.items) |*f| if (f.names.contains(name)) return true; + return false; +} + +/// One NVFP4 linear's stored bytes, as the checkpoint maps them. +pub const Linear = struct { + n: usize, + k: usize, + codes: []const u8, // [n, k/2]: input 2j in byte j's low nibble + scales: []const u8, // [n, k/16] e4m3 + global: f32, // weight_scale_2 + + /// `module`'s four tensors, marked as used; input_scale is the W4A4 math's static scale, unread by W4A16. + pub fn read(ck: *ckpt.Checkpoint, module: []const u8) !Linear { + var buf: [256]u8 = undefined; + const w = try ck.get(try std.fmt.bufPrint(&buf, "{s}.weight", .{module})); + const s = try ck.get(try std.fmt.bufPrint(&buf, "{s}.weight_scale", .{module})); + const g = try ck.get(try std.fmt.bufPrint(&buf, "{s}.weight_scale_2", .{module})); + const a = try ck.get(try std.fmt.bufPrint(&buf, "{s}.input_scale", .{module})); + const d = dims(meta(&w), meta(&s), meta(&g), meta(&a)) catch |e| { + std.log.err("{s}: not ModelOpt NVFP4 ({t} {any}, {t} {any})", .{ module, w.dtype, w.shape[0..w.rank], s.dtype, s.shape[0..s.rank] }); + return e; + }; + return .{ .n = d.n, .k = d.k, .codes = w.bytes, .scales = s.bytes, .global = std.mem.bytesToValue(f32, g.bytes[0..4]) }; + } + + /// Row r as f32, e2m1 x e4m3 x global in that order: the reference the GPU kernels are compared with. + pub fn row(l: Linear, r: usize, out: []f32) void { + std.debug.assert(r < l.n and out.len == l.k); + const codes = l.codes[r * l.k / 2 ..][0 .. l.k / 2]; + const scales = l.scales[r * l.k / group ..][0 .. l.k / group]; + for (out, 0..) |*o, i| { + const byte = codes[i / 2]; + const code = if (i % 2 == 0) byte & 0xf else byte >> 4; + o.* = e2m1(code) * e4m3(scales[i / group]) * l.global; + } + } +}; + +fn meta(t: *const ckpt.Tensor) Meta { + return .{ .dtype = t.dtype, .shape = t.shape[0..t.rank] }; +} + +test "dims refuse what is not ModelOpt NVFP4" { + const w: Meta = .{ .dtype = .u8, .shape = &.{ 4, 16 } }; + const s: Meta = .{ .dtype = .f8_e4m3, .shape = &.{ 4, 2 } }; + const g: Meta = .{ .dtype = .f32, .shape = &.{} }; + const d = try dims(w, s, g, g); + try std.testing.expectEqual(Dims{ .n = 4, .k = 32 }, d); + try std.testing.expectError(error.BadNvfp4, dims(.{ .dtype = .bf16, .shape = &.{ 4, 16 } }, s, g, g)); + try std.testing.expectError(error.BadNvfp4, dims(w, .{ .dtype = .f8_e4m3, .shape = &.{ 4, 3 } }, g, g)); + try std.testing.expectError(error.BadNvfp4, dims(w, .{ .dtype = .u8, .shape = &.{ 4, 2 } }, g, g)); + try std.testing.expectError(error.BadNvfp4, dims(w, s, .{ .dtype = .f32, .shape = &.{2} }, null)); +} + +test "a linear read from a checkpoint folder, row by row" { + const gpa = std.testing.allocator; + const io = std.testing.io; + var tmp = std.testing.tmpDir(.{}); + defer tmp.cleanup(); + // n = 2, k = 32: codes 2 x 16 bytes, scales 2 x 2, two fp32 scalars + const header = + \\{"l.weight":{"dtype":"U8","shape":[2,16],"data_offsets":[0,32]}, + \\ "l.weight_scale":{"dtype":"F8_E4M3","shape":[2,2],"data_offsets":[32,36]}, + \\ "l.weight_scale_2":{"dtype":"F32","shape":[],"data_offsets":[36,40]}, + \\ "l.input_scale":{"dtype":"F32","shape":[],"data_offsets":[40,44]}} + ; + var data: [8 + header.len + 44]u8 = undefined; + std.mem.writeInt(u64, data[0..8], header.len, .little); + @memcpy(data[8..][0..header.len], header); + const body = data[8 + header.len ..]; + for (body[0..32], 0..) |*b, i| b.* = @intCast((i * 7 + 3) & 0xff); // every nibble value appears + @memcpy(body[32..36], &[_]u8{ 0x38, 0x40, 0x30, 0xb8 }); // 1.0, 2.0, 0.5, -1.0 + @memcpy(body[36..40], std.mem.asBytes(&@as(f32, 0.25))); + @memcpy(body[40..44], std.mem.asBytes(&@as(f32, 3.0))); + try tmp.dir.writeFile(io, .{ .sub_path = "model.safetensors", .data = &data }); + const dir = try std.fmt.allocPrint(gpa, ".zig-cache/tmp/{s}", .{tmp.sub_path}); + defer gpa.free(dir); + var ck = try ckpt.Checkpoint.openModel(gpa, io, dir); + defer ck.close(); + try std.testing.expect(stored(&ck, "l")); + try std.testing.expect(!stored(&ck, "m")); + const l = try Linear.read(&ck, "l"); + try std.testing.expectEqual(@as(usize, 0), ck.unused()); + try std.testing.expectEqual(@as(f32, 0.25), l.global); + var out: [32]f32 = undefined; + l.row(0, &out); // byte 0 is 3: input 0 is code 3 (1.5), input 1 code 0; inputs 16.. take the second scale (2.0) + try std.testing.expectEqual(@as(f32, 1.5 * 1.0 * 0.25), out[0]); + try std.testing.expectEqual(@as(f32, 0.0), out[1]); + try std.testing.expectEqual(e2m1(body[8] & 0xf) * 2.0 * 0.25, out[16]); + for (0..2) |r| { + l.row(r, &out); + for (out, 0..) |v, i| { + const byte = body[r * 16 + i / 2]; + const code = if (i % 2 == 0) byte & 0xf else byte >> 4; + const scale = e4m3(body[32 + r * 2 + i / 16]); + try std.testing.expectEqual(e2m1(code) * scale * 0.25, v); + } + } +} diff --git a/zig/src/core/nvfp4_fixture_test.zig b/zig/src/core/nvfp4_fixture_test.zig new file mode 100644 index 0000000000..9f4bfa3694 --- /dev/null +++ b/zig/src/core/nvfp4_fixture_test.zig @@ -0,0 +1,69 @@ +//! nvidia/GLM-5.3-Flash-NVFP4's whole header: every linear is NVFP4 or BF16 as nvfp4.dims reads it. + +const std = @import("std"); +const nvfp4 = @import("nvfp4.zig"); +const DType = @import("safetensors.zig").DType; + +const Meta = nvfp4.Meta; + +/// name -> [dtype, shape] from the gzip'd fixture, kept in `arena`. +fn headers(arena: std.mem.Allocator) !std.json.ObjectMap { + var in: std.Io.Reader = .fixed(@embedFile("fixtures/glm53_flash_nvfp4/headers.json.gz")); + var gz: std.compress.flate.Decompress = .init(&in, .gzip, &.{}); + var out: std.Io.Writer.Allocating = .init(arena); + _ = try gz.reader.streamRemaining(&out.writer); + const v = try std.json.parseFromSliceLeaky(std.json.Value, arena, out.written(), .{}); + return v.object; +} + +fn meta(arena: std.mem.Allocator, h: std.json.ObjectMap, name: []const u8) !?Meta { + const v = h.get(name) orelse return null; + const pair = v.array.items; + const dims = pair[1].array.items; + const shape = try arena.alloc(usize, dims.len); + for (dims, shape) |d, *s| s.* = @intCast(d.integer); + return .{ .dtype = DType.parse(pair[0].string) orelse return error.UnsupportedDType, .shape = shape }; +} + +fn at(arena: std.mem.Allocator, h: std.json.ObjectMap, module: []const u8, suffix: []const u8) !?Meta { + return meta(arena, h, try std.fmt.allocPrint(arena, "{s}.{s}", .{ module, suffix })); +} + +test "every NVFP4 linear of the checkpoint reads as ModelOpt stores it, and the MTP layer stays BF16" { + var state = std.heap.ArenaAllocator.init(std.testing.allocator); + defer state.deinit(); + const a = state.allocator(); + const h = try headers(a); + try std.testing.expectEqual(@as(usize, 147661), h.count()); + var quantized: usize = 0; + var experts: usize = 0; + var it = h.iterator(); + while (it.next()) |kv| { + const name = kv.key_ptr.*; + if (std.mem.endsWith(u8, name, ".weight_scale")) { + // no scale without its codes + try std.testing.expect((try at(a, h, name[0 .. name.len - ".weight_scale".len], "weight")) != null); + continue; + } + if (!std.mem.endsWith(u8, name, ".weight")) continue; + const module = name[0 .. name.len - ".weight".len]; + const scale = try at(a, h, module, "weight_scale") orelse continue; + const d = try nvfp4.dims((try meta(a, h, name)).?, scale, (try at(a, h, module, "weight_scale_2")).?, try at(a, h, module, "input_scale")); + quantized += 1; + try std.testing.expect(std.mem.indexOf(u8, module, ".mlp.") != null); + try std.testing.expect(std.mem.indexOf(u8, module, ".layers.45.") == null); + const down = std.mem.endsWith(u8, module, "down_proj"); + if (std.mem.indexOf(u8, module, ".experts.") != null) { + experts += 1; + try std.testing.expectEqual(if (down) nvfp4.Dims{ .n = 4096, .k = 2048 } else nvfp4.Dims{ .n = 2048, .k = 4096 }, d); + } else { + try std.testing.expectEqual(if (down) nvfp4.Dims{ .n = 4096, .k = 12288 } else nvfp4.Dims{ .n = 12288, .k = 4096 }, d); + } + } + try std.testing.expectEqual(@as(usize, 42 * 288 * 3 + 3 * 3), quantized); + try std.testing.expectEqual(@as(usize, 42 * 288 * 3), experts); + // the MTP layer's routed experts are BF16 as stored (a family may re-pack them for drafting) + const mtp = (try meta(a, h, "model.language_model.layers.45.mlp.experts.0.gate_proj.weight")).?; + try std.testing.expectEqual(DType.bf16, mtp.dtype); + try std.testing.expect((try meta(a, h, "model.language_model.layers.45.mlp.experts.0.gate_proj.weight_scale")) == null); +} diff --git a/zig/src/core/root.zig b/zig/src/core/root.zig index 715d327c04..b3d7cfbc48 100644 --- a/zig/src/core/root.zig +++ b/zig/src/core/root.zig @@ -18,6 +18,7 @@ pub const registry = @import("registry.zig"); pub const tuning = @import("tuning.zig"); pub const norms_ref = @import("norms_ref.zig"); pub const act_ref = @import("act_ref.zig"); +pub const nvfp4 = @import("nvfp4.zig"); pub const modelopt = @import("modelopt.zig"); test { @@ -38,5 +39,7 @@ test { _ = draft_depth; _ = @import("copy_index.zig"); _ = ids_json; + _ = nvfp4; _ = modelopt; + _ = @import("nvfp4_fixture_test.zig"); } From fd2b0c001581fd04ddf031b86f2c11b4cf69e130 Mon Sep 17 00:00:00 2001 From: Bizuayeu <30091157+Bizuayeu@users.noreply.github.com> Date: Fri, 16 Oct 2026 02:35:04 +0900 Subject: [PATCH 3/3] core: the ModelOpt NVFP4 linear's test decodes with core/quant's reference, not an f32 row of its own --- zig/src/core/nvfp4.zig | 49 +++++++++++------------------------------- 1 file changed, 12 insertions(+), 37 deletions(-) diff --git a/zig/src/core/nvfp4.zig b/zig/src/core/nvfp4.zig index 9452970477..ed6948a003 100644 --- a/zig/src/core/nvfp4.zig +++ b/zig/src/core/nvfp4.zig @@ -8,16 +8,6 @@ const DType = ckpt.DType; /// Inputs sharing one e4m3 scale. pub const group = quant.nvfp4.group; -/// An e2m1 code's value as f32 (every e2m1 value is one exactly). -fn e2m1(code: u8) f32 { - return @floatCast(quant.nvfp4.e2m1(code)); -} - -/// An e4m3 byte's value as f32 (every e4m3 value is one exactly; 0x7f and 0xff are NaN). -fn e4m3(b: u8) f32 { - return @floatCast(quant.fp8.e4m3(b)); -} - /// A stored tensor's dtype and shape, as a header lists it. pub const Meta = struct { dtype: DType, @@ -71,18 +61,6 @@ pub const Linear = struct { }; return .{ .n = d.n, .k = d.k, .codes = w.bytes, .scales = s.bytes, .global = std.mem.bytesToValue(f32, g.bytes[0..4]) }; } - - /// Row r as f32, e2m1 x e4m3 x global in that order: the reference the GPU kernels are compared with. - pub fn row(l: Linear, r: usize, out: []f32) void { - std.debug.assert(r < l.n and out.len == l.k); - const codes = l.codes[r * l.k / 2 ..][0 .. l.k / 2]; - const scales = l.scales[r * l.k / group ..][0 .. l.k / group]; - for (out, 0..) |*o, i| { - const byte = codes[i / 2]; - const code = if (i % 2 == 0) byte & 0xf else byte >> 4; - o.* = e2m1(code) * e4m3(scales[i / group]) * l.global; - } - } }; fn meta(t: *const ckpt.Tensor) Meta { @@ -101,7 +79,7 @@ test "dims refuse what is not ModelOpt NVFP4" { try std.testing.expectError(error.BadNvfp4, dims(w, s, .{ .dtype = .f32, .shape = &.{2} }, null)); } -test "a linear read from a checkpoint folder, row by row" { +test "a linear read from a checkpoint folder decodes as core/quant's reference" { const gpa = std.testing.allocator; const io = std.testing.io; var tmp = std.testing.tmpDir(.{}); @@ -131,18 +109,15 @@ test "a linear read from a checkpoint folder, row by row" { const l = try Linear.read(&ck, "l"); try std.testing.expectEqual(@as(usize, 0), ck.unused()); try std.testing.expectEqual(@as(f32, 0.25), l.global); - var out: [32]f32 = undefined; - l.row(0, &out); // byte 0 is 3: input 0 is code 3 (1.5), input 1 code 0; inputs 16.. take the second scale (2.0) - try std.testing.expectEqual(@as(f32, 1.5 * 1.0 * 0.25), out[0]); - try std.testing.expectEqual(@as(f32, 0.0), out[1]); - try std.testing.expectEqual(e2m1(body[8] & 0xf) * 2.0 * 0.25, out[16]); - for (0..2) |r| { - l.row(r, &out); - for (out, 0..) |v, i| { - const byte = body[r * 16 + i / 2]; - const code = if (i % 2 == 0) byte & 0xf else byte >> 4; - const scale = e4m3(body[32 + r * 2 + i / 16]); - try std.testing.expectEqual(e2m1(code) * scale * 0.25, v); - } - } + var out: [64]f64 = undefined; + try quant.nvfp4.reference(.{ + .weight = .{ .dtype = .u8, .rank = 2, .shape = .{ l.n, l.k / 2, 1, 1, 1 }, .bytes = l.codes }, + .scale = .{ .dtype = .f8_e4m3, .rank = 2, .shape = .{ l.n, l.k / group, 1, 1, 1 }, .bytes = l.scales }, + .global = &[_]f32{l.global}, + }, &out); + // byte 0 is 3: input 0 is code 3 (1.5), input 1 code 0; inputs 16.. take the second scale (2.0) + try std.testing.expectEqual(@as(f64, 1.5 * 1.0 * 0.25), out[0]); + try std.testing.expectEqual(@as(f64, 0.0), out[1]); + try std.testing.expectEqual(quant.nvfp4.e2m1(body[8] & 0xf) * 2.0 * 0.25, out[16]); + try std.testing.expectEqual(quant.nvfp4.e2m1(body[16 + 15] >> 4) * -1.0 * 0.25, out[32 + 31]); // row 1, scale -1.0 }