Commit d1044bc82 for llama.cpp

commit d1044bc82712fbf08996080bef6298b24a27e9c7
Author: Tarek Dakhran <tarek@liquid.ai>
Date:   Tue Nov 3 15:36:44 2026 +0100

    model : enable NVFP4 LFM3 ggufs (#31608)

diff --git a/src/models/lfm-base.cpp b/src/models/lfm-base.cpp
index 0dabf114b..74944c13c 100644
--- a/src/models/lfm-base.cpp
+++ b/src/models/lfm-base.cpp
@@ -117,9 +117,9 @@ ggml_tensor * llm_build_lfm_base::build_lfm_dense_ffn(const llama_model & model,
     GGML_ASSERT(!model.layers[il].ffn_gate_b);
     GGML_ASSERT(!model.layers[il].ffn_down_b);
     return build_ffn(cur,
-        model.layers[il].ffn_up,   NULL, NULL,
-        model.layers[il].ffn_gate, NULL, NULL,
-        model.layers[il].ffn_down, NULL, NULL,
+        model.layers[il].ffn_up,   NULL, model.layers[il].ffn_up_s,
+        model.layers[il].ffn_gate, NULL, model.layers[il].ffn_gate_s,
+        model.layers[il].ffn_down, NULL, model.layers[il].ffn_down_s,
         NULL, LLM_FFN_SILU, LLM_FFN_PAR, il);
 }

@@ -136,5 +136,10 @@ ggml_tensor * llm_build_lfm_base::build_lfm_moe_ffn(const llama_model & model,
             LLM_FFN_SILU, true,
             hparams.expert_weights_scale,
             static_cast<llama_expert_gating_func_type>(hparams.expert_gating_func),
-            il);
+            il,
+            nullptr,
+            nullptr,
+            model.layers[il].ffn_up_exps_s,
+            model.layers[il].ffn_gate_exps_s,
+            model.layers[il].ffn_down_exps_s);
 }
diff --git a/src/models/lfm2.cpp b/src/models/lfm2.cpp
index e18937faf..f7d4f95b0 100644
--- a/src/models/lfm2.cpp
+++ b/src/models/lfm2.cpp
@@ -399,9 +399,9 @@ llama_model_lfm2::graph_decision::graph_decision(const llama_model & model, cons

         ggml_tensor * ffn_out = build_norm(cur, layer.ffn_norm, NULL, LLM_NORM_RMS, il);
         ffn_out = build_ffn(ffn_out,
-                layer.ffn_up,   NULL, NULL,
-                layer.ffn_gate, NULL, NULL,
-                layer.ffn_down, NULL, NULL,
+                layer.ffn_up,   NULL, layer.ffn_up_s,
+                layer.ffn_gate, NULL, layer.ffn_gate_s,
+                layer.ffn_down, NULL, layer.ffn_down_s,
                 NULL, LLM_FFN_SILU, LLM_FFN_PAR, il);

         cur = ggml_add(ctx0, cur, ffn_out);
diff --git a/src/models/lfm3.cpp b/src/models/lfm3.cpp
index b74dea41b..20838f87f 100644
--- a/src/models/lfm3.cpp
+++ b/src/models/lfm3.cpp
@@ -129,7 +129,7 @@ llama_model_lfm3::graph<decision>::graph(const llama_model & model, const llm_gr
                 q, k, v, nullptr, nullptr, nullptr, 1.0f / sqrtf(float(n_embd_head)), il);
         cb(attn_out, "attn_out", il);

-        ggml_tensor * gate = build_lora_mm(model.layers[il].wqkv_gate, cur_in);
+        ggml_tensor * gate = build_lora_mm(model.layers[il].wqkv_gate, cur_in, model.layers[il].wqkv_gate_s);
         gate = ggml_sigmoid(ctx0, gate);
         cb(gate, "model.layers.{}.self_attn.gate", il);