From eaf1d7930c6857f304f8617d588d1a979efccb40 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 11 Mar 2026 19:27:53 +0100 Subject: [PATCH 01/28] llama : add support for Nemotron 3 Super (#20411) * llama : add support for Nemotron 3 Super This commit adds support for the Nemotron 3 Super model (120B.A12B) enabling this model to be converted to GGUF format and run in llama.cpp. Co-authored-by: Georgi Gerganov Co-authored-by: Matt Clayton <156335168+mattjcly@users.noreply.github.com> --- convert_hf_to_gguf.py | 41 ++++++++++++++++++++++------ ggml/src/ggml-metal/ggml-metal.metal | 1 + gguf-py/gguf/constants.py | 8 ++++++ gguf-py/gguf/gguf_writer.py | 3 ++ gguf-py/gguf/tensor_mapping.py | 8 ++++++ src/llama-arch.cpp | 8 ++++++ src/llama-arch.h | 3 ++ src/llama-hparams.h | 1 + src/llama-model.cpp | 11 ++++++-- src/llama-model.h | 5 ++++ src/models/nemotron-h.cpp | 22 ++++++++++++--- 11 files changed, 97 insertions(+), 14 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 30347f7389..4a4aac41dc 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -9743,20 +9743,35 @@ class NemotronHModel(GraniteHybridModel): # M: Mamba2, *: Attention, -: MLP # MoE: # M: Mamba2, *: Attention, E: Expert - hybrid_override_pattern = self.hparams["hybrid_override_pattern"] - self._ssm_layers = [i for i, val in enumerate(hybrid_override_pattern) if val == "M"] - self._mlp_layers = [i for i, val in enumerate(hybrid_override_pattern) if val == ("E" if self.is_moe else "-")] + pattern = self.hparams.get("hybrid_override_pattern") or self.hparams.get("layers_block_type") + if pattern is None: + self._ssm_layers = [] + self._mlp_layers = [] + elif isinstance(pattern, str): + self._ssm_layers = [i for i, val in enumerate(pattern) if val == "M"] + self._mlp_layers = [i for i, val in enumerate(pattern) if val == ("E" if self.is_moe else "-")] + else: + self._ssm_layers = [i for i, val in enumerate(pattern) if val == "mamba"] + self._mlp_layers = [i for i, val in enumerate(pattern) if val == "moe"] def get_attn_layers(self): - hybrid_override_pattern = self.hparams["hybrid_override_pattern"] - assert len(hybrid_override_pattern) == self.block_count, "Mismatch between hybrid override and num_hidden_layers!" - return [i for i, val in enumerate(hybrid_override_pattern) if val == "*"] + pattern = self.hparams.get("hybrid_override_pattern") or self.hparams.get("layers_block_type") + if pattern is None: + return [] + assert len(pattern) == self.block_count, f"Mismatch between pattern ({len(pattern)}) and block_count ({self.block_count})!" + if isinstance(pattern, str): + return [i for i, val in enumerate(pattern) if val == "*"] + + return [i for i, val in enumerate(pattern) if val == "attention"] def set_gguf_parameters(self): super().set_gguf_parameters() - self.gguf_writer.add_key_length(self.head_dim) - self.gguf_writer.add_value_length(self.head_dim) + head_dim = self.head_dim + if head_dim is None: + raise ValueError("Could not find the attention head dim in config") + self.gguf_writer.add_key_length(head_dim) + self.gguf_writer.add_value_length(head_dim) # Set feed_forward_length # NOTE: This will trigger an override warning. This is preferable to @@ -9784,6 +9799,9 @@ class NemotronHModel(GraniteHybridModel): if (n_experts_used := self.hparams.get("num_experts_per_tok")) is not None: self.gguf_writer.add_expert_used_count(n_experts_used) + if (latent_size := self.hparams.get("moe_latent_size")) is not None: + self.gguf_writer.add_moe_latent_size(latent_size) + def set_vocab(self): super().set_vocab() @@ -9803,6 +9821,13 @@ class NemotronHModel(GraniteHybridModel): name = name[len("language_model."):] if self.is_moe and bid is not None: + # Skip Multi-Token Prediction (MTP) tensors. These are used for + # for speculative decoding but we don't include them in this model + # conversion. See https://github.com/ggml-org/llama.cpp/pull/18886 + if "mtp" in name: + logger.info(f"gguf: Skipping MTP (Speculative) layer: {name}") + return [] + if name.endswith("mixer.gate.e_score_correction_bias"): new_name = name.replace("e_score_correction_bias", "e_score_correction.bias") yield from ModelBase.modify_tensors(self, data_torch, new_name, bid) diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index 82ebbb4e40..29e4a245d5 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -9081,6 +9081,7 @@ template [[host_name("kernel_mul_mm_id_map0_ne20_6" )]] kernel kernel_mul_mm_id_ template [[host_name("kernel_mul_mm_id_map0_ne20_8" )]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<8>; template [[host_name("kernel_mul_mm_id_map0_ne20_10")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<10>; template [[host_name("kernel_mul_mm_id_map0_ne20_16")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<16>; +template [[host_name("kernel_mul_mm_id_map0_ne20_22")]] kernel kernel_mul_mm_id_map0_t kernel_mul_mm_id_map0<22>; template kernel void kernel_mul_mm_id( diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index c5f5469506..32fc9428a7 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -125,6 +125,7 @@ class Keys: EXPERT_GROUP_SCALE = "{arch}.expert_group_scale" EXPERTS_PER_GROUP = "{arch}.experts_per_group" MOE_EVERY_N_LAYERS = "{arch}.moe_every_n_layers" + MOE_LATENT_SIZE = "{arch}.moe_latent_size" NEXTN_PREDICT_LAYERS = "{arch}.nextn_predict_layers" NUM_DEEPSTACK_LAYERS = "{arch}.n_deepstack_layers" POOLING_TYPE = "{arch}.pooling_type" @@ -543,6 +544,8 @@ class MODEL_TENSOR(IntEnum): FFN_DOWN_CHEXP = auto() FFN_UP_CHEXP = auto() FFN_EXP_PROBS_B = auto() + MOE_LATENT_DOWN = auto() # nemotron 3 super + MOE_LATENT_UP = auto() # nemotron 3 super ATTN_Q_NORM = auto() ATTN_K_NORM = auto() LAYER_OUT_NORM = auto() @@ -986,6 +989,8 @@ TENSOR_NAMES: dict[MODEL_TENSOR, str] = { MODEL_TENSOR.FFN_UP_EXP: "blk.{bid}.ffn_up_exps", MODEL_TENSOR.FFN_GATE_UP_EXP: "blk.{bid}.ffn_gate_up_exps", MODEL_TENSOR.FFN_EXP_PROBS_B: "blk.{bid}.exp_probs_b", + MODEL_TENSOR.MOE_LATENT_DOWN: "blk.{bid}.ffn_latent_down", # nemotron 3 super + MODEL_TENSOR.MOE_LATENT_UP: "blk.{bid}.ffn_latent_up", # nemotron 3 super MODEL_TENSOR.LAYER_OUT_NORM: "blk.{bid}.layer_output_norm", MODEL_TENSOR.PER_LAYER_TOKEN_EMBD: "per_layer_token_embd", # gemma3n MODEL_TENSOR.PER_LAYER_MODEL_PROJ: "per_layer_model_proj", # gemma3n @@ -2913,6 +2918,9 @@ MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = { MODEL_TENSOR.FFN_GATE_INP, MODEL_TENSOR.FFN_UP_EXP, MODEL_TENSOR.FFN_DOWN_EXP, + # expert latent + MODEL_TENSOR.MOE_LATENT_DOWN, + MODEL_TENSOR.MOE_LATENT_UP, # shared expert MODEL_TENSOR.FFN_DOWN_SHEXP, MODEL_TENSOR.FFN_UP_SHEXP, diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index e790be9533..c89a5fdc3a 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -859,6 +859,9 @@ class GGUFWriter: def add_moe_every_n_layers(self, value: int) -> None: self.add_uint32(Keys.LLM.MOE_EVERY_N_LAYERS.format(arch=self.arch), value) + def add_moe_latent_size(self, value: int) -> None: + self.add_uint32(Keys.LLM.MOE_LATENT_SIZE.format(arch=self.arch), value) + def add_nextn_predict_layers(self, count: int) -> None: self.add_uint32(Keys.LLM.NEXTN_PREDICT_LAYERS.format(arch=self.arch), count) diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index e575610900..18131e5405 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -571,6 +571,14 @@ class TensorNameMap: "model.layers.{bid}.mlp.experts.gate_up_proj", ), + MODEL_TENSOR.MOE_LATENT_DOWN: ( + "backbone.layers.{bid}.mixer.fc1_latent_proj", # nemotron 3 super + ), + + MODEL_TENSOR.MOE_LATENT_UP: ( + "backbone.layers.{bid}.mixer.fc2_latent_proj", # nemotron 3 super + ), + # Feed-forward down MODEL_TENSOR.FFN_DOWN: ( "gpt_neox.layers.{bid}.mlp.dense_4h_to_h", # gptneox diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp index 204105b6dd..799d16167b 100644 --- a/src/llama-arch.cpp +++ b/src/llama-arch.cpp @@ -185,6 +185,7 @@ static const std::map LLM_KV_NAMES = { { LLM_KV_EXPERT_GROUP_SCALE, "%s.expert_group_scale" }, { LLM_KV_EXPERTS_PER_GROUP, "%s.experts_per_group" }, { LLM_KV_MOE_EVERY_N_LAYERS, "%s.moe_every_n_layers" }, + { LLM_KV_MOE_LATENT_SIZE, "%s.moe_latent_size" }, { LLM_KV_NEXTN_PREDICT_LAYERS, "%s.nextn_predict_layers" }, { LLM_KV_NUM_DEEPSTACK_LAYERS, "%s.n_deepstack_layers" }, { LLM_KV_POOLING_TYPE, "%s.pooling_type" }, @@ -365,6 +366,8 @@ static const std::map LLM_TENSOR_NAMES = { { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" }, { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" }, { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" }, + { LLM_TENSOR_FFN_LATENT_DOWN, "blk.%d.ffn_latent_down" }, + { LLM_TENSOR_FFN_LATENT_UP, "blk.%d.ffn_latent_up" }, { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" }, { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" }, { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" }, @@ -1879,6 +1882,8 @@ static std::set llm_get_tensor_names(llm_arch arch) { LLM_TENSOR_FFN_UP_EXPS, LLM_TENSOR_FFN_DOWN_EXPS, LLM_TENSOR_FFN_EXP_PROBS_B, + LLM_TENSOR_FFN_LATENT_DOWN, + LLM_TENSOR_FFN_LATENT_UP, // MoE shared expert layer LLM_TENSOR_FFN_DOWN_SHEXP, LLM_TENSOR_FFN_UP_SHEXP, @@ -2754,6 +2759,9 @@ static const std::map LLM_TENSOR_INFOS = { {LLM_TENSOR_NEXTN_HNORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}}, {LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}}, {LLM_TENSOR_NEXTN_SHARED_HEAD_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}}, + // Nemotron 3 Super + {LLM_TENSOR_FFN_LATENT_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, + {LLM_TENSOR_FFN_LATENT_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, }; LLM_KV::LLM_KV(llm_arch arch, const char * suffix) : arch(arch), suffix(suffix) {} diff --git a/src/llama-arch.h b/src/llama-arch.h index 28dd1ffac7..b1b1dcf188 100644 --- a/src/llama-arch.h +++ b/src/llama-arch.h @@ -189,6 +189,7 @@ enum llm_kv { LLM_KV_EXPERT_GROUP_SCALE, LLM_KV_EXPERTS_PER_GROUP, LLM_KV_MOE_EVERY_N_LAYERS, + LLM_KV_MOE_LATENT_SIZE, LLM_KV_NEXTN_PREDICT_LAYERS, LLM_KV_NUM_DEEPSTACK_LAYERS, LLM_KV_POOLING_TYPE, @@ -385,6 +386,8 @@ enum llm_tensor { LLM_TENSOR_FFN_GATE_CHEXPS, LLM_TENSOR_FFN_UP_CHEXPS, LLM_TENSOR_FFN_EXP_PROBS_B, + LLM_TENSOR_FFN_LATENT_DOWN, + LLM_TENSOR_FFN_LATENT_UP, LLM_TENSOR_ATTN_Q_NORM, LLM_TENSOR_ATTN_K_NORM, LLM_TENSOR_LAYER_OUT_NORM, diff --git a/src/llama-hparams.h b/src/llama-hparams.h index abfd7f2c4b..78c0bc27d4 100644 --- a/src/llama-hparams.h +++ b/src/llama-hparams.h @@ -89,6 +89,7 @@ struct llama_hparams { bool expert_weights_norm = false; uint32_t expert_gating_func = LLAMA_EXPERT_GATING_FUNC_TYPE_NONE; uint32_t moe_every_n_layers = 0; + uint32_t moe_latent_size = 0; uint32_t nextn_predict_layers = 0; float f_norm_eps; diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 0fa47e1b41..9d2361372b 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -135,6 +135,7 @@ const char * llm_type_name(llm_type type) { case LLM_TYPE_100B_A6B: return "100B.A6B"; case LLM_TYPE_102B_A12B: return "102B.A12B"; case LLM_TYPE_106B_A12B: return "106B.A12B"; + case LLM_TYPE_120B_A12B: return "120B.A12B"; case LLM_TYPE_122B_A10B: return "122B.A10B"; case LLM_TYPE_196B_A11B: return "196B.A11B"; case LLM_TYPE_230B_A10B: return "230B.A10B"; @@ -1861,10 +1862,12 @@ void llama_model::load_hparams(llama_model_loader & ml) { ml.get_key(LLM_KV_EXPERT_SHARED_COUNT, hparams.n_expert_shared, false); ml.get_key(LLM_KV_EXPERT_WEIGHTS_NORM, hparams.expert_weights_norm, false); ml.get_key(LLM_KV_EXPERT_WEIGHTS_SCALE, hparams.expert_weights_scale, false); + ml.get_key(LLM_KV_MOE_LATENT_SIZE, hparams.moe_latent_size, false); switch (hparams.n_layer) { case 52: type = LLM_TYPE_31B_A3_5B; break; // Nemotron-H_MOE 31B case 56: type = LLM_TYPE_9B; break; + case 88: type = LLM_TYPE_120B_A12B; break; default: type = LLM_TYPE_UNKNOWN; } } break; @@ -5544,6 +5547,7 @@ bool llama_model::load_tensors(llama_model_loader & ml) { const int64_t n_ssm_head = hparams.ssm_dt_rank; const int64_t n_group = hparams.ssm_n_group; const int64_t d_in_proj = 2*d_inner + 2*n_group*d_state + n_ssm_head; + const int64_t moe_n_embd = hparams.moe_latent_size > 0 ? hparams.moe_latent_size : n_embd; // embeddings tok_embd = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, 0); @@ -5603,8 +5607,11 @@ bool llama_model::load_tensors(llama_model_loader & ml) { layer.ffn_exp_probs_b = create_tensor(tn(LLM_TENSOR_FFN_EXP_PROBS_B, "bias", i), {n_expert }, 0); // MoE branch - layer.ffn_down_exps = create_tensor(tn(LLM_TENSOR_FFN_DOWN_EXPS, "weight", i), {n_ff_exp, n_embd, n_expert}, 0); - layer.ffn_up_exps = create_tensor(tn(LLM_TENSOR_FFN_UP_EXPS, "weight", i), { n_embd, n_ff_exp, n_expert}, 0); + layer.ffn_latent_down = create_tensor(tn(LLM_TENSOR_FFN_LATENT_DOWN, "weight", i), {n_embd, moe_n_embd}, TENSOR_NOT_REQUIRED); + layer.ffn_latent_up = create_tensor(tn(LLM_TENSOR_FFN_LATENT_UP, "weight", i), {moe_n_embd, n_embd}, TENSOR_NOT_REQUIRED); + + layer.ffn_down_exps = create_tensor(tn(LLM_TENSOR_FFN_DOWN_EXPS, "weight", i), {n_ff_exp, moe_n_embd, n_expert}, 0); + layer.ffn_up_exps = create_tensor(tn(LLM_TENSOR_FFN_UP_EXPS, "weight", i), {moe_n_embd, n_ff_exp, n_expert}, 0); // Shared expert branch layer.ffn_down_shexp = create_tensor(tn(LLM_TENSOR_FFN_DOWN_SHEXP, "weight", i), {n_ff_shexp, n_embd}, 0); diff --git a/src/llama-model.h b/src/llama-model.h index 5ecb8344a2..74c79a7749 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -126,6 +126,7 @@ enum llm_type { LLM_TYPE_100B_A6B, LLM_TYPE_102B_A12B, // Solar-Open LLM_TYPE_106B_A12B, // GLM-4.5-Air + LLM_TYPE_120B_A12B, // Nemotron 3 Super LLM_TYPE_122B_A10B, // Qwen3.5 LLM_TYPE_196B_A11B, // Step3.5-Flash LLM_TYPE_230B_A10B, // Minimax M2 @@ -294,6 +295,10 @@ struct llama_layer { struct ggml_tensor * ffn_up_exps_b = nullptr; struct ggml_tensor * ffn_gate_up_exps_b = nullptr; + // ff MoE latent proj + struct ggml_tensor * ffn_latent_down = nullptr; + struct ggml_tensor * ffn_latent_up = nullptr; + // ff shared expert (shexp) struct ggml_tensor * ffn_gate_inp_shexp = nullptr; struct ggml_tensor * ffn_gate_shexp = nullptr; diff --git a/src/models/nemotron-h.cpp b/src/models/nemotron-h.cpp index 6358215050..7af99174d1 100644 --- a/src/models/nemotron-h.cpp +++ b/src/models/nemotron-h.cpp @@ -114,9 +114,18 @@ ggml_tensor * llm_build_nemotron_h::build_ffn_layer(ggml_tensor * cur, const lla LLM_FFN_RELU_SQR, LLM_FFN_PAR, il); cb(cur, "ffn_out", il); } else { - ggml_tensor * ffn_inp = cur; + ggml_tensor * inp_emb = cur; + ggml_tensor * inp_latent = cur; + + if (model.layers[il].ffn_latent_down) { + inp_latent = ggml_mul_mat(ctx0, model.layers[il].ffn_latent_down, cur); + } + + ggml_tensor * router_logits = build_lora_mm(model.layers[il].ffn_gate_inp, cur); + cb(router_logits, "ffn_moe_logits", il); + ggml_tensor * moe_out = - build_moe_ffn(ffn_inp, + build_moe_ffn(inp_latent, model.layers[il].ffn_gate_inp, model.layers[il].ffn_up_exps, nullptr, // no gate @@ -126,10 +135,15 @@ ggml_tensor * llm_build_nemotron_h::build_ffn_layer(ggml_tensor * cur, const lla LLM_FFN_RELU_SQR, hparams.expert_weights_norm, hparams.expert_weights_scale, LLAMA_EXPERT_GATING_FUNC_TYPE_SIGMOID, - il); + il, + router_logits); cb(moe_out, "ffn_moe_out", il); - ggml_tensor * ffn_shexp = build_ffn(ffn_inp, + if (model.layers[il].ffn_latent_up) { + moe_out = ggml_mul_mat(ctx0, model.layers[il].ffn_latent_up, moe_out); + } + + ggml_tensor * ffn_shexp = build_ffn(inp_emb, model.layers[il].ffn_up_shexp, NULL, NULL, NULL /* no gate */ , NULL, NULL, model.layers[il].ffn_down_shexp, NULL, NULL, From 3ca19b0e9f3f4f444d22c9f509805d037a611847 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 11 Mar 2026 21:39:40 +0200 Subject: [PATCH 02/28] benches : add nemotron super (#20420) --- benches/nemotron/nemotron-dgx-spark.md | 72 ++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 benches/nemotron/nemotron-dgx-spark.md diff --git a/benches/nemotron/nemotron-dgx-spark.md b/benches/nemotron/nemotron-dgx-spark.md new file mode 100644 index 0000000000..2bce30a30e --- /dev/null +++ b/benches/nemotron/nemotron-dgx-spark.md @@ -0,0 +1,72 @@ +# NVIDIA DGX Spark + +## System info + +```bash +uname --all +Linux spark-17ed 6.11.0-1016-nvidia #16-Ubuntu SMP PREEMPT_DYNAMIC Sun Sep 21 16:52:46 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux + +g++ --version +g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 + +nvidia-smi +Fri Mar 6 11:39:45 2026 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 580.95.05 Driver Version: 580.95.05 CUDA Version: 13.0 | ++-----------------------------------------+------------------------+----------------------+ +| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA GB10 On | 0000000F:01:00.0 Off | N/A | +| N/A 52C P0 13W / N/A | Not Supported | 0% Default | +| | | N/A | ++-----------------------------------------+------------------------+----------------------+ +``` + +## ggml-org/nemotron-3-super-120b-GGUF + +Model: https://huggingface.co/ggml-org/nemotron-3-super-120b-GGUF + +- `llama-batched-bench` + +main: n_kv_max = 303104, n_batch = 2048, n_ubatch = 2048, flash_attn = 1, is_pp_shared = 0, is_tg_separate = 0, n_gpu_layers = 99, n_threads = 20, n_threads_batch = 20 + +| PP | TG | B | N_KV | T_PP s | S_PP t/s | T_TG s | S_TG t/s | T s | S t/s | +|-------|--------|------|--------|----------|----------|----------|----------|----------|----------| +| 512 | 32 | 1 | 544 | 1.094 | 468.05 | 1.621 | 19.74 | 2.715 | 200.37 | +| 512 | 32 | 2 | 1088 | 1.463 | 700.16 | 2.437 | 26.26 | 3.900 | 279.01 | +| 512 | 32 | 4 | 2176 | 2.647 | 773.76 | 4.043 | 31.66 | 6.689 | 325.29 | +| 512 | 32 | 8 | 4352 | 5.291 | 774.14 | 6.151 | 41.62 | 11.442 | 380.37 | +| 512 | 32 | 16 | 8704 | 10.603 | 772.62 | 10.385 | 49.30 | 20.987 | 414.72 | +| 512 | 32 | 32 | 17408 | 21.231 | 771.69 | 18.235 | 56.16 | 39.466 | 441.09 | +| 4096 | 32 | 1 | 4128 | 5.340 | 767.05 | 1.616 | 19.81 | 6.956 | 593.47 | +| 4096 | 32 | 2 | 8256 | 10.673 | 767.55 | 2.454 | 26.08 | 13.127 | 628.94 | +| 4096 | 32 | 4 | 16512 | 21.348 | 767.46 | 4.072 | 31.44 | 25.420 | 649.57 | +| 4096 | 32 | 8 | 33024 | 42.714 | 767.15 | 6.277 | 40.78 | 48.991 | 674.08 | +| 4096 | 32 | 16 | 66048 | 85.385 | 767.54 | 10.596 | 48.32 | 95.981 | 688.14 | +| 4096 | 32 | 32 | 132096 | 170.819 | 767.32 | 18.619 | 55.00 | 189.437 | 697.31 | +| 8192 | 32 | 1 | 8224 | 10.690 | 766.32 | 1.619 | 19.76 | 12.310 | 668.10 | +| 8192 | 32 | 2 | 16448 | 21.382 | 766.24 | 2.467 | 25.94 | 23.850 | 689.65 | +| 8192 | 32 | 4 | 32896 | 42.782 | 765.92 | 4.098 | 31.23 | 46.881 | 701.69 | +| 8192 | 32 | 8 | 65792 | 85.582 | 765.77 | 6.368 | 40.20 | 91.951 | 715.52 | +| 8192 | 32 | 16 | 131584 | 171.066 | 766.21 | 10.774 | 47.52 | 181.840 | 723.62 | +| 8192 | 32 | 32 | 263168 | 342.140 | 766.19 | 18.969 | 53.98 | 361.109 | 728.78 | + + +- `llama-bench` + +| model | size | params | backend | n_ubatch | fa | test | t/s | +| ----------------------- | ---------: | ---------: | ---------- | -------: | -: | --------------: | -------------------: | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | pp2048 | 768.84 ± 0.90 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | tg32 | 19.94 ± 0.16 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | pp2048 @ d4096 | 764.51 ± 0.50 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | tg32 @ d4096 | 19.95 ± 0.18 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | pp2048 @ d8192 | 759.53 ± 0.71 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | tg32 @ d8192 | 19.83 ± 0.18 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | pp2048 @ d16384 | 747.98 ± 1.58 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | tg32 @ d16384 | 19.84 ± 0.18 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | pp2048 @ d32768 | 724.40 ± 2.70 | +| nemotron 120B.A12B Q4_K | 65.10 GiB | 120.67 B | CUDA | 2048 | 1 | tg32 @ d32768 | 19.45 ± 0.18 | + +build: 04a65daab (8268) From 5eae9cb1d9ecf0bbe031352da61b8b22a3e10bbb Mon Sep 17 00:00:00 2001 From: Richard Davison Date: Wed, 11 Mar 2026 21:02:54 +0100 Subject: [PATCH 03/28] ggml : add NVFP4 quantization type support (#19769) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * WIP: add NVFP4 quantization support * tests * improve NVFP4 dot product implementation performance and fix bad super call * typo * Use nvfp4 kvalues * vulkan : fix NVFP4 shader compilation by including kvalues_mxfp4 lookup table * vulcal and perf fixes * wip * Fix metal * fix vulcan * Rename threshold & fix wrong scale * Fix MOE * Shelf backend implementations (CUDA, Metal, Vulkan, arch-specific SIMD) Remove NVFP4 support from GPU backends and architecture-specific optimized dot products. These should be added in separate PRs so backend specialists can review them independently. Reverted files: - ggml-cuda: common.cuh, convert.cu, mmq.cu/cuh, mmvq.cu, vecdotq.cuh, quantize.cu/cuh, mma.cuh, ggml-cuda.cu, fattn-tile.cuh - ggml-metal: ggml-metal.metal, ggml-metal-device.cpp, ggml-metal-impl.h, ggml-metal-ops.cpp - ggml-vulkan: ggml-vulkan.cpp, all vulkan-shaders/* - ggml-cpu arch: arm/quants.c, x86/quants.c, powerpc/quants.c, s390/quants.c Core NVFP4 support (type definition, CPU fallback dot product, quantization, dequantization, conversion) is retained. * Fix arch-fallback.h: add NVFP4 generic fallback for all platforms After shelving backend-specific SIMD implementations, the generic CPU dot product needs to be aliased on ARM, x86, PowerPC, and s390 platforms that previously relied on arch-specific versions. * quantize: add NVFP4 as a quantization type option * Fix ggml_fp32_to_ue4m3: handle subnormal values Previously, values with ue4m3_exp <= 0 were clamped to 0, causing all small scales to underflow. This made NVFP4 quantization via llama-quantize produce garbage (PPL = 5.8M) since typical transformer weights have amax/6.0 in the range 0.001-0.01, which falls in the UE4M3 subnormal range. Now subnormals are properly encoded as man * 2^-9 (exp=0, man=1..7), matching the decode path in ggml_ue4m3_to_fp32. Result: NVFP4 requantization now produces PPL = 15.25 (vs F16 = 14.33), comparable to Q4_1 (PPL = 15.81) at slightly lower BPW (4.70 vs 5.15). * Restore ARM NEON NVFP4 dot product implementation Restores the optimized ggml_vec_dot_nvfp4_q8_0 for ARM NEON using vqtbl1q_s8 lookup and ggml_vdotq_s32 dot products. tg128 performance: 4.37 t/s (generic) -> 13.66 t/s (NEON) = 3.1x speedup * Optimize ARM NEON NVFP4 dot product: LUT + vpaddq + vfmaq - Add ue4m3_scale_lut[128] to ggml-common.h replacing branch-heavy ggml_ue4m3_to_fp32() in the hot loop - Use vpaddq_s32 for pairwise int32 reduction instead of vaddvq_s32 - Accumulate with vfmaq_f32 into float32x4_t vector accumulators tg128: 8.1 -> 31.0 t/s (3.8x speedup, 77% of Q4_1 speed) * ARM NEON NVFP4: rearrange q8 to match nibble layout Alternative approach: rearrange q8 data to match the NVFP4 lo/hi nibble layout instead of rearranging the looked-up NVFP4 values. Eliminates vcombine_s8(vget_low, vget_low) shuffles. Performance is equivalent (~18.5 t/s) - the bottleneck is the 2x block overhead from QK=16 vs QK=32, not the shuffle instructions. * CPU only backend 64 super-block layout * cleanup * Remove unused LUT * int * exclude NVFP4 from unsupported ops in metal build * remove quantization for now * store scales as native UE4M3, preserve original model bits when possible * Update convert_hf_to_gguf.py Co-authored-by: Sigbjørn Skjæret * correct comment * format * reduce duplication and cleanup * Address comments * move detection to prepare_tensors * Use math instead of const * Move * fix comment * Shelf quantize tests * Rebase and move check * cleanup * lint * Update gguf-py/gguf/scripts/gguf_convert_endian.py Co-authored-by: Sigbjørn Skjæret * Use fallback quant config * Simplify Co-authored-by: Sigbjørn Skjæret * organize * Refactor * Update convert_hf_to_gguf.py Co-authored-by: Sigbjørn Skjæret * Update convert_hf_to_gguf.py Co-authored-by: Sigbjørn Skjæret * Update convert_hf_to_gguf.py Co-authored-by: Sigbjørn Skjæret * add quantize_nvfp4 (required for test_quants.py) * add quantize_nvfp4 (required for test_quants.py) * add quantize_nvfp4 (required for test_quants.py) * fix return type --------- Co-authored-by: Sigbjørn Skjæret --- convert_hf_to_gguf.py | 145 ++++++++++++++++++++ ggml/include/ggml.h | 4 +- ggml/src/ggml-common.h | 11 ++ ggml/src/ggml-cpu/arch-fallback.h | 8 ++ ggml/src/ggml-cpu/arch/arm/quants.c | 84 ++++++++++++ ggml/src/ggml-cpu/ggml-cpu.c | 6 + ggml/src/ggml-cpu/ops.cpp | 7 + ggml/src/ggml-cpu/quants.c | 40 ++++++ ggml/src/ggml-cpu/quants.h | 3 + ggml/src/ggml-impl.h | 55 ++++++++ ggml/src/ggml-metal/ggml-metal-device.m | 4 +- ggml/src/ggml-quants.c | 72 ++++++++++ ggml/src/ggml-quants.h | 3 + ggml/src/ggml.c | 10 ++ gguf-py/gguf/constants.py | 2 + gguf-py/gguf/gguf_writer.py | 11 +- gguf-py/gguf/quants.py | 59 ++++++++ gguf-py/gguf/scripts/gguf_convert_endian.py | 1 + gguf-py/tests/test_quants.py | 1 + include/llama.h | 1 + src/llama-graph.cpp | 52 ++++++- src/llama-graph.h | 10 +- src/llama-model-loader.cpp | 2 + src/llama-model.cpp | 56 +++++++- src/llama-model.h | 19 ++- src/models/bitnet.cpp | 24 ++-- src/models/llama.cpp | 24 +++- src/models/qwen3.cpp | 18 ++- src/models/qwen3moe.cpp | 18 ++- tests/test-backend-ops.cpp | 4 - tests/test-quantize-fns.cpp | 7 +- 31 files changed, 710 insertions(+), 51 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 4a4aac41dc..5657ae8744 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -144,6 +144,7 @@ class ModelBase: self.metadata_override = metadata_override self.model_name = model_name self.dir_model_card = dir_model # overridden in convert_lora_to_gguf.py + self._is_nvfp4 = False # Apply heuristics to figure out typical tensor encoding based on first tensor's dtype # NOTE: can't use field "torch_dtype" in config.json, because some finetunes lie. @@ -271,6 +272,9 @@ class ModelBase: return tensors def dequant_model(self): + if self._is_nvfp4: + return # NVFP4 weights are repacked in _generate_nvfp4_tensors + tensors_to_remove: list[str] = [] new_tensors: dict[str, Callable[[], Tensor]] = {} @@ -516,6 +520,13 @@ class ModelBase: raise NotImplementedError("set_gguf_parameters() must be implemented in subclasses") def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + # skip NVFP4 auxiliary tensors (handled in _generate_nvfp4_tensors) + if self._is_nvfp4: + if name.endswith((".weight_scale", ".weight_scale_2", ".input_scale", ".k_scale", ".v_scale")): + return [] + if name.endswith(".weight") and name.replace(".weight", ".weight_scale") in self.model_tensors: + return [] + new_name = self.map_tensor_name(name) # Handle gate/up expert tensor fusion if enabled @@ -551,9 +562,135 @@ class ModelBase: def generate_extra_tensors(self) -> Iterable[tuple[str, Tensor]]: return () + @staticmethod + def _nvfp4_pack(weight: Tensor, scale: Tensor) -> tuple[np.ndarray, list[int]]: + """Repack NVFP4 ModelOpt tensors into ggml super-block layout. + Preserves original E4M3 scale bits as UE4M3 (strip sign bit). + The per-tensor scale2 factor is stored as a separate tensor and applied at inference time via ggml_mul(). + Returns (raw_data, logical_shape).""" + + out_features = weight.shape[0] + n_blocks = scale.shape[1] + + # Unpack ModelOpt nibble-packed weights + w = weight.reshape(out_features, n_blocks, 8) + vals = torch.stack([w & 0x0F, w >> 4], dim=-1).reshape(out_features, n_blocks, 16) + + # Preserve original E4M3 scale bits as UE4M3 (strip sign bit) + d_ue = scale.view(torch.uint8).numpy().reshape(out_features, n_blocks) & 0x7F + qs = (vals[:, :, :8] | (vals[:, :, 8:] << 4)).to(torch.uint8).numpy() + + # Pack into super-blocks: [4 UE4M3 scales, 32 qs bytes] = 36 bytes per 64 elements + n_super = n_blocks // 4 + d_grouped = d_ue.reshape(out_features, n_super, 4) + qs_grouped = qs.reshape(out_features, n_super, 4, 8).reshape(out_features, n_super, 32) + raw = np.concatenate([d_grouped, qs_grouped], axis=-1).reshape(out_features, n_super * 36) + return raw, [out_features, n_super * 64] + + @staticmethod + def _nvfp4_scale2_is_trivial(scale2: Tensor) -> bool: + return scale2.numel() <= 1 and abs(float(scale2.float().sum()) - 1.0) < 1e-6 + + def _repack_nvfp4(self, new_name: str, weight: Tensor, scale: Tensor, scale2: Tensor): + raw, shape = self._nvfp4_pack(weight, scale) + logger.info(f"Repacked {new_name} with shape {shape} and quantization NVFP4") + self.gguf_writer.add_tensor(new_name, raw, raw_dtype=gguf.GGMLQuantizationType.NVFP4) + + # Emit per-tensor scale2 as a separate F32 tensor when non-trivial + if not self._nvfp4_scale2_is_trivial(scale2): + scale2_f32 = scale2.float().numpy().flatten() + scale_name = new_name.replace(".weight", ".scale") + logger.info(f" + {scale_name} (per-tensor NVFP4 scale2, shape [{scale2_f32.size}])") + self.gguf_writer.add_tensor(scale_name, scale2_f32) + + def _generate_nvfp4_tensors(self): + # Per-layer expert merging to avoid holding all experts in memory + expert_blocks: dict[tuple[int, str], list[tuple[int, np.ndarray]]] = {} + expert_scales: dict[tuple[int, str], list[tuple[int, float]]] = {} + expert_shapes: dict[tuple[int, str], list[int]] = {} + n_experts = self.find_hparam(["num_local_experts", "num_experts"], optional=True) or 0 + + for name in list(self.model_tensors.keys()): + if not name.endswith(".weight"): + continue + scale_name = name.replace(".weight", ".weight_scale") + scale2_name = name.replace(".weight", ".weight_scale_2") + if scale_name not in self.model_tensors: + continue + # Force eager materialization of lazy tensors + weight = LazyTorchTensor.to_eager(self.model_tensors[name]()) + scale = LazyTorchTensor.to_eager(self.model_tensors[scale_name]()) + scale2 = LazyTorchTensor.to_eager(self.model_tensors.get(scale2_name, lambda: torch.tensor(1.0))()) + + # Check if this is a per-expert tensor + m = re.search(r'\.experts\.(\d+)\.(gate_proj|up_proj|down_proj)\.weight$', name) + if m: + expert_id = int(m.group(1)) + proj_type = m.group(2) + bid_m = re.search(r'\.layers\.(\d+)\.', name) + bid = int(bid_m.group(1)) if bid_m else 0 + key = (bid, proj_type) + + raw, shape = self._nvfp4_pack(weight, scale) + + if key not in expert_blocks: + expert_blocks[key] = [] + expert_scales[key] = [] + expert_shapes[key] = shape + expert_blocks[key].append((expert_id, raw.copy())) + # Collect per-expert scale2 (scalar per expert) + expert_scales[key].append((expert_id, float(scale2.float().sum()))) + + # Flush when all experts for this (layer, proj) are collected + if n_experts > 0 and len(expert_blocks[key]) >= n_experts: + self._flush_nvfp4_experts(key, expert_blocks, expert_scales, expert_shapes, bid, proj_type) + else: + new_name = self.map_tensor_name(name) + self._repack_nvfp4(new_name, weight, scale, scale2) + + # Flush any remaining experts (fallback if n_experts was unknown) + for (bid, proj_type) in list(expert_blocks.keys()): + self._flush_nvfp4_experts((bid, proj_type), expert_blocks, expert_scales, expert_shapes, bid, proj_type) + + def _flush_nvfp4_experts(self, key, expert_blocks, expert_scales, expert_shapes, bid, proj_type): + experts = expert_blocks.pop(key) + scales = expert_scales.pop(key) + shape = expert_shapes.pop(key) + + experts.sort(key=lambda x: x[0]) + merged = np.stack([e[1] for e in experts], axis=0) + merged_name = f"model.layers.{bid}.mlp.experts.{proj_type}.weight" + new_name = self.map_tensor_name(merged_name) + logger.info(f"Repacked {new_name} with shape [{len(experts)}, {shape[0]}, {shape[1]}] and quantization NVFP4") + self.gguf_writer.add_tensor(new_name, merged, raw_dtype=gguf.GGMLQuantizationType.NVFP4) + + # Emit per-expert scale2 tensor if any expert has non-trivial scale2 + scales.sort(key=lambda x: x[0]) + scale_vals = np.array([s[1] for s in scales], dtype=np.float32) + if not np.allclose(scale_vals, 1.0, atol=1e-6): + scale_name = new_name.replace(".weight", ".scale") + logger.info(f" + {scale_name} (per-expert NVFP4 scale2, shape [{len(scales)}])") + self.gguf_writer.add_tensor(scale_name, scale_vals) + + del experts, merged + def prepare_tensors(self): + # detect NVFP4 quantization (ModelOpt format) + quant_algo = (self.hparams.get("quantization_config") or {}).get("quant_algo") + quant_config_file = self.dir_model / "hf_quant_config.json" + + if not quant_algo and quant_config_file.is_file(): + with open(quant_config_file, "r", encoding="utf-8") as f: + quant_algo = (json.load(f).get("quantization") or {}).get("quant_algo") + + self._is_nvfp4 = quant_algo == "NVFP4" + self.dequant_model() + # NVFP4 weights are repacked and written directly to gguf_writer + if self._is_nvfp4: + self._generate_nvfp4_tensors() + # Handle empty tensor_map for models with block_count=0 (like MobileNetV5) if self.tensor_map.mapping: max_name_len = max(len(s) for _, s in self.tensor_map.mapping.values()) + len(".weight,") @@ -4303,6 +4440,14 @@ class Qwen2MoeModel(TextModel): # process the experts separately name = name.replace("language_model.", "") # InternVL + # NVFP4 expert weights are handled in _generate_nvfp4_tensors + if self._is_nvfp4 and "experts" in name: + if name.endswith((".weight", ".weight_scale", ".weight_scale_2", ".input_scale")): + if name.endswith(".weight") and name.replace(".weight", ".weight_scale") in self.model_tensors: + return + if not name.endswith(".weight"): + return + # handle aggregated expert tensors # GGUF stores dimensions reversed from PyTorch, so: # PyTorch (A,B,C) -> GGUF writes [C,B,A] -> GGML reads ne={C,B,A} diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index 566e271479..3323f8e6c3 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -427,7 +427,8 @@ extern "C" { // GGML_TYPE_IQ4_NL_4_8 = 37, // GGML_TYPE_IQ4_NL_8_8 = 38, GGML_TYPE_MXFP4 = 39, // MXFP4 (1 block) - GGML_TYPE_COUNT = 40, + GGML_TYPE_NVFP4 = 40, // NVFP4 (4 blocks, E4M3 scale) + GGML_TYPE_COUNT = 41, }; // precision @@ -463,6 +464,7 @@ extern "C" { GGML_FTYPE_MOSTLY_IQ1_M = 23, // except 1d tensors GGML_FTYPE_MOSTLY_BF16 = 24, // except 1d tensors GGML_FTYPE_MOSTLY_MXFP4 = 25, // except 1d tensors + GGML_FTYPE_MOSTLY_NVFP4 = 26, // except 1d tensors }; // available tensor operations: diff --git a/ggml/src/ggml-common.h b/ggml/src/ggml-common.h index 93ab7ea446..92cf739e7a 100644 --- a/ggml/src/ggml-common.h +++ b/ggml/src/ggml-common.h @@ -102,6 +102,9 @@ typedef sycl::half2 ggml_half2; #define QI_MXFP4 (QK_MXFP4 / (4 * QR_MXFP4)) #define QR_MXFP4 2 +#define QI_NVFP4 (QK_NVFP4 / (4 * QR_NVFP4)) +#define QR_NVFP4 2 + #define QI5_0 (QK5_0 / (4 * QR5_0)) #define QR5_0 2 @@ -194,6 +197,14 @@ typedef struct { } block_mxfp4; static_assert(sizeof(block_mxfp4) == sizeof(uint8_t) + QK_MXFP4/2, "wrong mxfp4 block size/padding"); +#define QK_NVFP4 64 +#define QK_NVFP4_SUB 16 // sub-block size for per-group scales +typedef struct { + uint8_t d[QK_NVFP4/QK_NVFP4_SUB]; // UE4M3 scales (4 bytes, one per 16-element sub-block) + uint8_t qs[QK_NVFP4/2]; // packed 4-bit E2M1 values (32 bytes) +} block_nvfp4; +static_assert(sizeof(block_nvfp4) == sizeof(uint8_t)*(QK_NVFP4/QK_NVFP4_SUB) + QK_NVFP4/2, "wrong nvfp4 block size/padding"); + #define QK5_0 32 typedef struct { ggml_half d; // delta diff --git a/ggml/src/ggml-cpu/arch-fallback.h b/ggml/src/ggml-cpu/arch-fallback.h index 48315610f2..175aa4a4bb 100644 --- a/ggml/src/ggml-cpu/arch-fallback.h +++ b/ggml/src/ggml-cpu/arch-fallback.h @@ -15,6 +15,7 @@ #define ggml_vec_dot_q5_1_q8_1_generic ggml_vec_dot_q5_1_q8_1 #define ggml_vec_dot_q8_0_q8_0_generic ggml_vec_dot_q8_0_q8_0 #define ggml_vec_dot_mxfp4_q8_0_generic ggml_vec_dot_mxfp4_q8_0 +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 #define ggml_vec_dot_tq1_0_q8_K_generic ggml_vec_dot_tq1_0_q8_K #define ggml_vec_dot_tq2_0_q8_K_generic ggml_vec_dot_tq2_0_q8_K #define ggml_vec_dot_q2_K_q8_K_generic ggml_vec_dot_q2_K_q8_K @@ -79,6 +80,8 @@ #define ggml_gemm_mxfp4_8x8_q8_0_generic ggml_gemm_mxfp4_8x8_q8_0 #define ggml_gemm_q2_K_8x8_q8_K_generic ggml_gemm_q2_K_8x8_q8_K #elif defined(__x86_64__) || defined(__i386__) || defined(_M_IX86) || defined(_M_X64) +// quants.c +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 // repack.cpp #define ggml_quantize_mat_q8_0_4x4_generic ggml_quantize_mat_q8_0_4x4 #define ggml_quantize_mat_q8_K_4x4_generic ggml_quantize_mat_q8_K_4x4 @@ -108,6 +111,7 @@ // ref: https://github.com/ggml-org/llama.cpp/pull/14146#issuecomment-2972561679 // quants.c #define quantize_row_q8_K_generic quantize_row_q8_K +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 #define ggml_vec_dot_tq1_0_q8_K_generic ggml_vec_dot_tq1_0_q8_K #define ggml_vec_dot_tq2_0_q8_K_generic ggml_vec_dot_tq2_0_q8_K #define ggml_vec_dot_iq1_m_q8_K_generic ggml_vec_dot_iq1_m_q8_K @@ -155,6 +159,7 @@ #define ggml_vec_dot_tq2_0_q8_K_generic ggml_vec_dot_tq2_0_q8_K #define ggml_vec_dot_iq1_m_q8_K_generic ggml_vec_dot_iq1_m_q8_K #define ggml_vec_dot_mxfp4_q8_0_generic ggml_vec_dot_mxfp4_q8_0 +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 // repack.cpp #define ggml_quantize_mat_q8_0_4x4_generic ggml_quantize_mat_q8_0_4x4 #define ggml_quantize_mat_q8_0_4x8_generic ggml_quantize_mat_q8_0_4x8 @@ -201,6 +206,7 @@ #define ggml_vec_dot_iq4_nl_q8_0_generic ggml_vec_dot_iq4_nl_q8_0 #define ggml_vec_dot_iq4_xs_q8_K_generic ggml_vec_dot_iq4_xs_q8_K #define ggml_vec_dot_mxfp4_q8_0_generic ggml_vec_dot_mxfp4_q8_0 +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 // repack.cpp #define ggml_quantize_mat_q8_0_4x1_generic ggml_quantize_mat_q8_0_4x1 #define ggml_quantize_mat_q8_0_4x4_generic ggml_quantize_mat_q8_0_4x4 @@ -240,6 +246,7 @@ #elif defined(__s390x__) // quants.c #define quantize_row_q8_K_generic quantize_row_q8_K +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 #define ggml_vec_dot_tq1_0_q8_K_generic ggml_vec_dot_tq1_0_q8_K #define ggml_vec_dot_tq2_0_q8_K_generic ggml_vec_dot_tq2_0_q8_K #define ggml_vec_dot_q2_K_q8_K_generic ggml_vec_dot_q2_K_q8_K @@ -302,6 +309,7 @@ #define ggml_vec_dot_iq4_nl_q8_0_generic ggml_vec_dot_iq4_nl_q8_0 #define ggml_vec_dot_iq4_xs_q8_K_generic ggml_vec_dot_iq4_xs_q8_K #define ggml_vec_dot_mxfp4_q8_0_generic ggml_vec_dot_mxfp4_q8_0 +#define ggml_vec_dot_nvfp4_q8_0_generic ggml_vec_dot_nvfp4_q8_0 // repack.cpp #define ggml_quantize_mat_q8_0_4x4_generic ggml_quantize_mat_q8_0_4x4 #define ggml_quantize_mat_q8_0_4x8_generic ggml_quantize_mat_q8_0_4x8 diff --git a/ggml/src/ggml-cpu/arch/arm/quants.c b/ggml/src/ggml-cpu/arch/arm/quants.c index a707d63985..c1856201b3 100644 --- a/ggml/src/ggml-cpu/arch/arm/quants.c +++ b/ggml/src/ggml-cpu/arch/arm/quants.c @@ -650,6 +650,90 @@ void ggml_vec_dot_mxfp4_q8_0(int n, float * GGML_RESTRICT s, size_t bs, const vo *s = sumf; } +void ggml_vec_dot_nvfp4_q8_0(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) { + assert(nrc == 1); + UNUSED(nrc); + UNUSED(bx); + UNUSED(by); + UNUSED(bs); + assert(n % QK_NVFP4 == 0); + + const block_nvfp4 * GGML_RESTRICT x = vx; + const block_q8_0 * GGML_RESTRICT y = vy; + + // Each NVFP4 super-block (64 elements) spans 2 q8_0 blocks + const int nb = n / QK_NVFP4; + + float sumf = 0; + +#if defined __ARM_NEON + const int8x16_t values = vld1q_s8(kvalues_mxfp4); + const uint8x16_t m4b = vdupq_n_u8(0x0f); + float32x4_t acc = vdupq_n_f32(0.0f); + + for (int ib = 0; ib < nb; ++ib) { + const uint8x16_t q4bits_0 = vld1q_u8(x[ib].qs); + const uint8x16_t q4bits_1 = vld1q_u8(x[ib].qs + 16); + + const int8x16_t q4_lo_0 = ggml_vqtbl1q_s8(values, vandq_u8 (q4bits_0, m4b)); + const int8x16_t q4_hi_0 = ggml_vqtbl1q_s8(values, vshrq_n_u8(q4bits_0, 4)); + const int8x16_t q4_lo_1 = ggml_vqtbl1q_s8(values, vandq_u8 (q4bits_1, m4b)); + const int8x16_t q4_hi_1 = ggml_vqtbl1q_s8(values, vshrq_n_u8(q4bits_1, 4)); + + const int8x16_t q8_0a = vld1q_s8(y[2*ib].qs); + const int8x16_t q8_0b = vld1q_s8(y[2*ib].qs + 16); + const int8x16_t q8_lo_0 = vcombine_s8(vget_low_s8(q8_0a), vget_low_s8(q8_0b)); + const int8x16_t q8_hi_0 = vcombine_s8(vget_high_s8(q8_0a), vget_high_s8(q8_0b)); + + const int8x16_t q8_1a = vld1q_s8(y[2*ib+1].qs); + const int8x16_t q8_1b = vld1q_s8(y[2*ib+1].qs + 16); + const int8x16_t q8_lo_1 = vcombine_s8(vget_low_s8(q8_1a), vget_low_s8(q8_1b)); + const int8x16_t q8_hi_1 = vcombine_s8(vget_high_s8(q8_1a), vget_high_s8(q8_1b)); + + const int32x4_t p0 = vaddq_s32( + ggml_vdotq_s32(vdupq_n_s32(0), q4_lo_0, q8_lo_0), + ggml_vdotq_s32(vdupq_n_s32(0), q4_hi_0, q8_hi_0)); + const int32x4_t p1 = vaddq_s32( + ggml_vdotq_s32(vdupq_n_s32(0), q4_lo_1, q8_lo_1), + ggml_vdotq_s32(vdupq_n_s32(0), q4_hi_1, q8_hi_1)); + + const int32x4_t sums = vpaddq_s32(p0, p1); + + // Decode 4 UE4M3 scales to f32 and multiply with q8 scales + const float dy0 = GGML_CPU_FP16_TO_FP32(y[2*ib].d); + const float dy1 = GGML_CPU_FP16_TO_FP32(y[2*ib+1].d); + const float32x4_t nvsc = { + ggml_ue4m3_to_fp32(x[ib].d[0]), + ggml_ue4m3_to_fp32(x[ib].d[1]), + ggml_ue4m3_to_fp32(x[ib].d[2]), + ggml_ue4m3_to_fp32(x[ib].d[3]) + }; + const float32x4_t scales = vmulq_f32(nvsc, (float32x4_t){dy0, dy0, dy1, dy1}); + + acc = vfmaq_f32(acc, vcvtq_f32_s32(sums), scales); + } + sumf = vaddvq_f32(acc); +#else + for (int ib = 0; ib < nb; ++ib) { + for (int si = 0; si < 4; ++si) { + const float d = ggml_ue4m3_to_fp32(x[ib].d[si]); + const int q8b = si / 2; + const int q8o = (si % 2) * QK_NVFP4_SUB; + const float dy = GGML_CPU_FP16_TO_FP32(y[2*ib + q8b].d); + + int sumi_lo = 0, sumi_hi = 0; + for (int j = 0; j < QK_NVFP4_SUB/2; ++j) { + const uint8_t qv = x[ib].qs[si*(QK_NVFP4_SUB/2) + j]; + sumi_lo += y[2*ib + q8b].qs[q8o + j + 0] * kvalues_mxfp4[qv & 0xf]; + sumi_hi += y[2*ib + q8b].qs[q8o + j + QK_NVFP4_SUB/2] * kvalues_mxfp4[qv >> 4]; + } + sumf += dy * d * (sumi_lo + sumi_hi); + } + } +#endif + *s = sumf; +} + void ggml_vec_dot_q5_0_q8_0(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) { const int qk = QK8_0; const int nb = n / qk; diff --git a/ggml/src/ggml-cpu/ggml-cpu.c b/ggml/src/ggml-cpu/ggml-cpu.c index dc2b5ffaa7..8b323bd9b0 100644 --- a/ggml/src/ggml-cpu/ggml-cpu.c +++ b/ggml/src/ggml-cpu/ggml-cpu.c @@ -270,6 +270,12 @@ static const struct ggml_type_traits_cpu type_traits_cpu[GGML_TYPE_COUNT] = { .vec_dot_type = GGML_TYPE_Q8_0, .nrows = 1, }, + [GGML_TYPE_NVFP4] = { + .from_float = quantize_row_nvfp4, + .vec_dot = ggml_vec_dot_nvfp4_q8_0, + .vec_dot_type = GGML_TYPE_Q8_0, + .nrows = 1, + }, [GGML_TYPE_Q2_K] = { .from_float = quantize_row_q2_K, .vec_dot = ggml_vec_dot_q2_K_q8_K, diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index 331e071a26..f9c4ec16e4 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -670,6 +670,7 @@ void ggml_compute_forward_add( case GGML_TYPE_Q5_1: case GGML_TYPE_Q8_0: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: @@ -1119,6 +1120,7 @@ void ggml_compute_forward_add1( case GGML_TYPE_Q8_0: case GGML_TYPE_Q8_1: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: @@ -1247,6 +1249,7 @@ void ggml_compute_forward_acc( case GGML_TYPE_Q8_0: case GGML_TYPE_Q8_1: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: @@ -4334,6 +4337,7 @@ void ggml_compute_forward_out_prod( case GGML_TYPE_Q5_1: case GGML_TYPE_Q8_0: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: @@ -4609,6 +4613,7 @@ void ggml_compute_forward_set( case GGML_TYPE_Q8_0: case GGML_TYPE_Q8_1: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: @@ -4831,6 +4836,7 @@ void ggml_compute_forward_get_rows( case GGML_TYPE_Q8_0: case GGML_TYPE_Q8_1: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: @@ -5555,6 +5561,7 @@ void ggml_compute_forward_clamp( case GGML_TYPE_Q8_0: case GGML_TYPE_Q8_1: case GGML_TYPE_MXFP4: + case GGML_TYPE_NVFP4: case GGML_TYPE_Q2_K: case GGML_TYPE_Q3_K: case GGML_TYPE_Q4_K: diff --git a/ggml/src/ggml-cpu/quants.c b/ggml/src/ggml-cpu/quants.c index 365cb36d2d..7ebbb9c6f1 100644 --- a/ggml/src/ggml-cpu/quants.c +++ b/ggml/src/ggml-cpu/quants.c @@ -50,6 +50,10 @@ void quantize_row_mxfp4(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, i quantize_row_mxfp4_ref(x, y, k); } +void quantize_row_nvfp4(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k) { + quantize_row_nvfp4_ref(x, y, k); +} + // // 2-6 bit quantization in super-blocks // @@ -216,6 +220,42 @@ void ggml_vec_dot_mxfp4_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, *s = sumf; } +// NVFP4: super-block of 64 elements = 4 sub-blocks of 16 = 2 q8_0 blocks +void ggml_vec_dot_nvfp4_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) { + assert(nrc == 1); + UNUSED(nrc); + UNUSED(bx); + UNUSED(by); + UNUSED(bs); + assert(n % QK_NVFP4 == 0); + + const block_nvfp4 * GGML_RESTRICT x = vx; + const block_q8_0 * GGML_RESTRICT y = vy; + + const int nb = n / QK_NVFP4; + + float sumf = 0; + + for (int ib = 0; ib < nb; ++ib) { + for (int s_idx = 0; s_idx < 4; ++s_idx) { + const float d = ggml_ue4m3_to_fp32(x[ib].d[s_idx]); + const int q8_block = s_idx / 2; + const int q8_off = (s_idx % 2) * QK_NVFP4_SUB; + const float dy = GGML_CPU_FP16_TO_FP32(y[2*ib + q8_block].d); + + int sumi_lo = 0, sumi_hi = 0; + for (int j = 0; j < QK_NVFP4_SUB/2; ++j) { + const uint8_t qv = x[ib].qs[s_idx*(QK_NVFP4_SUB/2) + j]; + sumi_lo += y[2*ib + q8_block].qs[q8_off + j + 0] * kvalues_mxfp4[qv & 0xf]; + sumi_hi += y[2*ib + q8_block].qs[q8_off + j + QK_NVFP4_SUB/2] * kvalues_mxfp4[qv >> 4]; + } + + sumf += dy * d * (sumi_lo + sumi_hi); + } + } + *s = sumf; +} + void ggml_vec_dot_q5_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc) { const int qk = QK8_0; const int nb = n / qk; diff --git a/ggml/src/ggml-cpu/quants.h b/ggml/src/ggml-cpu/quants.h index d83eb1b144..3584aaa43e 100644 --- a/ggml/src/ggml-cpu/quants.h +++ b/ggml/src/ggml-cpu/quants.h @@ -20,6 +20,7 @@ void quantize_row_q8_0(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, in void quantize_row_q8_1(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); void quantize_row_mxfp4(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); +void quantize_row_nvfp4(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); void quantize_row_q2_K(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); void quantize_row_q3_K(const float * GGML_RESTRICT x, void * GGML_RESTRICT y, int64_t k); @@ -42,6 +43,7 @@ void ggml_vec_dot_q5_1_q8_1(int n, float * GGML_RESTRICT s, size_t bs, const voi void ggml_vec_dot_q8_0_q8_0(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_mxfp4_q8_0(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); +void ggml_vec_dot_nvfp4_q8_0(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_q2_K_q8_K(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_q3_K_q8_K(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); @@ -73,6 +75,7 @@ void ggml_vec_dot_q5_1_q8_1_generic(int n, float * GGML_RESTRICT s, size_t bs, c void ggml_vec_dot_q8_0_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_mxfp4_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); +void ggml_vec_dot_nvfp4_q8_0_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_tq1_0_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_tq2_0_q8_K_generic(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); diff --git a/ggml/src/ggml-impl.h b/ggml/src/ggml-impl.h index e3714b38a6..9256865595 100644 --- a/ggml/src/ggml-impl.h +++ b/ggml/src/ggml-impl.h @@ -491,6 +491,61 @@ static inline float ggml_e8m0_to_fp32_half(uint8_t x) { #define GGML_E8M0_TO_FP32(x) ggml_e8m0_to_fp32(x) #define GGML_E8M0_TO_FP32_HALF(x) ggml_e8m0_to_fp32_half(x) +// UE4M3: unsigned, 4 exp bits (bias=7), 3 mantissa bits +// Returns value * 0.5 to match kvalues_mxfp4 convention (kvalues = 2 * E2M1_float) +static inline float ggml_ue4m3_to_fp32(uint8_t x) { + if (x == 0 || x == 0x7F) { + return 0.0f; + } + int exp = (x >> 3) & 0xF; + int man = x & 0x7; + float raw; + if (exp == 0) { + raw = ldexpf((float) man, -9); + } else { + raw = ldexpf(1.0f + (float) man / 8.0f, exp - 7); + } + return raw * 0.5f; +} + +static inline uint8_t ggml_fp32_to_ue4m3(float x) { + if (!(x > 0.0f)) { + return 0; + } + if (x > 448.0f) { + x = 448.0f; + } + uint32_t bits; + memcpy(&bits, &x, 4); + int fp32_exp = ((bits >> 23) & 0xFF) - 127; + int fp32_man = (bits >> 20) & 0x7; + int ue4m3_exp = fp32_exp + 7; + if (ue4m3_exp <= 0) { + // subnormal: value = man * 2^-9, man = round(x * 2^9) + int man = (int) (x * 512.0f + 0.5f); + if (man > 7) { + man = 7; + } + if (man < 1) { + return 0; + } + return (uint8_t) man; + } + if (ue4m3_exp >= 15) { + return 0x7E; + } + int round_bit = (bits >> 19) & 1; + int ue4m3_man = fp32_man + round_bit; + if (ue4m3_man > 7) { + ue4m3_man = 0; + ue4m3_exp++; + if (ue4m3_exp >= 15) { + return 0x7E; + } + } + return (uint8_t) ((ue4m3_exp << 3) | ue4m3_man); +} + /** * Converts brain16 to float32. * diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index 23bd2b2ab7..d42b8ab1eb 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -1158,7 +1158,7 @@ bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_te case GGML_OP_SOLVE_TRI: case GGML_OP_MUL_MAT: case GGML_OP_MUL_MAT_ID: - return has_simdgroup_reduction; + return has_simdgroup_reduction && op->src[0]->type != GGML_TYPE_NVFP4; case GGML_OP_SET: case GGML_OP_CPY: case GGML_OP_DUP: @@ -1216,7 +1216,7 @@ bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_te }; } case GGML_OP_GET_ROWS: - return true; + return op->src[0]->type != GGML_TYPE_NVFP4; case GGML_OP_SET_ROWS: { if (op->src[0]->type != GGML_TYPE_F32) { diff --git a/ggml/src/ggml-quants.c b/ggml/src/ggml-quants.c index e8e25633fb..cdaded865b 100644 --- a/ggml/src/ggml-quants.c +++ b/ggml/src/ggml-quants.c @@ -304,6 +304,41 @@ void quantize_row_mxfp4_ref(const float * GGML_RESTRICT x, block_mxfp4 * GGML_RE } } +void quantize_row_nvfp4_ref(const float * GGML_RESTRICT x, block_nvfp4 * GGML_RESTRICT y, int64_t k) { + static const int qk = QK_NVFP4; + static const int qk_sub = QK_NVFP4_SUB; + static const int n_sub = QK_NVFP4 / QK_NVFP4_SUB; + + assert(k % qk == 0); + + const int nb = k / qk; + + for (int i = 0; i < nb; i++) { + for (int s = 0; s < n_sub; s++) { + const float * xb = x + i*qk + s*qk_sub; + + float amax = 0.0f; + for (int j = 0; j < qk_sub; j++) { + if (amax < fabsf(xb[j])) { + amax = fabsf(xb[j]); + } + } + + // UE4M3 scale: amax / 6.0 maps the max E2M1 value (6.0) to amax + const uint8_t ue = ggml_fp32_to_ue4m3(amax / 6.0f); + y[i].d[s] = ue; + const float d = ggml_ue4m3_to_fp32(ue); + + for (int j = 0; j < qk_sub/2; ++j) { + const uint8_t x0 = best_index_mxfp4(xb[0 + j], d); + const uint8_t x1 = best_index_mxfp4(xb[qk_sub/2 + j], d); + + y[i].qs[s*(qk_sub/2) + j] = x0 | (x1 << 4); + } + } + } +} + void dequantize_row_q4_0(const block_q4_0 * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k) { static const int qk = QK4_0; @@ -434,6 +469,31 @@ void dequantize_row_mxfp4(const block_mxfp4 * GGML_RESTRICT x, float * GGML_REST } } +void dequantize_row_nvfp4(const block_nvfp4 * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k) { + static const int qk = QK_NVFP4; + static const int qk_sub = QK_NVFP4_SUB; + static const int n_sub = QK_NVFP4 / QK_NVFP4_SUB; + + assert(k % qk == 0); + + const int nb = k / qk; + + for (int i = 0; i < nb; i++) { + for (int s = 0; s < n_sub; s++) { + const float d = ggml_ue4m3_to_fp32(x[i].d[s]); + float * yb = y + i*qk + s*qk_sub; + + for (int j = 0; j < qk_sub/2; ++j) { + const int8_t v0 = kvalues_mxfp4[x[i].qs[s*(qk_sub/2) + j] & 0x0F]; + const int8_t v1 = kvalues_mxfp4[x[i].qs[s*(qk_sub/2) + j] >> 4]; + + yb[j + 0 ] = v0*d; + yb[j + qk_sub/2] = v1*d; + } + } + } +} + // // 2-6 bit quantization in super-blocks // @@ -2098,6 +2158,12 @@ size_t quantize_mxfp4(const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, return nrow * ggml_row_size(GGML_TYPE_MXFP4, n_per_row); } +size_t quantize_nvfp4(const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, int64_t nrow, int64_t n_per_row, const float * quant_weights) { + GGML_UNUSED(quant_weights); + quantize_row_nvfp4_ref(src, dst, (int64_t)nrow*n_per_row); + return nrow * ggml_row_size(GGML_TYPE_NVFP4, n_per_row); +} + // ====================== Ternary (de)-quantization (BitNet b1.58 and TriLMs) void quantize_row_tq1_0_ref(const float * GGML_RESTRICT x, block_tq1_0 * GGML_RESTRICT y, int64_t k) { @@ -5244,6 +5310,12 @@ bool ggml_validate_row_data(enum ggml_type type, const void * data, size_t nbyte { VALIDATE_ROW_DATA_E_E8M0_IMPL(block_mxfp4, data, nb); } break; + case GGML_TYPE_NVFP4: + { + // UE4M3 scales are uint8_t — all byte values are valid + GGML_UNUSED(data); + GGML_UNUSED(nb); + } break; case GGML_TYPE_Q2_K: { VALIDATE_ROW_DATA_DM_F16_IMPL(block_q2_K, data, nb, d, dmin); diff --git a/ggml/src/ggml-quants.h b/ggml/src/ggml-quants.h index 3b688f31c2..00604f75c0 100644 --- a/ggml/src/ggml-quants.h +++ b/ggml/src/ggml-quants.h @@ -22,6 +22,7 @@ GGML_API void quantize_row_q8_0_ref(const float * GGML_RESTRICT x, block_q8_0 * GGML_API void quantize_row_q8_1_ref(const float * GGML_RESTRICT x, block_q8_1 * GGML_RESTRICT y, int64_t k); GGML_API void quantize_row_mxfp4_ref(const float * GGML_RESTRICT x, block_mxfp4 * GGML_RESTRICT y, int64_t k); +GGML_API void quantize_row_nvfp4_ref(const float * GGML_RESTRICT x, block_nvfp4 * GGML_RESTRICT y, int64_t k); GGML_API void quantize_row_q2_K_ref(const float * GGML_RESTRICT x, block_q2_K * GGML_RESTRICT y, int64_t k); GGML_API void quantize_row_q3_K_ref(const float * GGML_RESTRICT x, block_q3_K * GGML_RESTRICT y, int64_t k); @@ -48,6 +49,7 @@ GGML_API void dequantize_row_q8_0(const block_q8_0 * GGML_RESTRICT x, float * GG //GGML_API void dequantize_row_q8_1(const block_q8_1 * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); GGML_API void dequantize_row_mxfp4(const block_mxfp4 * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); +GGML_API void dequantize_row_nvfp4(const block_nvfp4 * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); GGML_API void dequantize_row_q2_K(const block_q2_K * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); GGML_API void dequantize_row_q3_K(const block_q3_K * GGML_RESTRICT x, float * GGML_RESTRICT y, int64_t k); @@ -95,6 +97,7 @@ GGML_API size_t quantize_q5_1(const float * GGML_RESTRICT src, void * GGML_RESTR GGML_API size_t quantize_q8_0(const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, int64_t nrows, int64_t n_per_row, const float * imatrix); GGML_API size_t quantize_mxfp4(const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, int64_t nrows, int64_t n_per_row, const float * imatrix); +GGML_API size_t quantize_nvfp4(const float * GGML_RESTRICT src, void * GGML_RESTRICT dst, int64_t nrows, int64_t n_per_row, const float * imatrix); GGML_API void iq2xs_init_impl(enum ggml_type type); GGML_API void iq2xs_free_impl(enum ggml_type type); diff --git a/ggml/src/ggml.c b/ggml/src/ggml.c index aeafc395d7..e5b83e1447 100644 --- a/ggml/src/ggml.c +++ b/ggml/src/ggml.c @@ -718,6 +718,14 @@ static const struct ggml_type_traits type_traits[GGML_TYPE_COUNT] = { .to_float = (ggml_to_float_t) dequantize_row_mxfp4, .from_float_ref = (ggml_from_float_t)quantize_row_mxfp4_ref, }, + [GGML_TYPE_NVFP4] = { + .type_name = "nvfp4", + .blck_size = QK_NVFP4, + .type_size = sizeof(block_nvfp4), + .is_quantized = true, + .to_float = (ggml_to_float_t) dequantize_row_nvfp4, + .from_float_ref = (ggml_from_float_t)quantize_row_nvfp4_ref, + }, [GGML_TYPE_Q2_K] = { .type_name = "q2_K", .blck_size = QK_K, @@ -1374,6 +1382,7 @@ enum ggml_type ggml_ftype_to_ggml_type(enum ggml_ftype ftype) { case GGML_FTYPE_MOSTLY_Q5_1: wtype = GGML_TYPE_Q5_1; break; case GGML_FTYPE_MOSTLY_Q8_0: wtype = GGML_TYPE_Q8_0; break; case GGML_FTYPE_MOSTLY_MXFP4: wtype = GGML_TYPE_MXFP4; break; + case GGML_FTYPE_MOSTLY_NVFP4: wtype = GGML_TYPE_NVFP4; break; case GGML_FTYPE_MOSTLY_Q2_K: wtype = GGML_TYPE_Q2_K; break; case GGML_FTYPE_MOSTLY_Q3_K: wtype = GGML_TYPE_Q3_K; break; case GGML_FTYPE_MOSTLY_Q4_K: wtype = GGML_TYPE_Q4_K; break; @@ -7641,6 +7650,7 @@ size_t ggml_quantize_chunk( case GGML_TYPE_Q5_1: result = quantize_q5_1(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; case GGML_TYPE_Q8_0: result = quantize_q8_0(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; case GGML_TYPE_MXFP4: result = quantize_mxfp4(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; + case GGML_TYPE_NVFP4: result = quantize_nvfp4(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; case GGML_TYPE_Q2_K: result = quantize_q2_K(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; case GGML_TYPE_Q3_K: result = quantize_q3_K(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; case GGML_TYPE_Q4_K: result = quantize_q4_K(src + start, (char *) dst + start_row * row_size, nrows, n_per_row, imatrix); break; diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 32fc9428a7..6376ad0600 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -3784,6 +3784,7 @@ class GGMLQuantizationType(IntEnum): TQ1_0 = 34 TQ2_0 = 35 MXFP4 = 39 + NVFP4 = 40 class ExpertGatingFuncType(IntEnum): @@ -3941,6 +3942,7 @@ GGML_QUANT_SIZES: dict[GGMLQuantizationType, tuple[int, int]] = { GGMLQuantizationType.TQ1_0: (256, 2 + 4 * 13), GGMLQuantizationType.TQ2_0: (256, 2 + 64), GGMLQuantizationType.MXFP4: (32, 1 + 16), + GGMLQuantizationType.NVFP4: (64, 4 + 32), } diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index c89a5fdc3a..662dda3cf4 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -139,10 +139,13 @@ class GGUFWriter: size = prod(shape) if "_exps." in name: - expert_count = shape[-2 if ".bias" in name else -3] - expert_params += (size // expert_count) - expert_sum += expert_count - n_expert_tensors += 1 + if len(shape) >= 3: + expert_count = shape[-2 if ".bias" in name else -3] + expert_params += (size // expert_count) + expert_sum += expert_count + n_expert_tensors += 1 + else: + shared_params += size else: shared_params += size diff --git a/gguf-py/gguf/quants.py b/gguf-py/gguf/quants.py index 31845ea6ee..1cd519981a 100644 --- a/gguf-py/gguf/quants.py +++ b/gguf-py/gguf/quants.py @@ -704,6 +704,65 @@ class MXFP4(__Quant, qtype=GGMLQuantizationType.MXFP4): return (d * qs.astype(np.float32)) +class NVFP4(__Quant, qtype=GGMLQuantizationType.NVFP4): + # E2M1 values doubled (kvalues_mxfp4 convention) + kvalues = (0, 1, 2, 3, 4, 6, 8, 12, 0, -1, -2, -3, -4, -6, -8, -12) + + @staticmethod + def ue4m3_to_fp32(x: np.ndarray) -> np.ndarray: + """Decode unsigned E4M3 (bias=7) to float, with 0.5 factor for kvalues convention.""" + exp = (x >> 3).astype(np.int32) & 0xF + man = (x & 0x7).astype(np.float32) + raw = np.where( + exp == 0, + man * 2**-9, + (1.0 + man / 8.0) * (2.0 ** (exp.astype(np.float32) - 7))) + return np.where((x == 0) | (x == 0x7F), 0.0, raw * 0.5) + + @staticmethod + def fp32_to_ue4m3(x: np.ndarray) -> np.ndarray: + """Vectorized float32 to unsigned E4M3, matching ggml_fp32_to_ue4m3 in C.""" + x = np.clip(x, 0.0, 448.0).astype(np.float32) + bits = x.view(np.uint32) + fp32_exp = ((bits >> 23) & 0xFF).astype(np.int32) - 127 + fp32_man = ((bits >> 20) & 0x7).astype(np.int32) + ue4m3_exp = fp32_exp + 7 + + # Subnormal + sub_man = np.clip((x * 512.0 + 0.5).astype(np.int32), 0, 7) + sub_result = np.where(sub_man >= 1, sub_man, 0).astype(np.uint8) + + # Normal with rounding + round_bit = ((bits >> 19) & 1).astype(np.int32) + man = fp32_man + round_bit + exp = ue4m3_exp.copy() + overflow = man > 7 + man = np.where(overflow, 0, man) + exp = np.where(overflow, exp + 1, exp) + normal_result = np.where(exp >= 15, np.uint8(0x7E), ((exp << 3) | man).astype(np.uint8)) + + return np.where(x <= 0.0, np.uint8(0), + np.where(ue4m3_exp <= 0, sub_result, + np.where(ue4m3_exp >= 15, np.uint8(0x7E), normal_result))) + + @classmethod + def dequantize_blocks(cls, blocks: np.ndarray) -> np.ndarray: + n_super = blocks.shape[0] + + d_bytes, qs = np.hsplit(blocks, [4]) + d = cls.ue4m3_to_fp32(d_bytes).reshape(n_super, 4, 1) # (n_super, 4, 1) + + qs = qs.reshape(n_super, 4, 8) + lo = (qs & np.uint8(0x0F)).view(np.int8) + hi = (qs >> np.uint8(4)).view(np.int8) + vals = np.concatenate([lo, hi], axis=-1) # (n_super, 4, 16) + + kvalues = np.array(cls.kvalues, dtype=np.int8).reshape(1, 1, 16) + vals = np.take_along_axis(kvalues, vals, axis=-1) + + return (d * vals.astype(np.float32)).reshape(n_super, 64) + + class IQ2_XXS(__Quant, qtype=GGMLQuantizationType.IQ2_XXS): ksigns: bytes = ( b"\x00\x81\x82\x03\x84\x05\x06\x87\x88\x09\x0a\x8b\x0c\x8d\x8e\x0f" diff --git a/gguf-py/gguf/scripts/gguf_convert_endian.py b/gguf-py/gguf/scripts/gguf_convert_endian.py index 86bf87846c..164c9171e0 100755 --- a/gguf-py/gguf/scripts/gguf_convert_endian.py +++ b/gguf-py/gguf/scripts/gguf_convert_endian.py @@ -65,6 +65,7 @@ byteswap_tensors = { gguf.GGMLQuantizationType.Q4_K: byteswap_q4_k, gguf.GGMLQuantizationType.Q6_K: byteswap_q6_k, gguf.GGMLQuantizationType.MXFP4: byteswap_noop, + gguf.GGMLQuantizationType.NVFP4: byteswap_noop, } diff --git a/gguf-py/tests/test_quants.py b/gguf-py/tests/test_quants.py index 172fa0018a..9aa7c4ae2a 100755 --- a/gguf-py/tests/test_quants.py +++ b/gguf-py/tests/test_quants.py @@ -68,6 +68,7 @@ class GGMLQuants: "q2_K", "q3_K", "q4_K", "q5_K", "q6_K", "tq1_0", "tq2_0", "mxfp4", + "nvfp4", "iq2_xxs", "iq2_xs", "iq2_s", "iq3_xxs", "iq3_s", "iq1_s", "iq1_m", "iq4_nl", "iq4_xs", ): diff --git a/include/llama.h b/include/llama.h index 0bd10294cb..c6e102abe5 100644 --- a/include/llama.h +++ b/include/llama.h @@ -153,6 +153,7 @@ extern "C" { LLAMA_FTYPE_MOSTLY_TQ1_0 = 36, // except 1d tensors LLAMA_FTYPE_MOSTLY_TQ2_0 = 37, // except 1d tensors LLAMA_FTYPE_MOSTLY_MXFP4_MOE = 38, // except 1d tensors + LLAMA_FTYPE_MOSTLY_NVFP4 = 39, // except 1d tensors LLAMA_FTYPE_GUESSED = 1024, // not specified in the model file }; diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index 528f8e5458..41e804a8f8 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -1166,7 +1166,10 @@ ggml_tensor * llm_graph_context::build_moe_ffn( llama_expert_gating_func_type gating_op, int il, ggml_tensor * probs_in, - ggml_tensor * gate_up_exps) const { + ggml_tensor * gate_up_exps, + ggml_tensor * up_exps_s, + ggml_tensor * gate_exps_s, + ggml_tensor * down_exps_s) const { return build_moe_ffn( cur, gate_inp, /* gate_inp_b */ nullptr, @@ -1182,7 +1185,11 @@ ggml_tensor * llm_graph_context::build_moe_ffn( gating_op, il, probs_in, - gate_up_exps + gate_up_exps, + /* gate_up_exps_b */ nullptr, + up_exps_s, + gate_exps_s, + down_exps_s ); } @@ -1206,7 +1213,10 @@ ggml_tensor * llm_graph_context::build_moe_ffn( int il, ggml_tensor * probs_in, ggml_tensor * gate_up_exps, - ggml_tensor * gate_up_exps_b) const { + ggml_tensor * gate_up_exps_b, + ggml_tensor * up_exps_s, + ggml_tensor * gate_exps_s, + ggml_tensor * down_exps_s) const { const int64_t n_embd = cur->ne[0]; const int64_t n_tokens = cur->ne[1]; const bool weight_before_ffn = arch == LLM_ARCH_LLAMA4; // for llama4, we apply the sigmoid-ed weights before the FFN @@ -1358,6 +1368,15 @@ ggml_tensor * llm_graph_context::build_moe_ffn( cb(gate_up, "ffn_moe_gate_up_biased", il); } + // apply per-expert scale2 to merged gate_up (use up_exps_s since gate and up are fused) + if (up_exps_s) { + ggml_tensor * s = ggml_reshape_3d(ctx0, up_exps_s, 1, n_expert, 1); + s = ggml_repeat_4d(ctx0, s, 1, n_expert, n_tokens, 1); + s = ggml_get_rows(ctx0, s, selected_experts); // [1, n_expert_used, n_tokens] + gate_up = ggml_mul(ctx0, gate_up, s); + cb(gate_up, "ffn_moe_gate_up_scaled", il); + } + const int64_t n_ff = gate_up->ne[0] / 2; cur = ggml_view_3d(ctx0, gate_up, n_ff, gate_up->ne[1], gate_up->ne[2], gate_up->nb[1], gate_up->nb[2], 0); cb(cur, "ffn_moe_gate", il); @@ -1373,6 +1392,15 @@ ggml_tensor * llm_graph_context::build_moe_ffn( cb(up, "ffn_moe_up_biased", il); } + // apply per-expert scale2 to up + if (up_exps_s) { + ggml_tensor * s = ggml_reshape_3d(ctx0, up_exps_s, 1, n_expert, 1); + s = ggml_repeat_4d(ctx0, s, 1, n_expert, n_tokens, 1); + s = ggml_get_rows(ctx0, s, selected_experts); // [1, n_expert_used, n_tokens] + up = ggml_mul(ctx0, up, s); + cb(up, "ffn_moe_up_scaled", il); + } + if (gate_exps) { cur = build_lora_mm_id(gate_exps, cur, selected_experts); // [n_ff, n_expert_used, n_tokens] cb(cur, "ffn_moe_gate", il); @@ -1384,6 +1412,15 @@ ggml_tensor * llm_graph_context::build_moe_ffn( cur = ggml_add_id(ctx0, cur, gate_exps_b, selected_experts); cb(cur, "ffn_moe_gate_biased", il); } + + // apply per-expert scale2 to gate + if (gate_exps_s) { + ggml_tensor * s = ggml_reshape_3d(ctx0, gate_exps_s, 1, n_expert, 1); + s = ggml_repeat_4d(ctx0, s, 1, n_expert, n_tokens, 1); + s = ggml_get_rows(ctx0, s, selected_experts); // [1, n_expert_used, n_tokens] + cur = ggml_mul(ctx0, cur, s); + cb(cur, "ffn_moe_gate_scaled", il); + } } const bool has_gate = gate_exps || gate_up_exps; @@ -1463,6 +1500,15 @@ ggml_tensor * llm_graph_context::build_moe_ffn( cb(experts, "ffn_moe_down_biased", il); } + // apply per-expert scale2 to down + if (down_exps_s) { + ggml_tensor * s = ggml_reshape_3d(ctx0, down_exps_s, 1, n_expert, 1); + s = ggml_repeat_4d(ctx0, s, 1, n_expert, n_tokens, 1); + s = ggml_get_rows(ctx0, s, selected_experts); // [1, n_expert_used, n_tokens] + experts = ggml_mul(ctx0, experts, s); + cb(experts, "ffn_moe_down_scaled", il); + } + if (!weight_before_ffn) { experts = ggml_mul(ctx0, experts, weights); cb(cur, "ffn_moe_weighted", il); diff --git a/src/llama-graph.h b/src/llama-graph.h index 7f6c9e9635..c8817b8f1e 100644 --- a/src/llama-graph.h +++ b/src/llama-graph.h @@ -814,7 +814,10 @@ struct llm_graph_context { llama_expert_gating_func_type gating_op, int il, ggml_tensor * probs_in = nullptr, - ggml_tensor * gate_up_exps = nullptr) const; + ggml_tensor * gate_up_exps = nullptr, + ggml_tensor * up_exps_s = nullptr, + ggml_tensor * gate_exps_s = nullptr, + ggml_tensor * down_exps_s = nullptr) const; ggml_tensor * build_moe_ffn( ggml_tensor * cur, @@ -836,7 +839,10 @@ struct llm_graph_context { int il, ggml_tensor * probs_in = nullptr, ggml_tensor * gate_up_exps = nullptr, - ggml_tensor * gate_up_exps_b = nullptr) const; + ggml_tensor * gate_up_exps_b = nullptr, + ggml_tensor * up_exps_s = nullptr, + ggml_tensor * gate_exps_s = nullptr, + ggml_tensor * down_exps_s = nullptr) const; // // inputs diff --git a/src/llama-model-loader.cpp b/src/llama-model-loader.cpp index 623a3455dd..413f34c226 100644 --- a/src/llama-model-loader.cpp +++ b/src/llama-model-loader.cpp @@ -42,6 +42,7 @@ static std::string llama_model_ftype_name(llama_ftype ftype) { case LLAMA_FTYPE_MOSTLY_Q5_1: return "Q5_1"; case LLAMA_FTYPE_MOSTLY_Q8_0: return "Q8_0"; case LLAMA_FTYPE_MOSTLY_MXFP4_MOE: return "MXFP4 MoE"; + case LLAMA_FTYPE_MOSTLY_NVFP4: return "NVFP4"; case LLAMA_FTYPE_MOSTLY_Q2_K: return "Q2_K - Medium"; case LLAMA_FTYPE_MOSTLY_Q2_K_S: return "Q2_K - Small"; case LLAMA_FTYPE_MOSTLY_Q3_K_S: return "Q3_K - Small"; @@ -724,6 +725,7 @@ llama_model_loader::llama_model_loader( case GGML_TYPE_IQ4_NL: ftype = LLAMA_FTYPE_MOSTLY_IQ4_NL; break; case GGML_TYPE_IQ4_XS: ftype = LLAMA_FTYPE_MOSTLY_IQ4_XS; break; case GGML_TYPE_IQ3_S: ftype = LLAMA_FTYPE_MOSTLY_IQ3_S; break; + case GGML_TYPE_NVFP4: ftype = LLAMA_FTYPE_MOSTLY_NVFP4; break; default: { LLAMA_LOG_WARN("%s: unknown type %s\n", __func__, ggml_type_name(type_max)); diff --git a/src/llama-model.cpp b/src/llama-model.cpp index 9d2361372b..6cc28eff28 100644 --- a/src/llama-model.cpp +++ b/src/llama-model.cpp @@ -5010,23 +5010,23 @@ bool llama_model::load_tensors(llama_model_loader & ml) { layer.attn_sub_norm = create_tensor(tn(LLM_TENSOR_ATTN_SUB_NORM, "weight", i), {n_embd}, 0); layer.wq = create_tensor(tn(LLM_TENSOR_ATTN_Q, "weight", i), {n_embd, n_embd}, 0); - layer.wq_scale = create_tensor(tn(LLM_TENSOR_ATTN_Q, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.wq_s = create_tensor(tn(LLM_TENSOR_ATTN_Q, "scale", i), {1}, TENSOR_NOT_REQUIRED); layer.wk = create_tensor(tn(LLM_TENSOR_ATTN_K, "weight", i), {n_embd, n_embd_gqa}, 0); - layer.wk_scale = create_tensor(tn(LLM_TENSOR_ATTN_K, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.wk_s = create_tensor(tn(LLM_TENSOR_ATTN_K, "scale", i), {1}, TENSOR_NOT_REQUIRED); layer.wv = create_tensor(tn(LLM_TENSOR_ATTN_V, "weight", i), {n_embd, n_embd_gqa}, 0); - layer.wv_scale = create_tensor(tn(LLM_TENSOR_ATTN_V, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.wv_s = create_tensor(tn(LLM_TENSOR_ATTN_V, "scale", i), {1}, TENSOR_NOT_REQUIRED); layer.wo = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "weight", i), {n_embd, n_embd}, 0); - layer.wo_scale = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.wo_s = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "scale", i), {1}, TENSOR_NOT_REQUIRED); layer.ffn_norm = create_tensor(tn(LLM_TENSOR_FFN_NORM, "weight", i), {n_embd}, 0); layer.ffn_sub_norm = create_tensor(tn(LLM_TENSOR_FFN_SUB_NORM, "weight", i), {n_ff}, 0); layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, 0); - layer.ffn_gate_scale = create_tensor(tn(LLM_TENSOR_FFN_GATE, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.ffn_gate_s = create_tensor(tn(LLM_TENSOR_FFN_GATE, "scale", i), {1}, TENSOR_NOT_REQUIRED); layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), {n_ff, n_embd}, 0); - layer.ffn_down_scale = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.ffn_down_s = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "scale", i), {1}, TENSOR_NOT_REQUIRED); layer.ffn_up = create_tensor(tn(LLM_TENSOR_FFN_UP, "weight", i), {n_embd, n_ff}, 0); - layer.ffn_up_scale = create_tensor(tn(LLM_TENSOR_FFN_UP, "scale", i), {1}, TENSOR_NOT_REQUIRED); + layer.ffn_up_s = create_tensor(tn(LLM_TENSOR_FFN_UP, "scale", i), {1}, TENSOR_NOT_REQUIRED); } } break; case LLM_ARCH_T5: @@ -7443,6 +7443,48 @@ bool llama_model::load_tensors(llama_model_loader & ml) { default: throw std::runtime_error("unknown architecture"); } + + // generic pass: load optional per-tensor/per-expert ".scale" tensors (e.g. NVFP4 scale2) + // this avoids having to add scale loading to every architecture + for (int i = 0; i < n_layer; ++i) { + auto & layer = layers[i]; + + // attention weight scales (per-tensor, shape {1}) + if (!layer.wq_s && layer.wq) { + layer.wq_s = create_tensor(tn(LLM_TENSOR_ATTN_Q, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + if (!layer.wk_s && layer.wk) { + layer.wk_s = create_tensor(tn(LLM_TENSOR_ATTN_K, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + if (!layer.wv_s && layer.wv) { + layer.wv_s = create_tensor(tn(LLM_TENSOR_ATTN_V, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + if (!layer.wo_s && layer.wo) { + layer.wo_s = create_tensor(tn(LLM_TENSOR_ATTN_OUT, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + + // dense FFN weight scales (per-tensor, shape {1}) + if (!layer.ffn_gate_s && layer.ffn_gate) { + layer.ffn_gate_s = create_tensor(tn(LLM_TENSOR_FFN_GATE, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + if (!layer.ffn_down_s && layer.ffn_down) { + layer.ffn_down_s = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + if (!layer.ffn_up_s && layer.ffn_up) { + layer.ffn_up_s = create_tensor(tn(LLM_TENSOR_FFN_UP, "scale", i), {1}, TENSOR_NOT_REQUIRED); + } + + // MoE expert weight scales (per-expert, shape {n_expert}) + if (!layer.ffn_gate_exps_s && layer.ffn_gate_exps) { + layer.ffn_gate_exps_s = create_tensor(tn(LLM_TENSOR_FFN_GATE_EXPS, "scale", i), {n_expert}, TENSOR_NOT_REQUIRED); + } + if (!layer.ffn_down_exps_s && layer.ffn_down_exps) { + layer.ffn_down_exps_s = create_tensor(tn(LLM_TENSOR_FFN_DOWN_EXPS, "scale", i), {n_expert}, TENSOR_NOT_REQUIRED); + } + if (!layer.ffn_up_exps_s && layer.ffn_up_exps) { + layer.ffn_up_exps_s = create_tensor(tn(LLM_TENSOR_FFN_UP_EXPS, "scale", i), {n_expert}, TENSOR_NOT_REQUIRED); + } + } } ml.done_getting_tensors(); diff --git a/src/llama-model.h b/src/llama-model.h index 74c79a7749..a8043bf925 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -295,6 +295,11 @@ struct llama_layer { struct ggml_tensor * ffn_up_exps_b = nullptr; struct ggml_tensor * ffn_gate_up_exps_b = nullptr; + // ff MoE per-expert scales (NVFP4 per-tensor scale2) + struct ggml_tensor * ffn_gate_exps_s = nullptr; + struct ggml_tensor * ffn_down_exps_s = nullptr; + struct ggml_tensor * ffn_up_exps_s = nullptr; + // ff MoE latent proj struct ggml_tensor * ffn_latent_down = nullptr; struct ggml_tensor * ffn_latent_up = nullptr; @@ -392,13 +397,13 @@ struct llama_layer { struct ggml_tensor * rope_freqs = nullptr; // bitnet scale - struct ggml_tensor * wq_scale = nullptr; - struct ggml_tensor * wk_scale = nullptr; - struct ggml_tensor * wv_scale = nullptr; - struct ggml_tensor * wo_scale = nullptr; - struct ggml_tensor * ffn_gate_scale = nullptr; - struct ggml_tensor * ffn_up_scale = nullptr; - struct ggml_tensor * ffn_down_scale = nullptr; + struct ggml_tensor * wq_s = nullptr; + struct ggml_tensor * wk_s = nullptr; + struct ggml_tensor * wv_s = nullptr; + struct ggml_tensor * wo_s = nullptr; + struct ggml_tensor * ffn_gate_s = nullptr; + struct ggml_tensor * ffn_up_s = nullptr; + struct ggml_tensor * ffn_down_s = nullptr; // altup & laurel struct ggml_tensor * per_layer_inp_gate = nullptr; diff --git a/src/models/bitnet.cpp b/src/models/bitnet.cpp index d47638498d..af2cc34bea 100644 --- a/src/models/bitnet.cpp +++ b/src/models/bitnet.cpp @@ -30,8 +30,8 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa { // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); - if (model.layers[il].wq_scale) { - Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_scale); + if (model.layers[il].wq_s) { + Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); } cb(Qcur, "Qcur", il); if (model.layers[il].bq) { @@ -41,8 +41,8 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa // B1.K ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); - if (model.layers[il].wk_scale) { - Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_scale); + if (model.layers[il].wk_s) { + Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); } cb(Kcur, "Kcur", il); if (model.layers[il].bk) { @@ -52,8 +52,8 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa // B1.V ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); - if (model.layers[il].wv_scale) { - Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_scale); + if (model.layers[il].wv_s) { + Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); } cb(Vcur, "Vcur", il); if (model.layers[il].bv) { @@ -91,8 +91,8 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa cb(cur, "attn_sub_norm", il); cur = build_lora_mm(model.layers[il].wo, cur); - if (model.layers[il].wo_scale) { - cur = ggml_mul(ctx0, cur, model.layers[il].wo_scale); + if (model.layers[il].wo_s) { + cur = ggml_mul(ctx0, cur, model.layers[il].wo_s); } if (model.layers[il].bo) { cur = ggml_add(ctx0, cur, model.layers[il].bo); @@ -115,8 +115,8 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa cb(cur, "ffn_norm", il); cur = build_ffn(cur, - model.layers[il].ffn_up, NULL, model.layers[il].ffn_up_scale, - model.layers[il].ffn_gate, NULL, model.layers[il].ffn_gate_scale, + model.layers[il].ffn_up, NULL, model.layers[il].ffn_up_s, + model.layers[il].ffn_gate, NULL, model.layers[il].ffn_gate_s, NULL, NULL, NULL, NULL, LLM_FFN_SILU, LLM_FFN_PAR, il); @@ -128,8 +128,8 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa cb(cur, "ffn_sub_norm", il); cur = build_lora_mm(model.layers[il].ffn_down, cur); - if (model.layers[il].ffn_down_scale) { - cur = ggml_mul(ctx0, cur, model.layers[il].ffn_down_scale); + if (model.layers[il].ffn_down_s) { + cur = ggml_mul(ctx0, cur, model.layers[il].ffn_down_s); } cb(cur, "ffn_down", il); diff --git a/src/models/llama.cpp b/src/models/llama.cpp index ca4beac51f..d2434b63a5 100644 --- a/src/models/llama.cpp +++ b/src/models/llama.cpp @@ -44,18 +44,27 @@ llm_build_llama::llm_build_llama(const llama_model & model, const llm_gra // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); + if (model.layers[il].wq_s) { + Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); + } cb(Qcur, "Qcur", il); if (model.layers[il].bq) { Qcur = ggml_add(ctx0, Qcur, model.layers[il].bq); cb(Qcur, "Qcur", il); } ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); + if (model.layers[il].wk_s) { + Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); + } cb(Kcur, "Kcur", il); if (model.layers[il].bk) { Kcur = ggml_add(ctx0, Kcur, model.layers[il].bk); cb(Kcur, "Kcur", il); } ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); + if (model.layers[il].wv_s) { + Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); + } cb(Vcur, "Vcur", il); if (model.layers[il].bv) { Vcur = ggml_add(ctx0, Vcur, model.layers[il].bv); @@ -91,6 +100,9 @@ llm_build_llama::llm_build_llama(const llama_model & model, const llm_gra cur = build_attn(inp_attn, model.layers[il].wo, model.layers[il].bo, Qcur, Kcur, Vcur, nullptr, nullptr, nullptr, kq_scale, il); + if (model.layers[il].wo_s) { + cur = ggml_mul(ctx0, cur, model.layers[il].wo_s); + } cb(cur, "attn_out", il); } if (il == n_layer - 1 && inp_out_ids) { @@ -109,9 +121,9 @@ llm_build_llama::llm_build_llama(const llama_model & model, const llm_gra cb(cur, "ffn_norm", il); cur = build_ffn(cur, - model.layers[il].ffn_up, model.layers[il].ffn_up_b, NULL, - model.layers[il].ffn_gate, model.layers[il].ffn_gate_b, NULL, - model.layers[il].ffn_down, model.layers[il].ffn_down_b, NULL, + model.layers[il].ffn_up, model.layers[il].ffn_up_b, model.layers[il].ffn_up_s, + model.layers[il].ffn_gate, model.layers[il].ffn_gate_b, model.layers[il].ffn_gate_s, + model.layers[il].ffn_down, model.layers[il].ffn_down_b, model.layers[il].ffn_down_s, NULL, LLM_FFN_SILU, LLM_FFN_PAR, il); cb(cur, "ffn_out", il); @@ -132,7 +144,11 @@ llm_build_llama::llm_build_llama(const llama_model & model, const llm_gra LLM_FFN_SILU, true, hparams.expert_weights_scale, LLAMA_EXPERT_GATING_FUNC_TYPE_SOFTMAX, - 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); cb(cur, "ffn_moe_out", il); } cur = ggml_add(ctx0, cur, ffn_inp); diff --git a/src/models/qwen3.cpp b/src/models/qwen3.cpp index be4811aba1..c13cb6c4fd 100644 --- a/src/models/qwen3.cpp +++ b/src/models/qwen3.cpp @@ -31,12 +31,21 @@ llm_build_qwen3::llm_build_qwen3(const llama_model & model, const llm_graph_para { // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); + if (model.layers[il].wq_s) { + Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); + } cb(Qcur, "Qcur", il); ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); + if (model.layers[il].wk_s) { + Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); + } cb(Kcur, "Kcur", il); ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); + if (model.layers[il].wv_s) { + Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); + } cb(Vcur, "Vcur", il); Qcur = ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens); @@ -68,6 +77,9 @@ llm_build_qwen3::llm_build_qwen3(const llama_model & model, const llm_graph_para cur = build_attn(inp_attn, model.layers[il].wo, model.layers[il].bo, Qcur, Kcur, Vcur, nullptr, nullptr, nullptr, 1.0f/sqrtf(float(n_embd_head)), il); + if (model.layers[il].wo_s) { + cur = ggml_mul(ctx0, cur, model.layers[il].wo_s); + } } if (il == n_layer - 1 && inp_out_ids) { cur = ggml_get_rows(ctx0, cur, inp_out_ids); @@ -83,9 +95,9 @@ llm_build_qwen3::llm_build_qwen3(const llama_model & model, const llm_graph_para cb(cur, "ffn_norm", il); cur = 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); cb(cur, "ffn_out", il); diff --git a/src/models/qwen3moe.cpp b/src/models/qwen3moe.cpp index 5912a71582..5e26119278 100644 --- a/src/models/qwen3moe.cpp +++ b/src/models/qwen3moe.cpp @@ -31,12 +31,21 @@ llm_build_qwen3moe::llm_build_qwen3moe(const llama_model & model, const llm_grap { // compute Q and K and RoPE them ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); + if (model.layers[il].wq_s) { + Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); + } cb(Qcur, "Qcur", il); ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); + if (model.layers[il].wk_s) { + Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); + } cb(Kcur, "Kcur", il); ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); + if (model.layers[il].wv_s) { + Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); + } cb(Vcur, "Vcur", il); Qcur = ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens); @@ -68,6 +77,9 @@ llm_build_qwen3moe::llm_build_qwen3moe(const llama_model & model, const llm_grap cur = build_attn(inp_attn, model.layers[il].wo, model.layers[il].bo, Qcur, Kcur, Vcur, nullptr, nullptr, nullptr, 1.0f/sqrtf(float(n_embd_head)), il); + if (model.layers[il].wo_s) { + cur = ggml_mul(ctx0, cur, model.layers[il].wo_s); + } } if (il == n_layer - 1 && inp_out_ids) { cur = ggml_get_rows(ctx0, cur, inp_out_ids); @@ -93,7 +105,11 @@ llm_build_qwen3moe::llm_build_qwen3moe(const llama_model & model, const llm_grap LLM_FFN_SILU, true, hparams.expert_weights_scale, LLAMA_EXPERT_GATING_FUNC_TYPE_SOFTMAX, - 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); cb(moe_out, "ffn_moe_out", il); cur = moe_out; diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 32a83b001d..66aaddcfff 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -7854,10 +7854,6 @@ static std::vector> make_test_cases_eval() { test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 1056, 1, 67, {1, 1}, {4, 1}, {0, 2, 1, 3})); test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F32, GGML_TYPE_F32, 16, 32, 32, { 1, 1}, {1, 1}, {0, 1, 2, 3}, 64, 3)); test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F32, GGML_TYPE_F32, 64, 77, 77, {12,1}, {1,1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 2, 1, 3, {128, 1024}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 2, 3, 4, {128, 1024}, {1, 1})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 2, 1, 3, {128*1024, 1}, {1, 1}, {0, 2, 1, 3})); - test_cases.emplace_back(new test_mul_mat(GGML_TYPE_F16, GGML_TYPE_F32, 2, 1, 3, {128*1024, 1}, {1, 1}, {0, 1, 2, 3}, 64)); test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q4_0, GGML_TYPE_F32, 576, 512, 576, {1,1}, {1,1})); test_cases.emplace_back(new test_mul_mat(GGML_TYPE_Q4_0, GGML_TYPE_F32, 1, 2048, 8192, {1, 1}, {1, 1})); diff --git a/tests/test-quantize-fns.cpp b/tests/test-quantize-fns.cpp index 037c0582bb..a8fb192623 100644 --- a/tests/test-quantize-fns.cpp +++ b/tests/test-quantize-fns.cpp @@ -20,8 +20,10 @@ constexpr float MAX_QUANTIZATION_TOTAL_ERROR_TERNARY = 0.01f; constexpr float MAX_QUANTIZATION_TOTAL_ERROR_2BITS = 0.0075f; constexpr float MAX_QUANTIZATION_TOTAL_ERROR_3BITS = 0.0040f; constexpr float MAX_QUANTIZATION_TOTAL_ERROR_3BITS_XXS = 0.0050f; +constexpr float MAX_QUANTIZATION_TOTAL_ERROR_FP4 = 0.0030f; constexpr float MAX_DOT_PRODUCT_ERROR = 0.02f; constexpr float MAX_DOT_PRODUCT_ERROR_LOWBIT = 0.04f; +constexpr float MAX_DOT_PRODUCT_ERROR_FP4 = 0.03f; constexpr float MAX_DOT_PRODUCT_ERROR_TERNARY = 0.15f; static const char* RESULT_STR[] = {"ok", "FAILED"}; @@ -149,7 +151,8 @@ int main(int argc, char * argv[]) { type == GGML_TYPE_IQ2_S ? MAX_QUANTIZATION_TOTAL_ERROR_2BITS : type == GGML_TYPE_Q3_K ? MAX_QUANTIZATION_TOTAL_ERROR_3BITS : type == GGML_TYPE_IQ3_S ? MAX_QUANTIZATION_TOTAL_ERROR_3BITS : - type == GGML_TYPE_IQ3_XXS ? MAX_QUANTIZATION_TOTAL_ERROR_3BITS_XXS : MAX_QUANTIZATION_TOTAL_ERROR; + type == GGML_TYPE_IQ3_XXS ? MAX_QUANTIZATION_TOTAL_ERROR_3BITS_XXS : + type == GGML_TYPE_NVFP4 ? MAX_QUANTIZATION_TOTAL_ERROR_FP4 : MAX_QUANTIZATION_TOTAL_ERROR; failed = !(total_error < max_quantization_error); num_failed += failed; if (failed || verbose) { @@ -169,6 +172,8 @@ int main(int argc, char * argv[]) { ? MAX_DOT_PRODUCT_ERROR_LOWBIT : type == GGML_TYPE_TQ1_0 || type == GGML_TYPE_TQ2_0 ? MAX_DOT_PRODUCT_ERROR_TERNARY + : type == GGML_TYPE_NVFP4 + ? MAX_DOT_PRODUCT_ERROR_FP4 : MAX_DOT_PRODUCT_ERROR; failed = !(vec_dot_error < max_allowed_error); num_failed += failed; From f90bd1dd84b59d75ab7d442228b67ec9a797577c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Wed, 11 Mar 2026 21:18:29 +0100 Subject: [PATCH 04/28] llama : whitespace cleanup (#20422) --- src/llama-model.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/llama-model.h b/src/llama-model.h index a8043bf925..9a2dacecca 100644 --- a/src/llama-model.h +++ b/src/llama-model.h @@ -299,7 +299,7 @@ struct llama_layer { struct ggml_tensor * ffn_gate_exps_s = nullptr; struct ggml_tensor * ffn_down_exps_s = nullptr; struct ggml_tensor * ffn_up_exps_s = nullptr; - + // ff MoE latent proj struct ggml_tensor * ffn_latent_down = nullptr; struct ggml_tensor * ffn_latent_up = nullptr; From d28961d81e73e32b295d0ad638f3ff14676aeeda Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 11 Mar 2026 22:46:40 +0200 Subject: [PATCH 05/28] llama : enable chunked fused GDN path (#20340) * llama : enable chunked fused GDN path * models : avoid Q and K repeats when using fused GDA * cont : fix comment Co-authored-by: Aman Gupta * cont : fix the fix Co-authored-by: Aman Gupta * cont : fix * metal : add GDN kernel (#20361) * metal : add Metal backend for GGML_OP_GATED_DELTA_NET Add a fused Metal kernel for the gated delta net recurrence op (#19504), enabling GPU-accelerated inference for DeltaNet-based models (Qwen3.5, etc.) on Apple Silicon. Supports both GDA (scalar gate) and KDA (per-row gate) modes with head_size 64 and 128. Unsupported configurations (head_size 32, non-contiguous tensors) gracefully fall back to CPU. Performance: Qwen3.5-0.8B Q4_K_M on M4 Max tg128: 170 -> 213 t/s (+25%) Co-Authored-By: Claude Opus 4.6 * metal : validate contiguity of all input tensors in supports_op Co-Authored-By: Claude Opus 4.6 * metal : add algorithm equivalence comment for GDA decay path Co-Authored-By: Claude Opus 4.6 * cont : unslop + optimize * cont : clean-up --------- Co-authored-by: Paul Flynn Co-authored-by: Claude Opus 4.6 * CUDA: AR gated delta net improvements (#20391) * Add FastDiv to gated_delta_net_cuda * Shard columns across warps This reduces register pressure (avoids spill for S_v = 128) and gives the warp-scheduler more CTAs to schedule (thus hiding data-access latencies). * Remove unneded include in gated_delta_net.cu * Improve comments * Apply code-formating * Make sharding HIP-compatible 1. Use ggml_cuda_get_physical_warp_size() to determine warp size flexibly 2. Add test with partial warp to test sum reduction on CUDA * Remove fastdiv_s64, as we can treat neqk1 and rq3 as uint32_t * Rename variables * Enable GDN also for prefill, move TODO for chunked_GDN * Actually remove the TODO from 206890897546bd16602c3b79394fd5ea09ef199f * Get warp size at runtime warp_size is not known at compile time in hip host code. * Don't expose ggml_cuda_get_physical_warp_size on host --------- Co-authored-by: uvos * llama : refactor llm_build_delta_net_base API --------- Co-authored-by: Aman Gupta Co-authored-by: Paul Flynn Co-authored-by: Claude Opus 4.6 Co-authored-by: Oliver Simons Co-authored-by: uvos --- ggml/include/ggml.h | 2 + ggml/src/ggml-cpu/ops.cpp | 11 +- ggml/src/ggml-cuda/gated_delta_net.cu | 181 ++++++++++-------- ggml/src/ggml-metal/ggml-metal-device.cpp | 35 ++++ ggml/src/ggml-metal/ggml-metal-device.h | 1 + ggml/src/ggml-metal/ggml-metal-device.m | 2 + ggml/src/ggml-metal/ggml-metal-impl.h | 39 ++++ ggml/src/ggml-metal/ggml-metal-ops.cpp | 79 ++++++++ ggml/src/ggml-metal/ggml-metal-ops.h | 1 + ggml/src/ggml-metal/ggml-metal.metal | 221 ++++++++++++++++++++++ src/llama-context.cpp | 95 +++++++--- src/llama-cparams.h | 1 + src/llama-impl.h | 6 +- src/models/delta-net-base.cpp | 102 +++++++--- src/models/kimi-linear.cpp | 4 +- src/models/models.h | 20 ++ src/models/qwen35.cpp | 12 +- src/models/qwen35moe.cpp | 12 +- src/models/qwen3next.cpp | 10 +- tests/test-backend-ops.cpp | 5 + 20 files changed, 674 insertions(+), 165 deletions(-) diff --git a/ggml/include/ggml.h b/ggml/include/ggml.h index 3323f8e6c3..25f9601e9b 100644 --- a/ggml/include/ggml.h +++ b/ggml/include/ggml.h @@ -2466,6 +2466,8 @@ extern "C" { bool lower, bool uni); + // TODO: add ggml_gated_delta_net_set_bcast() to be able to configure Q, K broadcast type: tiled vs interleaved [TAG_GGML_GDN_BCAST] + // ref: https://github.com/ggml-org/llama.cpp/pull/19468#discussion_r2786394306 GGML_API struct ggml_tensor * ggml_gated_delta_net( struct ggml_context * ctx, struct ggml_tensor * q, diff --git a/ggml/src/ggml-cpu/ops.cpp b/ggml/src/ggml-cpu/ops.cpp index f9c4ec16e4..fa9d27046b 100644 --- a/ggml/src/ggml-cpu/ops.cpp +++ b/ggml/src/ggml-cpu/ops.cpp @@ -10443,8 +10443,8 @@ static void ggml_compute_forward_gated_delta_net_one_chunk( const float * state_in_base = (const float *)src_state->data; - const int64_t rq1 = nev1 / neq1; - const int64_t rk1 = nev1 / nek1; + //const int64_t rq1 = nev1 / neq1; + //const int64_t rk1 = nev1 / nek1; const int64_t rq3 = nev3 / neq3; const int64_t rk3 = nev3 / nek3; @@ -10454,8 +10454,8 @@ static void ggml_compute_forward_gated_delta_net_one_chunk( const int64_t iv1 = ir % H; // head_index const int64_t iv3 = ir / H; // sequence - const int64_t iq1 = iv1 / rq1; - const int64_t ik1 = iv1 / rk1; + const int64_t iq1 = iv1 % neq1; + const int64_t ik1 = iv1 % nek1; const int64_t iq3 = iv3 / rq3; const int64_t ik3 = iv3 / rk3; @@ -10475,7 +10475,7 @@ static void ggml_compute_forward_gated_delta_net_one_chunk( const float * v_d = (const float *)((const char *)src_v->data + iv3 * nbv3 + t * nbv2 + iv1 * nbv1); const float beta_val = *(const float *)((const char *)src_beta->data + iv3 * nbb3 + t * nbb2 + iv1 * nbb1); - const float * g_d = (const float *)((const char *)src_g->data + iv3 * nbg3 + t * nbg2 + iv1 * nbg1); + const float * g_d = (const float *)((const char *)src_g->data + iv3 * nbg3 + t * nbg2 + iv1 * nbg1); if (kda) { for (int64_t i = 0; i < S_v; ++i) { @@ -10508,7 +10508,6 @@ static void ggml_compute_forward_gated_delta_net_one_chunk( attn_data += S_v * H; // advance to next token } - } } diff --git a/ggml/src/ggml-cuda/gated_delta_net.cu b/ggml/src/ggml-cuda/gated_delta_net.cu index c249bbc86d..5f0fa8e58d 100644 --- a/ggml/src/ggml-cuda/gated_delta_net.cu +++ b/ggml/src/ggml-cuda/gated_delta_net.cu @@ -1,36 +1,36 @@ #include "gated_delta_net.cuh" -#include "ggml-cuda/common.cuh" template -__global__ void __launch_bounds__(S_v, 1) -gated_delta_net_cuda(const float * q, - const float * k, - const float * v, - const float * g, - const float * beta, - const float * curr_state, - float * dst, - const int64_t H, - const int64_t n_tokens, - const int64_t n_seqs, - const int64_t sq1, - const int64_t sq2, - const int64_t sq3, - const int64_t sv1, - const int64_t sv2, - const int64_t sv3, - const int64_t sb1, - const int64_t sb2, - const int64_t sb3, - const int64_t rq1, - const int64_t rq3, - const float scale) { - const int64_t h_idx = blockIdx.x; - const int64_t sequence = blockIdx.y; - const int col = threadIdx.x; // each thread owns one column +__global__ void gated_delta_net_cuda(const float * q, + const float * k, + const float * v, + const float * g, + const float * beta, + const float * curr_state, + float * dst, + int64_t H, + int64_t n_tokens, + int64_t n_seqs, + int64_t sq1, + int64_t sq2, + int64_t sq3, + int64_t sv1, + int64_t sv2, + int64_t sv3, + int64_t sb1, + int64_t sb2, + int64_t sb3, + const uint3 neqk1_magic, + const uint3 rq3_magic, + float scale) { + const uint32_t h_idx = blockIdx.x; + const uint32_t sequence = blockIdx.y; + // each warp owns one column, using warp-level primitives to reduce across rows + const int lane = threadIdx.x; + const int col = blockIdx.z * blockDim.y + threadIdx.y; - const int64_t iq1 = h_idx / rq1; - const int64_t iq3 = sequence / rq3; + const uint32_t iq1 = fastmodulo(h_idx, neqk1_magic); + const uint32_t iq3 = fastdiv(sequence, rq3_magic); const int64_t attn_score_elems = S_v * H * n_tokens * n_seqs; float * attn_data = dst; @@ -41,17 +41,14 @@ gated_delta_net_cuda(const float * q, curr_state += state_offset; attn_data += (sequence * n_tokens * H + h_idx) * S_v; - // GCN and CDNA devices spill registers, we use shared mem for them. See https://github.com/ggml-org/llama.cpp/pull/20282#issuecomment-4025770229 - // TODO: check optimal path for RDNA1 and RDNA2 devices. -#if (defined(GGML_USE_HIP) && !defined(RDNA3) && !defined(RDNA4)) || defined(GGML_USE_MUSA) - extern __shared__ float s_shared[]; - float * s = s_shared + col * S_v; -#else - float s[S_v]; -#endif + constexpr int warp_size = ggml_cuda_get_physical_warp_size() < S_v ? ggml_cuda_get_physical_warp_size() : S_v; + static_assert(S_v % warp_size == 0, "S_v must be a multiple of warp_size"); + constexpr int rows_per_lane = (S_v + warp_size - 1) / warp_size; + float s_shard[rows_per_lane]; #pragma unroll - for (int i = 0; i < S_v; i++) { - s[i] = curr_state[i * S_v + col]; + for (int r = 0; r < rows_per_lane; r++) { + const int i = r * warp_size + lane; + s_shard[r] = curr_state[i * S_v + col]; } for (int t = 0; t < n_tokens; t++) { @@ -69,46 +66,61 @@ gated_delta_net_cuda(const float * q, const float g_val = expf(*g_t); // kv[col] = (S^T @ k)[col] = sum_i S[i][col] * k[i] - float kv_col = 0.0f; + float kv_shard = 0.0f; #pragma unroll - for (int i = 0; i < S_v; i++) { - kv_col += s[i] * k_t[i]; + for (int r = 0; r < rows_per_lane; r++) { + const int i = r * warp_size + lane; + kv_shard += s_shard[r] * k_t[i]; } + float kv_col = warp_reduce_sum(kv_shard); // delta[col] = (v[col] - g * kv[col]) * beta float delta_col = (v_t[col] - g_val * kv_col) * beta_val; // fused: S[i][col] = g * S[i][col] + k[i] * delta[col] // attn[col] = (S^T @ q)[col] = sum_i S[i][col] * q[i] - float attn_col = 0.0f; + float attn_partial = 0.0f; #pragma unroll - for (int i = 0; i < S_v; i++) { - s[i] = g_val * s[i] + k_t[i] * delta_col; - attn_col += s[i] * q_t[i]; + for (int r = 0; r < rows_per_lane; r++) { + const int i = r * warp_size + lane; + s_shard[r] = g_val * s_shard[r] + k_t[i] * delta_col; + attn_partial += s_shard[r] * q_t[i]; } - attn_data[col] = attn_col * scale; + float attn_col = warp_reduce_sum(attn_partial); + + if (lane == 0) { + attn_data[col] = attn_col * scale; + } } else { // kv[col] = sum_i g[i] * S[i][col] * k[i] - float kv_col = 0.0f; + float kv_shard = 0.0f; #pragma unroll - for (int i = 0; i < S_v; i++) { - kv_col += expf(g_t[i]) * s[i] * k_t[i]; + for (int r = 0; r < rows_per_lane; r++) { + const int i = r * warp_size + lane; + kv_shard += expf(g_t[i]) * s_shard[r] * k_t[i]; } + float kv_col = warp_reduce_sum(kv_shard); + // delta[col] = (v[col] - kv[col]) * beta float delta_col = (v_t[col] - kv_col) * beta_val; // fused: S[i][col] = g[i] * S[i][col] + k[i] * delta[col] // attn[col] = (S^T @ q)[col] = sum_i S[i][col] * q[i] - float attn_col = 0.0f; + float attn_partial = 0.0f; #pragma unroll - for (int i = 0; i < S_v; i++) { - s[i] = expf(g_t[i]) * s[i] + k_t[i] * delta_col; - attn_col += s[i] * q_t[i]; + for (int r = 0; r < rows_per_lane; r++) { + const int i = r * warp_size + lane; + s_shard[r] = expf(g_t[i]) * s_shard[r] + k_t[i] * delta_col; + attn_partial += s_shard[r] * q_t[i]; } - attn_data[col] = attn_col * scale; + float attn_col = warp_reduce_sum(attn_partial); + + if (lane == 0) { + attn_data[col] = attn_col * scale; + } } attn_data += S_v * H; @@ -116,8 +128,9 @@ gated_delta_net_cuda(const float * q, // Write state back to global memory #pragma unroll - for (int i = 0; i < S_v; i++) { - state[i * S_v + col] = s[i]; + for (int r = 0; r < rows_per_lane; r++) { + const int i = r * warp_size + lane; + state[i * S_v + col] = s_shard[r]; } } @@ -135,35 +148,43 @@ static void launch_gated_delta_net( const float * q_d, const float * k_d, const float * v_d, const float * g_d, const float * b_d, const float * s_d, float * dst_d, - int64_t S_v, int64_t H, int64_t n_tokens, int64_t n_seqs, - int64_t sq1, int64_t sq2, int64_t sq3, - int64_t sv1, int64_t sv2, int64_t sv3, - int64_t sb1, int64_t sb2, int64_t sb3, - int64_t rq1, int64_t rq3, + int64_t S_v, int64_t H, int64_t n_tokens, int64_t n_seqs, + int64_t sq1, int64_t sq2, int64_t sq3, + int64_t sv1, int64_t sv2, int64_t sv3, + int64_t sb1, int64_t sb2, int64_t sb3, + int64_t neqk1, int64_t rq3, float scale, cudaStream_t stream) { + //TODO: Add chunked kernel for even faster pre-fill + const int warp_size = ggml_cuda_info().devices[ggml_cuda_get_device()].warp_size; + const int num_warps = 4; + dim3 grid_dims(H, n_seqs, (S_v + num_warps - 1) / num_warps); + dim3 block_dims(warp_size <= S_v ? warp_size : S_v, num_warps, 1); - dim3 grid_dims(H, n_seqs, 1); - dim3 block_dims(S_v, 1, 1); + const uint3 neqk1_magic = init_fastdiv_values(neqk1); + const uint3 rq3_magic = init_fastdiv_values(rq3); int cc = ggml_cuda_info().devices[ggml_cuda_get_device()].cc; switch (S_v) { - case 32: { - constexpr int sv = 32; - size_t smem = calculate_smem(sv, cc); - gated_delta_net_cuda<<>>( + case 16: + gated_delta_net_cuda<16, KDA><<>>( q_d, k_d, v_d, g_d, b_d, s_d, dst_d, H, n_tokens, n_seqs, sq1, sq2, sq3, sv1, sv2, sv3, - sb1, sb2, sb3, rq1, rq3, scale); + sb1, sb2, sb3, neqk1_magic, rq3_magic, scale); + break; + case 32: + gated_delta_net_cuda<32, KDA><<>>( + q_d, k_d, v_d, g_d, b_d, s_d, dst_d, H, + n_tokens, n_seqs, sq1, sq2, sq3, sv1, sv2, sv3, + sb1, sb2, sb3, neqk1_magic, rq3_magic, scale); break; - } case 64: { constexpr int sv = 64; size_t smem = calculate_smem(sv, cc); gated_delta_net_cuda<<>>( q_d, k_d, v_d, g_d, b_d, s_d, dst_d, H, n_tokens, n_seqs, sq1, sq2, sq3, sv1, sv2, sv3, - sb1, sb2, sb3, rq1, rq3, scale); + sb1, sb2, sb3, neqk1_magic, rq3_magic, scale); break; } case 128: { @@ -172,7 +193,7 @@ static void launch_gated_delta_net( gated_delta_net_cuda<<>>( q_d, k_d, v_d, g_d, b_d, s_d, dst_d, H, n_tokens, n_seqs, sq1, sq2, sq3, sv1, sv2, sv3, - sb1, sb2, sb3, rq1, rq3, scale); + sb1, sb2, sb3, neqk1_magic, rq3_magic, scale); break; } default: @@ -190,10 +211,12 @@ void ggml_cuda_op_gated_delta_net(ggml_backend_cuda_context & ctx, ggml_tensor * ggml_tensor * src_state = dst->src[5]; GGML_TENSOR_LOCALS(int64_t, neq, src_q, ne); - GGML_TENSOR_LOCALS(size_t, nbq, src_q, nb); + GGML_TENSOR_LOCALS(size_t , nbq, src_q, nb); + GGML_TENSOR_LOCALS(int64_t, nek, src_k, ne); + GGML_TENSOR_LOCALS(size_t , nbk, src_k, nb); GGML_TENSOR_LOCALS(int64_t, nev, src_v, ne); - GGML_TENSOR_LOCALS(size_t, nbv, src_v, nb); - GGML_TENSOR_LOCALS(size_t, nbb, src_beta, nb); + GGML_TENSOR_LOCALS(size_t, nbv, src_v, nb); + GGML_TENSOR_LOCALS(size_t, nbb, src_beta, nb); const int64_t S_v = nev0; const int64_t H = nev1; @@ -202,7 +225,9 @@ void ggml_cuda_op_gated_delta_net(ggml_backend_cuda_context & ctx, ggml_tensor * const bool kda = (src_g->ne[0] == S_v); - const int64_t rq1 = nev1 / neq1; + GGML_ASSERT(neq1 == nek1); + const int64_t neqk1 = neq1; + const int64_t rq3 = nev3 / neq3; const float * q_d = (const float *) src_q->data; @@ -241,10 +266,10 @@ void ggml_cuda_op_gated_delta_net(ggml_backend_cuda_context & ctx, ggml_tensor * if (kda) { launch_gated_delta_net(q_d, k_d, v_d, g_d, b_d, s_d, dst_d, S_v, H, n_tokens, n_seqs, sq1, sq2, sq3, sv1, sv2, sv3, - sb1, sb2, sb3, rq1, rq3, scale, stream); + sb1, sb2, sb3, neqk1, rq3, scale, stream); } else { launch_gated_delta_net(q_d, k_d, v_d, g_d, b_d, s_d, dst_d, S_v, H, n_tokens, n_seqs, sq1, sq2, sq3, sv1, sv2, sv3, - sb1, sb2, sb3, rq1, rq3, scale, stream); + sb1, sb2, sb3, neqk1, rq3, scale, stream); } } diff --git a/ggml/src/ggml-metal/ggml-metal-device.cpp b/ggml/src/ggml-metal/ggml-metal-device.cpp index 169c63dd7a..15ae2e517d 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.cpp +++ b/ggml/src/ggml-metal/ggml-metal-device.cpp @@ -577,6 +577,41 @@ ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_rwkv(ggml_metal_ return res; } +ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_gated_delta_net(ggml_metal_library_t lib, const ggml_tensor * op) { + char base[256]; + char name[256]; + + // v is src[2], dimensions: S_v = ne[0], H = ne[1] + const int ne20 = op->src[2]->ne[0]; // S_v + const int ne21 = op->src[2]->ne[1]; // H + const int ne30 = op->src[3]->ne[0]; // G + + const int nsg = op->src[2]->ne[0]/32; + + GGML_ASSERT(op->src[5]->type == GGML_TYPE_F32); + GGML_ASSERT(op->ne[0] == ne20 * ne21); + GGML_ASSERT(ne20 % 32 == 0); + + snprintf(base, 256, "kernel_gated_delta_net_%s_%d", ggml_type_name(op->src[0]->type), nsg); + snprintf(name, 256, "%s_ne20=%d_ne30=%d", base, ne20, ne30); + + ggml_metal_pipeline_with_params res = ggml_metal_library_get_pipeline(lib, name); + if (!res.pipeline) { + ggml_metal_cv_t cv = ggml_metal_cv_init(); + + ggml_metal_cv_set_int16(cv, ne20, FC_GATED_DELTA_NET + 0); + ggml_metal_cv_set_int16(cv, ne30, FC_GATED_DELTA_NET + 1); + + res = ggml_metal_library_compile_pipeline(lib, base, name, cv); + + ggml_metal_cv_free(cv); + } + + res.nsg = nsg; + + return res; +} + ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_solve_tri(ggml_metal_library_t lib, const ggml_tensor * op) { char base[256]; char name[256]; diff --git a/ggml/src/ggml-metal/ggml-metal-device.h b/ggml/src/ggml-metal/ggml-metal-device.h index 93d7f6a216..fd2b3ddeb5 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.h +++ b/ggml/src/ggml-metal/ggml-metal-device.h @@ -125,6 +125,7 @@ struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_ssm_conv struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_ssm_conv_batched (ggml_metal_library_t lib, const struct ggml_tensor * op, int ssm_conv_bs); struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_ssm_scan (ggml_metal_library_t lib, const struct ggml_tensor * op); struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_rwkv (ggml_metal_library_t lib, const struct ggml_tensor * op); +struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_gated_delta_net (ggml_metal_library_t lib, const struct ggml_tensor * op); struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_solve_tri (ggml_metal_library_t lib, const struct ggml_tensor * op); struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_mul_mv_ext (ggml_metal_library_t lib, enum ggml_type tsrc0, enum ggml_type tsrc1, int nsg, int nxpsg, int r1ptg); struct ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_mul_mm (ggml_metal_library_t lib, const struct ggml_tensor * op); diff --git a/ggml/src/ggml-metal/ggml-metal-device.m b/ggml/src/ggml-metal/ggml-metal-device.m index d42b8ab1eb..05b826a61b 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.m +++ b/ggml/src/ggml-metal/ggml-metal-device.m @@ -1155,6 +1155,8 @@ bool ggml_metal_device_supports_op(ggml_metal_device_t dev, const struct ggml_te case GGML_OP_RWKV_WKV6: case GGML_OP_RWKV_WKV7: return true; + case GGML_OP_GATED_DELTA_NET: + return op->src[2]->ne[0] % 32 == 0; case GGML_OP_SOLVE_TRI: case GGML_OP_MUL_MAT: case GGML_OP_MUL_MAT_ID: diff --git a/ggml/src/ggml-metal/ggml-metal-impl.h b/ggml/src/ggml-metal/ggml-metal-impl.h index 99d64efc3b..53437b23cd 100644 --- a/ggml/src/ggml-metal/ggml-metal-impl.h +++ b/ggml/src/ggml-metal/ggml-metal-impl.h @@ -84,6 +84,7 @@ #define FC_BIN 1300 #define FC_SUM_ROWS 1400 #define FC_UPSCALE 1500 +#define FC_GATED_DELTA_NET 1600 // op-specific constants #define OP_FLASH_ATTN_EXT_NQPSG 8 @@ -793,6 +794,44 @@ typedef struct { uint64_t nb0; } ggml_metal_kargs_ssm_scan; +typedef struct { + int32_t ne00; + int32_t ne01; + int32_t ne02; + int32_t ne03; + uint64_t nb00; + uint64_t nb01; + uint64_t nb02; + uint64_t nb03; + int32_t ne10; + int32_t ne11; + int32_t ne12; + int32_t ne13; + uint64_t nb10; + uint64_t nb11; + uint64_t nb12; + uint64_t nb13; + int32_t ne20; + int32_t ne21; + int32_t ne22; + int32_t ne23; + uint64_t nb20; + uint64_t nb21; + uint64_t nb22; + uint64_t nb23; + int32_t ns02; + int32_t ns12; + int32_t ns22; + int32_t ne0; + int32_t ne1; + int32_t ne2; + int32_t ne3; + uint64_t nb0; + uint64_t nb1; + uint64_t nb2; + uint64_t nb3; +} ggml_metal_kargs_gated_delta_net; + typedef struct { int32_t ne00; int32_t ne01; diff --git a/ggml/src/ggml-metal/ggml-metal-ops.cpp b/ggml/src/ggml-metal/ggml-metal-ops.cpp index 267755d08c..306dbcf366 100644 --- a/ggml/src/ggml-metal/ggml-metal-ops.cpp +++ b/ggml/src/ggml-metal/ggml-metal-ops.cpp @@ -333,6 +333,10 @@ static int ggml_metal_op_encode_impl(ggml_metal_op_t ctx, int idx) { { n_fuse = ggml_metal_op_rwkv(ctx, idx); } break; + case GGML_OP_GATED_DELTA_NET: + { + n_fuse = ggml_metal_op_gated_delta_net(ctx, idx); + } break; case GGML_OP_SOLVE_TRI: { n_fuse = ggml_metal_op_solve_tri(ctx, idx); @@ -1562,6 +1566,81 @@ int ggml_metal_op_rwkv(ggml_metal_op_t ctx, int idx) { return 1; } +int ggml_metal_op_gated_delta_net(ggml_metal_op_t ctx, int idx) { + ggml_tensor * op = ctx->node(idx); + + ggml_metal_library_t lib = ctx->lib; + ggml_metal_encoder_t enc = ctx->enc; + + + GGML_TENSOR_LOCALS( int32_t, ne0, op->src[0], ne); + GGML_TENSOR_LOCALS(uint64_t, nb0, op->src[0], nb); + GGML_TENSOR_LOCALS( int32_t, ne1, op->src[1], ne); + GGML_TENSOR_LOCALS(uint64_t, nb1, op->src[1], nb); + GGML_TENSOR_LOCALS( int32_t, ne2, op->src[2], ne); + GGML_TENSOR_LOCALS(uint64_t, nb2, op->src[2], nb); + GGML_TENSOR_LOCALS( int32_t, ne, op, ne); + GGML_TENSOR_LOCALS(uint64_t, nb, op, nb); + + auto pipeline = ggml_metal_library_get_pipeline_gated_delta_net(lib, op); + + int ida = 0; + + ggml_metal_kargs_gated_delta_net args = { + /*.ne00 =*/ ne00, + /*.ne01 =*/ ne01, + /*.ne02 =*/ ne02, + /*.ne03 =*/ ne03, + /*.nb00 =*/ nb00, + /*.nb01 =*/ nb01, + /*.nb02 =*/ nb02, + /*.nb03 =*/ nb03, + /*.ne10 =*/ ne10, + /*.ne11 =*/ ne11, + /*.ne12 =*/ ne12, + /*.ne13 =*/ ne13, + /*.nb10 =*/ nb10, + /*.nb11 =*/ nb11, + /*.nb12 =*/ nb12, + /*.nb13 =*/ nb13, + /*.ne20 =*/ ne20, + /*.ne21 =*/ ne21, + /*.ne22 =*/ ne22, + /*.ne23 =*/ ne23, + /*.nb20 =*/ nb20, + /*.nb21 =*/ nb21, + /*.nb22 =*/ nb22, + /*.nb23 =*/ nb23, + /*.ns02 =*/ (int32_t) (nb02/sizeof(float)), + /*.ns12 =*/ (int32_t) (nb12/sizeof(float)), + /*.ns22 =*/ (int32_t) (nb22/sizeof(float)), + /*.ne0 =*/ ne0, + /*.ne1 =*/ ne1, + /*.ne2 =*/ ne2, + /*.ne3 =*/ ne3, + /*.nb0 =*/ nb0, + /*.nb1 =*/ nb1, + /*.nb2 =*/ nb2, + /*.nb3 =*/ nb3, + }; + + ggml_metal_encoder_set_pipeline(enc, pipeline); + ggml_metal_encoder_set_bytes (enc, &args, sizeof(args), ida++); + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[0]), ida++); // q + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[1]), ida++); // k + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[2]), ida++); // v + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[3]), ida++); // gate + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[4]), ida++); // beta + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op->src[5]), ida++); // state + ggml_metal_encoder_set_buffer (enc, ggml_metal_get_buffer_id(op), ida++); // dst + + const int nsg = pipeline.nsg; + + ggml_metal_encoder_dispatch_threadgroups(enc, op->src[2]->ne[0]/nsg, op->src[2]->ne[1], op->src[2]->ne[3], 32, nsg, 1); + + return 1; +} + int ggml_metal_op_solve_tri(ggml_metal_op_t ctx, int idx) { ggml_tensor * op = ctx->node(idx); diff --git a/ggml/src/ggml-metal/ggml-metal-ops.h b/ggml/src/ggml-metal/ggml-metal-ops.h index f3e38c7aa9..019f2fec9e 100644 --- a/ggml/src/ggml-metal/ggml-metal-ops.h +++ b/ggml/src/ggml-metal/ggml-metal-ops.h @@ -58,6 +58,7 @@ int ggml_metal_op_soft_max (ggml_metal_op_t ctx, int idx); int ggml_metal_op_ssm_conv (ggml_metal_op_t ctx, int idx); int ggml_metal_op_ssm_scan (ggml_metal_op_t ctx, int idx); int ggml_metal_op_rwkv (ggml_metal_op_t ctx, int idx); +int ggml_metal_op_gated_delta_net (ggml_metal_op_t ctx, int idx); int ggml_metal_op_solve_tri (ggml_metal_op_t ctx, int idx); int ggml_metal_op_set (ggml_metal_op_t ctx, int idx); int ggml_metal_op_cpy (ggml_metal_op_t ctx, int idx); diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index 29e4a245d5..0b77d5349b 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -2434,6 +2434,227 @@ kernel void kernel_rwkv_wkv7_f32( } } +constant short FC_gated_delta_net_ne20 [[function_constant(FC_GATED_DELTA_NET + 0)]]; +constant short FC_gated_delta_net_ne30 [[function_constant(FC_GATED_DELTA_NET + 1)]]; + +#if 1 +template +kernel void kernel_gated_delta_net_impl( + constant ggml_metal_kargs_gated_delta_net & args, + device const char * q, + device const char * k, + device const char * v, + device const char * g, + device const char * b, + device const char * s, + device char * dst, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { +#define S_v FC_gated_delta_net_ne20 +#define G FC_gated_delta_net_ne30 + + const uint tx = tpitg.x; + const uint ty = tpitg.y; + + const uint i23 = tgpig.z; // B + const uint i21 = tgpig.y; // H + const uint i20 = tgpig.x*NSG + ty; + + const uint i01 = i21 % args.ne01; + const uint i11 = i21 % args.ne11; + + const float scale = 1.0f / sqrt((float)S_v); + + device const float * s_ptr = (device const float *) (s) + (i23*args.ne21 + i21)*S_v*S_v + i20; + + float ls[NSG]; + + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + ls[j] = s_ptr[is*S_v]; + } + + device float * dst_attn = (device float *) (dst) + (i23*args.ne22*args.ne21 + i21)*S_v + i20; + + device const float * q_ptr = (device const float *) (q + i23*args.nb03 + i01*args.nb01); + device const float * k_ptr = (device const float *) (k + i23*args.nb13 + i11*args.nb11); + device const float * v_ptr = (device const float *) (v + i23*args.nb23 + i21*args.nb21); + + device const float * b_ptr = (device const float *) (b) + (i23*args.ne22*args.ne21 + i21); + device const float * g_ptr = (device const float *) (g) + (i23*args.ne22*args.ne21 + i21)*G; + + for (short t = 0; t < args.ne22; t++) { + float s_k = 0.0f; + + if (G == 1) { + const float g_exp = exp(g_ptr[0]); + + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + ls[j] *= g_exp; + + s_k += ls[j]*k_ptr[is]; + } + } else { + // KDA + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + ls[j] *= exp(g_ptr[is]); + + s_k += ls[j]*k_ptr[is]; + } + } + + s_k = simd_sum(s_k); + + const float d = (v_ptr[i20] - s_k)*b_ptr[0]; + + float y = 0.0f; + + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + ls[j] += k_ptr[is]*d; + + y += ls[j]*q_ptr[is]; + } + + y = simd_sum(y); + + if (tx == 0) { + dst_attn[t*args.ne21*S_v] = y*scale; + } + + q_ptr += args.ns02; + k_ptr += args.ns12; + v_ptr += args.ns22; + + b_ptr += args.ne21; + g_ptr += args.ne21*G; + } + + device float * dst_state = (device float *) (dst) + args.ne23*args.ne22*args.ne21*S_v + (i23*args.ne21 + i21)*S_v*S_v + i20; + + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + dst_state[is*S_v] = ls[j]; + } + +#undef S_v +#undef G +} + +typedef decltype(kernel_gated_delta_net_impl<4>) kernel_gated_delta_net_t; + +template [[host_name("kernel_gated_delta_net_f32_1")]] kernel kernel_gated_delta_net_t kernel_gated_delta_net_impl<1>; +template [[host_name("kernel_gated_delta_net_f32_2")]] kernel kernel_gated_delta_net_t kernel_gated_delta_net_impl<2>; +template [[host_name("kernel_gated_delta_net_f32_4")]] kernel kernel_gated_delta_net_t kernel_gated_delta_net_impl<4>; + +#else +// a simplified version of the above +// no performance improvement, so keep the above version for now + +template +kernel void kernel_gated_delta_net_impl( + constant ggml_metal_kargs_gated_delta_net & args, + device const char * q, + device const char * k, + device const char * v, + device const char * g, + device const char * b, + device const char * s, + device char * dst, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { +#define S_v FC_gated_delta_net_ne20 +#define G FC_gated_delta_net_ne30 + + const uint tx = tpitg.x; + const uint ty = tpitg.y; + + const uint i23 = tgpig.z; // B + const uint i21 = tgpig.y; // H + const uint i20 = tgpig.x*NSG + ty; + + const uint i01 = i21 % args.ne01; + const uint i11 = i21 % args.ne11; + + const float scale = 1.0f / sqrt((float)S_v); + + device const float * s_ptr = (device const float *) (s) + (i23*args.ne21 + i21)*S_v*S_v + i20; + + float lsf[NSG]; + + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + lsf[j] = s_ptr[is*S_v]; + } + + thread T * ls = (thread T *) (lsf); + + device float * dst_attn = (device float *) (dst) + (i23*args.ne22*args.ne21 + i21)*S_v + i20; + + device const float * q_ptr = (device const float *) (q + i23*args.nb03 + i01*args.nb01); + device const float * k_ptr = (device const float *) (k + i23*args.nb13 + i11*args.nb11); + device const float * v_ptr = (device const float *) (v + i23*args.nb23 + i21*args.nb21); + + device const float * b_ptr = (device const float *) (b) + (i23*args.ne22*args.ne21 + i21); + device const float * g_ptr = (device const float *) (g) + (i23*args.ne22*args.ne21 + i21)*G; + + for (short t = 0; t < args.ne22; t++) { + device const T * qt_ptr = (device const T *) (q_ptr); + device const T * kt_ptr = (device const T *) (k_ptr); + device const T * gt_ptr = (device const T *) (g_ptr); + + if (G == 1) { + *ls *= exp(g_ptr[0]); + } else { + // KDA + *ls *= exp(gt_ptr[tx]); + } + + const float s_k = simd_sum(dot(*ls, kt_ptr[tx])); + + const float d = (v_ptr[i20] - s_k)*b_ptr[0]; + + *ls += kt_ptr[tx]*d; + + const float y = simd_sum(dot(*ls, qt_ptr[tx])); + + if (tx == 0) { + *dst_attn = y*scale; + } + + q_ptr += args.ns02; + k_ptr += args.ns12; + v_ptr += args.ns22; + + b_ptr += args.ne21; + g_ptr += args.ne21*G; + + dst_attn += args.ne21*S_v; + } + + device float * dst_state = (device float *) (dst) + args.ne23*args.ne22*args.ne21*S_v + (i23*args.ne21 + i21)*S_v*S_v + i20; + device T * dstt_state = (device T *) (dst_state); + + FOR_UNROLL (short j = 0; j < NSG; j++) { + const short is = tx*NSG + j; + dst_state[is*S_v] = lsf[j]; + } + +#undef S_v +#undef G +} + +typedef decltype(kernel_gated_delta_net_impl) kernel_gated_delta_net_t; + +template [[host_name("kernel_gated_delta_net_f32_1")]] kernel kernel_gated_delta_net_t kernel_gated_delta_net_impl; +template [[host_name("kernel_gated_delta_net_f32_2")]] kernel kernel_gated_delta_net_t kernel_gated_delta_net_impl; +template [[host_name("kernel_gated_delta_net_f32_4")]] kernel kernel_gated_delta_net_t kernel_gated_delta_net_impl; +#endif + constant short FC_solve_tri_nsg [[function_constant(FC_SOLVE_TRI + 0)]]; constant short FC_solve_tri_n [[function_constant(FC_SOLVE_TRI + 1)]]; constant short FC_solve_tri_k [[function_constant(FC_SOLVE_TRI + 2)]]; diff --git a/src/llama-context.cpp b/src/llama-context.cpp index ee2669c154..0be9493910 100644 --- a/src/llama-context.cpp +++ b/src/llama-context.cpp @@ -151,7 +151,8 @@ llama_context::llama_context( cparams.auto_fa = params.flash_attn_type == LLAMA_FLASH_ATTN_TYPE_AUTO; cparams.fused_gdn_ar = true; - cparams.fused_gdn_ch = false; // TODO: implement + cparams.fused_gdn_ch = true; + cparams.auto_fgdn = true; // with causal attention, the batch size is limited by the context size cparams.n_batch = cparams.causal_attn ? std::min(cparams.n_ctx, params.n_batch) : params.n_batch; @@ -462,37 +463,81 @@ void llama_context::sched_reserve() { cparams.auto_fa = false; } - if (cparams.fused_gdn_ar) { - auto * gf = graph_reserve(1, n_seqs, n_outputs, mctx.get(), true); - if (!gf) { - throw std::runtime_error("failed to reserve graph for fused Gated Delta Net check"); - } + if (cparams.auto_fgdn) { + LLAMA_LOG_INFO("%s: resolving fused Gated Delta Net support:\n", __func__); - const size_t prefix_len = strlen(LLAMA_TENSOR_NAME_FGDNAR) + 1; - bool gdn_device_mismatch = false; - for (int i = 0; i < ggml_graph_n_nodes(gf); i++) { - ggml_tensor * n = ggml_graph_node(gf, i); - if (n->op != GGML_OP_GATED_DELTA_NET) { - continue; + if (cparams.fused_gdn_ar) { + auto * gf = graph_reserve(1, n_seqs, n_outputs, mctx.get(), true); + if (!gf) { + throw std::runtime_error("failed to reserve graph for fused Gated Delta Net check (autoregressive)"); } - ggml_backend_dev_t device_gdn = ggml_backend_get_device(ggml_backend_sched_get_tensor_backend(sched.get(), n)); - GGML_ASSERT(strncmp(n->name, LLAMA_TENSOR_NAME_FGDNAR "-", prefix_len) == 0); - const int il = std::stoi(n->name + prefix_len); - ggml_backend_dev_t device_kv = model.dev_layer(il); - if (device_gdn != device_kv) { - LLAMA_LOG_WARN("%s: layer %d is assigned to device %s but the fused Gated Delta Net tensor " - "is assigned to device %s (usually due to missing support)\n", - __func__, il, ggml_backend_dev_name(device_kv), ggml_backend_dev_name(device_gdn)); - gdn_device_mismatch = true; - break; + const size_t prefix_len = strlen(LLAMA_TENSOR_NAME_FGDN_AR) + 1; + bool gdn_device_mismatch = false; + for (int i = 0; i < ggml_graph_n_nodes(gf); i++) { + ggml_tensor * n = ggml_graph_node(gf, i); + if (n->op != GGML_OP_GATED_DELTA_NET) { + continue; + } + ggml_backend_dev_t device_gdn = ggml_backend_get_device(ggml_backend_sched_get_tensor_backend(sched.get(), n)); + + GGML_ASSERT(strncmp(n->name, LLAMA_TENSOR_NAME_FGDN_AR "-", prefix_len) == 0); + const int il = std::stoi(n->name + prefix_len); + ggml_backend_dev_t device_kv = model.dev_layer(il); + if (device_gdn != device_kv) { + LLAMA_LOG_WARN("%s: layer %d is assigned to device %s but the fused Gated Delta Net tensor " + "is assigned to device %s (usually due to missing support)\n", + __func__, il, ggml_backend_dev_name(device_kv), ggml_backend_dev_name(device_gdn)); + gdn_device_mismatch = true; + break; + } + } + + if (gdn_device_mismatch) { + cparams.fused_gdn_ar = false; + LLAMA_LOG_WARN("%s: fused Gated Delta Net (autoregressive) not supported, set to disabled\n", __func__); + } else { + LLAMA_LOG_INFO("%s: fused Gated Delta Net (autoregressive) enabled\n", __func__); } } - if (gdn_device_mismatch) { - cparams.fused_gdn_ar = false; - LLAMA_LOG_WARN("%s: fused Gated Delta Net not supported, set to disabled\n", __func__); + if (cparams.fused_gdn_ch) { + // more than one token in the batch per sequence in order to take the chunked path + auto * gf = graph_reserve(16*n_seqs, n_seqs, n_outputs, mctx.get(), true); + if (!gf) { + throw std::runtime_error("failed to reserve graph for fused Gated Delta Net check (chunked)"); + } + + const size_t prefix_len = strlen(LLAMA_TENSOR_NAME_FGDN_CH) + 1; + bool gdn_device_mismatch = false; + for (int i = 0; i < ggml_graph_n_nodes(gf); i++) { + ggml_tensor * n = ggml_graph_node(gf, i); + if (n->op != GGML_OP_GATED_DELTA_NET) { + continue; + } + ggml_backend_dev_t device_gdn = ggml_backend_get_device(ggml_backend_sched_get_tensor_backend(sched.get(), n)); + + GGML_ASSERT(strncmp(n->name, LLAMA_TENSOR_NAME_FGDN_CH "-", prefix_len) == 0); + const int il = std::stoi(n->name + prefix_len); + ggml_backend_dev_t device_kv = model.dev_layer(il); + if (device_gdn != device_kv) { + LLAMA_LOG_WARN("%s: layer %d is assigned to device %s but the fused Gated Delta Net tensor " + "is assigned to device %s (usually due to missing support)\n", + __func__, il, ggml_backend_dev_name(device_kv), ggml_backend_dev_name(device_gdn)); + gdn_device_mismatch = true; + break; + } + } + + if (gdn_device_mismatch) { + cparams.fused_gdn_ch = false; + LLAMA_LOG_WARN("%s: fused Gated Delta Net (chunked) not supported, set to disabled\n", __func__); + } else { + LLAMA_LOG_INFO("%s: fused Gated Delta Net (chunked) enabled\n", __func__); + } } + + cparams.auto_fgdn = false; } // reserve worst-case graph diff --git a/src/llama-cparams.h b/src/llama-cparams.h index 333922468c..9d35947413 100644 --- a/src/llama-cparams.h +++ b/src/llama-cparams.h @@ -33,6 +33,7 @@ struct llama_cparams { bool auto_fa; bool fused_gdn_ar; // use fused gated delta net (autoregressive) bool fused_gdn_ch; // use fused gated delta net (chunked) + bool auto_fgdn; bool no_perf; bool warmup; bool op_offload; diff --git a/src/llama-impl.h b/src/llama-impl.h index ee27ac1bea..e4f35c8e53 100644 --- a/src/llama-impl.h +++ b/src/llama-impl.h @@ -70,6 +70,6 @@ std::string llama_format_tensor_shape(const struct ggml_tensor * t); std::string gguf_kv_to_str(const struct gguf_context * ctx_gguf, int i); -#define LLAMA_TENSOR_NAME_FATTN "__fattn__" -#define LLAMA_TENSOR_NAME_FGDNAR "__fgdnar__" -#define LLAMA_TENSOR_NAME_FGDNCH "__fgdnch__" +#define LLAMA_TENSOR_NAME_FATTN "__fattn__" +#define LLAMA_TENSOR_NAME_FGDN_AR "__fgdn_ar__" +#define LLAMA_TENSOR_NAME_FGDN_CH "__fgdn_ch__" diff --git a/src/models/delta-net-base.cpp b/src/models/delta-net-base.cpp index b0be62fc68..a62dbc15dd 100644 --- a/src/models/delta-net-base.cpp +++ b/src/models/delta-net-base.cpp @@ -41,13 +41,6 @@ std::pair llm_build_delta_net_base::build_delta_ne GGML_ASSERT(b->ne[0] == 1 && b->ne[1] == H_v && b->ne[2] == n_tokens && b->ne[3] == n_seqs); GGML_ASSERT(s->ne[0] == S_v && s->ne[1] == S_v && s->ne[2] == H_v && s->ne[3] == n_seqs); - if (cparams.fused_gdn_ch) { - //ggml_tensor * result = ggml_gated_delta_net(ctx0, q, k, v, g, b, s); - //cb(result, LLAMA_TENSOR_NAME_FGDNCH, il); - - GGML_ABORT("not implemented yet"); - } - const float scale = 1.0f / sqrtf(S_k); q = ggml_scale(ctx0, q, scale); @@ -325,26 +318,6 @@ std::pair llm_build_delta_net_base::build_delta_ne GGML_ASSERT(b->ne[0] == 1 && b->ne[1] == H_v && b->ne[2] == n_tokens && b->ne[3] == n_seqs); GGML_ASSERT(s->ne[0] == S_v && s->ne[1] == S_v && s->ne[2] == H_v && s->ne[3] == n_seqs); - if (cparams.fused_gdn_ar) { - ggml_tensor * result = ggml_gated_delta_net(ctx0, q, k, v, g, b, s); - cb(result, LLAMA_TENSOR_NAME_FGDNAR, il); - - ggml_tensor * output = ggml_view_4d(ctx0, result, - S_v, H_v, n_tokens, n_seqs, - ggml_row_size(result->type, S_v), - ggml_row_size(result->type, S_v * H_v), - ggml_row_size(result->type, S_v * H_v * n_tokens), 0); - - ggml_tensor * new_state = ggml_view_4d(ctx0, result, - S_v, S_v, H_v, n_seqs, - ggml_row_size(result->type, S_v), - ggml_row_size(result->type, S_v * S_v), - ggml_row_size(result->type, S_v * S_v * H_v), - ggml_row_size(result->type, S_v * H_v * n_tokens * n_seqs)); - - return {output, new_state}; - } - const float scale = 1.0f / sqrtf(S_k); q = ggml_scale(ctx0, q, scale); @@ -401,3 +374,78 @@ std::pair llm_build_delta_net_base::build_delta_ne return {o, s}; } + +std::pair llm_build_delta_net_base::build_delta_net_fused( + ggml_tensor * q, + ggml_tensor * k, + ggml_tensor * v, + ggml_tensor * g, + ggml_tensor * b, + ggml_tensor * s, + int il) { + const int64_t S_k = q->ne[0]; + const int64_t H_k = q->ne[1]; + const int64_t n_tokens = q->ne[2]; + const int64_t n_seqs = q->ne[3]; + + const int64_t S_v = v->ne[0]; + const int64_t H_v = v->ne[1]; + + GGML_ASSERT(S_k == S_v); + GGML_ASSERT(H_v % H_k == 0); + + GGML_ASSERT(q->ne[0] == S_k && q->ne[1] == H_k && q->ne[2] == n_tokens && q->ne[3] == n_seqs); + GGML_ASSERT(k->ne[0] == S_k && k->ne[1] == H_k && k->ne[2] == n_tokens && k->ne[3] == n_seqs); + GGML_ASSERT(v->ne[0] == S_v && v->ne[1] == H_v && v->ne[2] == n_tokens && v->ne[3] == n_seqs); + + GGML_ASSERT(g->ne[0] == 1 || g->ne[0] == S_v); + GGML_ASSERT( g->ne[1] == H_v && g->ne[2] == n_tokens && g->ne[3] == n_seqs); + GGML_ASSERT(b->ne[0] == 1 && b->ne[1] == H_v && b->ne[2] == n_tokens && b->ne[3] == n_seqs); + GGML_ASSERT(s->ne[0] == S_v && s->ne[1] == S_v && s->ne[2] == H_v && s->ne[3] == n_seqs); + + ggml_tensor * result = ggml_gated_delta_net(ctx0, q, k, v, g, b, s); + if (n_tokens == 1) { + cb(result, LLAMA_TENSOR_NAME_FGDN_AR, il); + } else { + cb(result, LLAMA_TENSOR_NAME_FGDN_CH, il); + } + + ggml_tensor * output = ggml_view_4d(ctx0, result, + S_v, H_v, n_tokens, n_seqs, + ggml_row_size(result->type, S_v), + ggml_row_size(result->type, S_v * H_v), + ggml_row_size(result->type, S_v * H_v * n_tokens), 0); + + ggml_tensor * new_state = ggml_view_4d(ctx0, result, + S_v, S_v, H_v, n_seqs, + ggml_row_size(result->type, S_v), + ggml_row_size(result->type, S_v * S_v), + ggml_row_size(result->type, S_v * S_v * H_v), + ggml_row_size(result->type, S_v * H_v * n_tokens * n_seqs)); + + return {output, new_state}; +} + +std::pair llm_build_delta_net_base::build_delta_net( + ggml_tensor * q, + ggml_tensor * k, + ggml_tensor * v, + ggml_tensor * g, + ggml_tensor * b, + ggml_tensor * s, + int il) { + const int64_t n_seq_tokens = q->ne[2]; + + if (n_seq_tokens == 1) { + if (cparams.fused_gdn_ar) { + return build_delta_net_fused(q, k, v, g, b, s, il); + } + return build_delta_net_autoregressive(q, k, v, g, b, s, il); + } + + if (cparams.fused_gdn_ch) { + return build_delta_net_fused(q, k, v, g, b, s, il); + } + + return build_delta_net_chunking(q, k, v, g, b, s, il); +} diff --git a/src/models/kimi-linear.cpp b/src/models/kimi-linear.cpp index 063b17a2f6..4d62f4e715 100644 --- a/src/models/kimi-linear.cpp +++ b/src/models/kimi-linear.cpp @@ -169,9 +169,7 @@ llm_build_kimi_linear::llm_build_kimi_linear(const llama_model & model, const ll Kcur = ggml_l2_norm(ctx0, Kcur, eps_norm); // Choose between build_delta_net_chunking and build_delta_net_recurrent based on n_tokens - std::pair attn_out = n_seq_tokens == 1 ? - build_delta_net_autoregressive(Qcur, Kcur, Vcur, g1, beta, state, il) : - build_delta_net_chunking(Qcur, Kcur, Vcur, g1, beta, state, il); + auto attn_out = build_delta_net(Qcur, Kcur, Vcur, g1, beta, state, il); ggml_tensor * output = ggml_cont(ctx0, attn_out.first); ggml_tensor * new_state = attn_out.second; diff --git a/src/models/models.h b/src/models/models.h index cf9ba04e7f..a86b2b1ebd 100644 --- a/src/models/models.h +++ b/src/models/models.h @@ -44,6 +44,26 @@ struct llm_build_delta_net_base : public llm_graph_context { ggml_tensor * b, ggml_tensor * s, int il); + + // use the ggml_gated_delta_net fused operator + std::pair build_delta_net_fused( + ggml_tensor * q, + ggml_tensor * k, + ggml_tensor * v, + ggml_tensor * g, + ggml_tensor * b, + ggml_tensor * s, + int il); + + // choose one of two implementations above based on the number of tokens + std::pair build_delta_net( + ggml_tensor * q, + ggml_tensor * k, + ggml_tensor * v, + ggml_tensor * g, + ggml_tensor * b, + ggml_tensor * s, + int il); }; struct llm_build_rwkv6_base : public llm_graph_context { diff --git a/src/models/qwen35.cpp b/src/models/qwen35.cpp index ba096a5a7b..e12dad7001 100644 --- a/src/models/qwen35.cpp +++ b/src/models/qwen35.cpp @@ -321,9 +321,9 @@ ggml_tensor * llm_build_qwen35::build_layer_attn_linear( //v_conv = ggml_cont_4d(ctx0, v_conv, head_v_dim, num_v_heads, n_seq_tokens, n_seqs); // if head keys and value keys are different, repeat to force tensors into matching shapes - if (num_k_heads != num_v_heads) { + // note: need explicit repeat only if we are not using the fused GDN + if (num_k_heads != num_v_heads && (!cparams.fused_gdn_ar || !cparams.fused_gdn_ch)) { GGML_ASSERT(num_v_heads % num_k_heads == 0); - // TODO: try to avoid these explicit repeats by utilizing op broadcast q_conv = ggml_repeat_4d(ctx0, q_conv, head_k_dim, num_v_heads, n_seq_tokens, n_seqs); k_conv = ggml_repeat_4d(ctx0, k_conv, head_k_dim, num_v_heads, n_seq_tokens, n_seqs); } @@ -332,12 +332,8 @@ ggml_tensor * llm_build_qwen35::build_layer_attn_linear( cb(k_conv, "k_conv_predelta", il); cb(v_conv, "v_conv_predelta", il); - std::pair attn_out; - if (n_seq_tokens == 1) { - attn_out = build_delta_net_autoregressive(q_conv, k_conv, v_conv, gate, beta, state, il); - } else { - attn_out = build_delta_net_chunking(q_conv, k_conv, v_conv, gate, beta, state, il); - } + auto attn_out = build_delta_net(q_conv, k_conv, v_conv, gate, beta, state, il); + ggml_tensor * output = attn_out.first; ggml_tensor * new_state = attn_out.second; cb(output, "attn_output", il); diff --git a/src/models/qwen35moe.cpp b/src/models/qwen35moe.cpp index fe382286e9..8d07c7ed27 100644 --- a/src/models/qwen35moe.cpp +++ b/src/models/qwen35moe.cpp @@ -321,9 +321,9 @@ ggml_tensor * llm_build_qwen35moe ::build_layer_attn_linear( //v_conv = ggml_cont_4d(ctx0, v_conv, head_v_dim, num_v_heads, n_seq_tokens, n_seqs); // if head keys and value keys are different, repeat to force tensors into matching shapes - if (num_k_heads != num_v_heads) { + // note: need explicit repeat only if we are not using the fused GDN + if (num_k_heads != num_v_heads && (!cparams.fused_gdn_ar || !cparams.fused_gdn_ch)) { GGML_ASSERT(num_v_heads % num_k_heads == 0); - // TODO: try to avoid these explicit repeats by utilizing op broadcast q_conv = ggml_repeat_4d(ctx0, q_conv, head_k_dim, num_v_heads, n_seq_tokens, n_seqs); k_conv = ggml_repeat_4d(ctx0, k_conv, head_k_dim, num_v_heads, n_seq_tokens, n_seqs); } @@ -332,12 +332,8 @@ ggml_tensor * llm_build_qwen35moe ::build_layer_attn_linear( cb(k_conv, "k_conv_predelta", il); cb(v_conv, "v_conv_predelta", il); - std::pair attn_out; - if (n_seq_tokens == 1) { - attn_out = build_delta_net_autoregressive(q_conv, k_conv, v_conv, gate, beta, state, il); - } else { - attn_out = build_delta_net_chunking(q_conv, k_conv, v_conv, gate, beta, state, il); - } + auto attn_out = build_delta_net(q_conv, k_conv, v_conv, gate, beta, state, il); + ggml_tensor * output = attn_out.first; ggml_tensor * new_state = attn_out.second; cb(output, "attn_output", il); diff --git a/src/models/qwen3next.cpp b/src/models/qwen3next.cpp index 30912fd5e3..cc479dd075 100644 --- a/src/models/qwen3next.cpp +++ b/src/models/qwen3next.cpp @@ -406,6 +406,7 @@ ggml_tensor * llm_build_qwen3next::build_layer_attn_linear( //v_conv = ggml_cont_4d(ctx0, v_conv, head_v_dim, num_v_heads, n_seq_tokens, n_seqs); // if head keys and value keys are different, repeat to force tensors into matching shapes + // TODO: avoid repeats for fused GDN, needs broadcast configuration for GDN op [TAG_GGML_GDN_BCAST] if (num_k_heads != num_v_heads) { GGML_ASSERT(num_v_heads % num_k_heads == 0); int64_t repeat_factor = num_v_heads / num_k_heads; @@ -431,13 +432,8 @@ ggml_tensor * llm_build_qwen3next::build_layer_attn_linear( cb(k_conv, "k_conv_predelta", il); cb(v_conv, "v_conv_predelta", il); - // Choose between build_delta_net_chunking, build_delta_net_recurrent, and build_delta_net_autoregressive based on n_tokens - std::pair attn_out; // pair of (output, new_state) - if (n_seq_tokens == 1) { - attn_out = build_delta_net_autoregressive(q_conv, k_conv, v_conv, gate, beta, state, il); - } else { - attn_out = build_delta_net_chunking(q_conv, k_conv, v_conv, gate, beta, state, il); - } + auto attn_out = build_delta_net(q_conv, k_conv, v_conv, gate, beta, state, il); + ggml_tensor * output = attn_out.first; ggml_tensor * new_state = attn_out.second; cb(output, "attn_output", il); diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 66aaddcfff..58d67d97f8 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -8447,6 +8447,9 @@ static std::vector> make_test_cases_eval() { } test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 32, 128, 1, 1)); + test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 32, 16, 1, 1)); + test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 32, 16, 1, 1, 1, true, true)); + test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 32, 16, 1, 1, 1, false, true)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 16, 64, 1, 2)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 64, 4, 1)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 64, 4, 2)); @@ -8456,10 +8459,12 @@ static std::vector> make_test_cases_eval() { // KDA (vector gate) test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 64, 1, 1, 1, false, true)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 64, 1, 2, 1, false, true)); + test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 16, 1, 2, 1, false, true)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 32, 4, 1, 1, false, true)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 64, 4, 2, 1, false, true)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 8, 32, 4, 2, 2, false, true)); test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 64, 4, 2, 1, true, true)); + test_cases.emplace_back(new test_gated_delta_net(GGML_TYPE_F32, 4, 16, 4, 2, 1, true, true)); #if 0 // these tests are disabled to save execution time, sbut they can be handy for debugging From f2ab047f275780987ac028f7368cdad32863a36f Mon Sep 17 00:00:00 2001 From: Masashi Yoshimura Date: Thu, 12 Mar 2026 06:40:36 +0900 Subject: [PATCH 06/28] ggml-webgpu: Add supports for `GGML_OP_REPEAT` (#20230) * Add GGML_OP_REPEAT to webgpu backend. * Add i16 support for GGML_OP_REPEAT. --- docs/ops.md | 2 +- docs/ops/WebGPU.csv | 28 ++++---- .../ggml-webgpu/ggml-webgpu-shader-lib.hpp | 71 +++++++++++++++++-- ggml/src/ggml-webgpu/ggml-webgpu.cpp | 55 ++++++++++++-- ggml/src/ggml-webgpu/wgsl-shaders/repeat.wgsl | 67 +++++++++++++++++ 5 files changed, 198 insertions(+), 25 deletions(-) create mode 100644 ggml/src/ggml-webgpu/wgsl-shaders/repeat.wgsl diff --git a/docs/ops.md b/docs/ops.md index 37329d56a8..f914c2b7d2 100644 --- a/docs/ops.md +++ b/docs/ops.md @@ -80,7 +80,7 @@ Legend: | POOL_2D | ❌ | 🟡 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | | REGLU | ❌ | ✅ | ✅ | ✅ | 🟡 | ✅ | ✅ | 🟡 | ✅ | ❌ | ❌ | | RELU | ❌ | ✅ | ✅ | 🟡 | 🟡 | 🟡 | ✅ | 🟡 | ✅ | ❌ | ❌ | -| REPEAT | ❌ | ✅ | ✅ | 🟡 | ✅ | 🟡 | ✅ | 🟡 | ❌ | ❌ | ❌ | +| REPEAT | ❌ | ✅ | ✅ | 🟡 | ✅ | 🟡 | ✅ | 🟡 | ✅ | ❌ | ❌ | | REPEAT_BACK | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | | RMS_NORM | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | | RMS_NORM_BACK | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | diff --git a/docs/ops/WebGPU.csv b/docs/ops/WebGPU.csv index 9e081e7605..b7761b9dd3 100644 --- a/docs/ops/WebGPU.csv +++ b/docs/ops/WebGPU.csv @@ -5023,20 +5023,20 @@ "WebGPU: WebGPU","ARGMAX","type=f32,ne=[1024,12,1,1]","support","1","yes","WebGPU" "WebGPU: WebGPU","ARGMAX","type=f32,ne=[2000,10,1,1]","support","1","yes","WebGPU" "WebGPU: WebGPU","ARGMAX","type=f32,ne=[5438,3,1,1]","support","1","yes","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,1,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[2,1,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,2,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,1,2,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,1,1,2]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=i32,ne=[10,5,4,1],nr=[2,1,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=i16,ne=[10,5,4,1],nr=[1,1,1,2]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,1,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[2,1,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,2,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,1,2,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,1,1,2]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=i32,ne=[10,5,4,3],nr=[2,1,1,1]","support","0","no","WebGPU" -"WebGPU: WebGPU","REPEAT","type=i16,ne=[10,5,4,3],nr=[1,1,1,2]","support","0","no","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,1,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[2,1,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,2,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,1,2,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,1],nr=[1,1,1,2]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=i32,ne=[10,5,4,1],nr=[2,1,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=i16,ne=[10,5,4,1],nr=[1,1,1,2]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,1,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[2,1,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,2,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,1,2,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=f32,ne=[10,5,4,3],nr=[1,1,1,2]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=i32,ne=[10,5,4,3],nr=[2,1,1,1]","support","1","yes","WebGPU" +"WebGPU: WebGPU","REPEAT","type=i16,ne=[10,5,4,3],nr=[1,1,1,2]","support","1","yes","WebGPU" "WebGPU: WebGPU","REPEAT_BACK","type=f32,ne=[8,6,4,2],nr=[1,1,1,1],v=0","support","0","no","WebGPU" "WebGPU: WebGPU","REPEAT_BACK","type=f32,ne=[8,6,4,2],nr=[2,1,1,1],v=0","support","0","no","WebGPU" "WebGPU: WebGPU","REPEAT_BACK","type=f32,ne=[8,6,4,2],nr=[1,2,1,1],v=0","support","0","no","WebGPU" diff --git a/ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp b/ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp index 3c38b1a230..3d7e59fddf 100644 --- a/ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp +++ b/ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp @@ -198,6 +198,22 @@ struct ggml_webgpu_concat_pipeline_key_hash { } }; +/** Repeat **/ + +struct ggml_webgpu_repeat_pipeline_key { + int type; + + bool operator==(const ggml_webgpu_repeat_pipeline_key & other) const { return type == other.type; } +}; + +struct ggml_webgpu_repeat_pipeline_key_hash { + size_t operator()(const ggml_webgpu_repeat_pipeline_key & key) const { + size_t seed = 0; + ggml_webgpu_hash_combine(seed, key.type); + return seed; + } +}; + /** Binary **/ struct ggml_webgpu_binary_pipeline_key { @@ -431,6 +447,8 @@ class ggml_webgpu_shader_lib { binary_pipelines; // type/op/inplace/overlap std::unordered_map concat_pipelines; // type + std::unordered_map + repeat_pipelines; // type std::unordered_map flash_attn_pipelines; std::unordered_map defines; - std::string variant = "concat"; + std::string variant = "concat"; switch (key.type) { case GGML_TYPE_F32: @@ -1164,15 +1182,56 @@ class ggml_webgpu_shader_lib { defines.push_back(std::string("WG_SIZE=") + std::to_string(context.max_wg_size)); - auto processed = preprocessor.preprocess(wgsl_concat, defines); - auto decisions = std::make_shared(); - decisions->wg_size = context.max_wg_size; + auto processed = preprocessor.preprocess(wgsl_concat, defines); + auto decisions = std::make_shared(); + decisions->wg_size = context.max_wg_size; webgpu_pipeline pipeline = ggml_webgpu_create_pipeline(device, processed, variant); - pipeline.context = decisions; - concat_pipelines[key] = pipeline; + pipeline.context = decisions; + concat_pipelines[key] = pipeline; return concat_pipelines[key]; } + webgpu_pipeline get_repeat_pipeline(const ggml_webgpu_shader_lib_context & context) { + ggml_webgpu_repeat_pipeline_key key = { + .type = context.dst->type, + }; + + auto it = repeat_pipelines.find(key); + if (it != repeat_pipelines.end()) { + return it->second; + } + + std::vector defines; + std::string variant = "repeat"; + + switch (key.type) { + case GGML_TYPE_F32: + defines.push_back("TYPE_F32"); + variant += "_f32"; + break; + case GGML_TYPE_I32: + defines.push_back("TYPE_I32"); + variant += "_i32"; + break; + case GGML_TYPE_I16: + defines.push_back("TYPE_I16"); + variant += "_i16"; + break; + default: + GGML_ABORT("Unsupported type for repeat shader"); + } + + defines.push_back(std::string("WG_SIZE=") + std::to_string(context.max_wg_size)); + + auto processed = preprocessor.preprocess(wgsl_repeat, defines); + auto decisions = std::make_shared(); + decisions->wg_size = context.max_wg_size; + webgpu_pipeline pipeline = ggml_webgpu_create_pipeline(device, processed, variant); + pipeline.context = decisions; + repeat_pipelines[key] = pipeline; + return repeat_pipelines[key]; + } + webgpu_pipeline get_flash_attn_pipeline(const ggml_webgpu_shader_lib_context & context) { const bool has_mask = context.src3 != nullptr; const bool has_sinks = context.src4 != nullptr; diff --git a/ggml/src/ggml-webgpu/ggml-webgpu.cpp b/ggml/src/ggml-webgpu/ggml-webgpu.cpp index ccc34cb153..128b7dc3de 100644 --- a/ggml/src/ggml-webgpu/ggml-webgpu.cpp +++ b/ggml/src/ggml-webgpu/ggml-webgpu.cpp @@ -1567,6 +1567,48 @@ static webgpu_command ggml_webgpu_concat(webgpu_context & ctx, return ggml_backend_webgpu_build(ctx->global_ctx, ctx->param_buf_pool, pipeline, params, entries, wg_x); } +static webgpu_command ggml_webgpu_repeat(webgpu_context & ctx, ggml_tensor * src0, ggml_tensor * dst) { + uint32_t ne = (uint32_t) ggml_nelements(dst); + + std::vector params = { ne, + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, src0) / + ggml_type_size(src0->type)), + (uint32_t) (ggml_webgpu_tensor_misalignment(ctx, dst) / ggml_type_size(dst->type)), + (uint32_t) (src0->nb[0] / ggml_type_size(src0->type)), + (uint32_t) (src0->nb[1] / ggml_type_size(src0->type)), + (uint32_t) (src0->nb[2] / ggml_type_size(src0->type)), + (uint32_t) (src0->nb[3] / ggml_type_size(src0->type)), + (uint32_t) (src0->ne[0]), + (uint32_t) (src0->ne[1]), + (uint32_t) (src0->ne[2]), + (uint32_t) (src0->ne[3]), + (uint32_t) (dst->ne[0]), + (uint32_t) (dst->ne[1]), + (uint32_t) (dst->ne[2]) }; + + std::vector entries = { + { .binding = 0, + .buffer = ggml_webgpu_tensor_buf(src0), + .offset = ggml_webgpu_tensor_align_offset(ctx, src0), + .size = ggml_webgpu_tensor_binding_size(ctx, src0) }, + { .binding = 1, + .buffer = ggml_webgpu_tensor_buf(dst), + .offset = ggml_webgpu_tensor_align_offset(ctx, dst), + .size = ggml_webgpu_tensor_binding_size(ctx, dst) } + }; + + ggml_webgpu_shader_lib_context shader_lib_ctx = { + .src0 = src0, + .dst = dst, + .max_wg_size = ctx->global_ctx->capabilities.limits.maxComputeInvocationsPerWorkgroup, + }; + + webgpu_pipeline pipeline = ctx->shader_lib->get_repeat_pipeline(shader_lib_ctx); + auto * decisions = static_cast(pipeline.context.get()); + uint32_t wg_x = CEIL_DIV(ne, decisions->wg_size); + return ggml_backend_webgpu_build(ctx->global_ctx, ctx->param_buf_pool, pipeline, params, entries, wg_x); +} + static webgpu_command ggml_webgpu_rms_norm(webgpu_context & ctx, ggml_tensor * src, ggml_tensor * dst) { int inplace = ggml_webgpu_tensor_equal(src, dst); @@ -2158,6 +2200,8 @@ static std::optional ggml_webgpu_encode_node(webgpu_context ctx, return ggml_webgpu_binary_op(ctx, src0, src1, node); case GGML_OP_CONCAT: return ggml_webgpu_concat(ctx, src0, src1, node); + case GGML_OP_REPEAT: + return ggml_webgpu_repeat(ctx, src0, node); case GGML_OP_RMS_NORM: return ggml_webgpu_rms_norm(ctx, src0, node); case GGML_OP_ROPE: @@ -2919,10 +2963,10 @@ static ggml_backend_buffer_type_t ggml_backend_webgpu_device_get_buffer_type(ggm /* .iface = */ { /* .get_name = */ ggml_backend_webgpu_buffer_type_get_name, /* .alloc_buffer = */ - ggml_backend_webgpu_buffer_type_alloc_buffer, /* .get_alignment = */ - ggml_backend_webgpu_buffer_type_get_alignment, /* .get_max_size = */ - ggml_backend_webgpu_buffer_type_get_max_size, /* .get_alloc_size = */ - ggml_backend_webgpu_buffer_type_get_alloc_size, /* .is_host = */ NULL, // defaults to false + ggml_backend_webgpu_buffer_type_alloc_buffer, /* .get_alignment = */ + ggml_backend_webgpu_buffer_type_get_alignment, /* .get_max_size = */ + ggml_backend_webgpu_buffer_type_get_max_size, /* .get_alloc_size = */ + ggml_backend_webgpu_buffer_type_get_alloc_size, /* .is_host = */ NULL, // defaults to false }, /* .device = */ dev, @@ -3000,6 +3044,9 @@ static bool ggml_backend_webgpu_device_supports_op(ggml_backend_dev_t dev, const case GGML_OP_CONCAT: supports_op = (src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_I32); break; + case GGML_OP_REPEAT: + supports_op = (src0->type == GGML_TYPE_F32 || src0->type == GGML_TYPE_I32 || src0->type == GGML_TYPE_I16); + break; case GGML_OP_CPY: case GGML_OP_CONT: supports_op = ((op->type == GGML_TYPE_F32 || op->type == GGML_TYPE_F16) && diff --git a/ggml/src/ggml-webgpu/wgsl-shaders/repeat.wgsl b/ggml/src/ggml-webgpu/wgsl-shaders/repeat.wgsl new file mode 100644 index 0000000000..6e2a1a8b61 --- /dev/null +++ b/ggml/src/ggml-webgpu/wgsl-shaders/repeat.wgsl @@ -0,0 +1,67 @@ +enable f16; + +struct Params { + ne: u32, + + offset_src0: u32, + offset_dst: u32, + + stride_src0_0: u32, + stride_src0_1: u32, + stride_src0_2: u32, + stride_src0_3: u32, + + a_ne0: u32, + a_ne1: u32, + a_ne2: u32, + a_ne3: u32, + + ne0: u32, + ne1: u32, + ne2: u32, +}; + +#ifdef TYPE_F32 +#define DataType f32 +#endif +#ifdef TYPE_I32 +#define DataType i32 +#endif +#ifdef TYPE_I16 +// same size (16-bit) is sufficient for repeat +#define DataType f16 +#endif + +@group(0) @binding(0) +var src0: array; + +@group(0) @binding(1) +var dst: array; + +@group(0) @binding(2) +var params: Params; + +@compute @workgroup_size(WG_SIZE) +fn main(@builtin(global_invocation_id) gid: vec3) { + if (gid.x < params.ne) { + var i = gid.x; + let i3 = i / (params.ne2 * params.ne1 * params.ne0); + i = i % (params.ne2 * params.ne1 * params.ne0); + let i2 = i / (params.ne1 * params.ne0); + i = i % (params.ne1 * params.ne0); + let i1 = i / params.ne0; + let i0 = i % params.ne0; + + let a_i0 = i0 % params.a_ne0; + let a_i1 = i1 % params.a_ne1; + let a_i2 = i2 % params.a_ne2; + let a_i3 = i3 % params.a_ne3; + + let a_index = a_i0 * params.stride_src0_0 + + a_i1 * params.stride_src0_1 + + a_i2 * params.stride_src0_2 + + a_i3 * params.stride_src0_3; + + dst[params.offset_dst + gid.x] = src0[params.offset_src0 + a_index]; + } +} From 4a748b8f15d7e6749145add3f038e7b26c686ed8 Mon Sep 17 00:00:00 2001 From: ddh0 Date: Wed, 11 Mar 2026 18:13:28 -0500 Subject: [PATCH 07/28] common : fix --n-cpu-moe, --cpu-moe for models with fused gate + up (#20416) --- common/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/common.h b/common/common.h index ffaeefd7c9..c5645bba46 100644 --- a/common/common.h +++ b/common/common.h @@ -926,7 +926,7 @@ const char * const LLM_KV_SPLIT_TENSORS_COUNT = "split.tensors.count"; // MoE utils // -const char * const LLM_FFN_EXPS_REGEX = "\\.ffn_(up|down|gate)_(ch|)exps"; +const char * const LLM_FFN_EXPS_REGEX = "\\.ffn_(up|down|gate|gate_up)_(ch|)exps"; inline std::string llm_ffn_exps_block_regex(int idx) { return string_format("blk\\.%d%s", idx, LLM_FFN_EXPS_REGEX); From 1eea6a2968b401c8377bc9d4d49a7a64ffbfb3d0 Mon Sep 17 00:00:00 2001 From: Richard Davison Date: Thu, 12 Mar 2026 00:22:49 +0100 Subject: [PATCH 08/28] graph : add optional scale parameter to build_lora_mm [no ci] (#20427) --- src/llama-graph.cpp | 7 ++++++- src/llama-graph.h | 5 +++-- src/models/bitnet.cpp | 25 +++++-------------------- src/models/llama.cpp | 15 +++------------ src/models/qwen3.cpp | 15 +++------------ src/models/qwen3moe.cpp | 15 +++------------ 6 files changed, 23 insertions(+), 59 deletions(-) diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp index 41e804a8f8..9a215bb77a 100644 --- a/src/llama-graph.cpp +++ b/src/llama-graph.cpp @@ -900,7 +900,8 @@ ggml_tensor * llm_graph_context::build_cvec( ggml_tensor * llm_graph_context::build_lora_mm( ggml_tensor * w, - ggml_tensor * cur) const { + ggml_tensor * cur, + ggml_tensor * w_s) const { ggml_tensor * res = ggml_mul_mat(ctx0, w, cur); for (const auto & lora : *loras) { @@ -921,6 +922,10 @@ ggml_tensor * llm_graph_context::build_lora_mm( res = ggml_add(ctx0, res, ab_cur); } + if (w_s) { + res = ggml_mul(ctx0, res, w_s); + } + return res; } diff --git a/src/llama-graph.h b/src/llama-graph.h index c8817b8f1e..4855685ef7 100644 --- a/src/llama-graph.h +++ b/src/llama-graph.h @@ -764,10 +764,11 @@ struct llm_graph_context { ggml_tensor * cur, int il) const; - // do mat_mul, while optionally apply lora + // do mat_mul, while optionally apply lora and per-tensor scale ggml_tensor * build_lora_mm( ggml_tensor * w, - ggml_tensor * cur) const; + ggml_tensor * cur, + ggml_tensor * w_s = nullptr) const; // do mat_mul_id, while optionally apply lora ggml_tensor * build_lora_mm_id( diff --git a/src/models/bitnet.cpp b/src/models/bitnet.cpp index af2cc34bea..ccf5bc8e82 100644 --- a/src/models/bitnet.cpp +++ b/src/models/bitnet.cpp @@ -29,10 +29,7 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa // self-attention { // compute Q and K and RoPE them - ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); - if (model.layers[il].wq_s) { - Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); - } + ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur, model.layers[il].wq_s); cb(Qcur, "Qcur", il); if (model.layers[il].bq) { Qcur = ggml_add(ctx0, Qcur, model.layers[il].bq); @@ -40,10 +37,7 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa } // B1.K - ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); - if (model.layers[il].wk_s) { - Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); - } + ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur, model.layers[il].wk_s); cb(Kcur, "Kcur", il); if (model.layers[il].bk) { Kcur = ggml_add(ctx0, Kcur, model.layers[il].bk); @@ -51,10 +45,7 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa } // B1.V - ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); - if (model.layers[il].wv_s) { - Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); - } + ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur, model.layers[il].wv_s); cb(Vcur, "Vcur", il); if (model.layers[il].bv) { Vcur = ggml_add(ctx0, Vcur, model.layers[il].bv); @@ -90,10 +81,7 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa LLM_NORM_RMS, il); cb(cur, "attn_sub_norm", il); - cur = build_lora_mm(model.layers[il].wo, cur); - if (model.layers[il].wo_s) { - cur = ggml_mul(ctx0, cur, model.layers[il].wo_s); - } + cur = build_lora_mm(model.layers[il].wo, cur, model.layers[il].wo_s); if (model.layers[il].bo) { cur = ggml_add(ctx0, cur, model.layers[il].bo); } @@ -127,10 +115,7 @@ llm_build_bitnet::llm_build_bitnet(const llama_model & model, const llm_graph_pa LLM_NORM_RMS, il); cb(cur, "ffn_sub_norm", il); - cur = build_lora_mm(model.layers[il].ffn_down, cur); - if (model.layers[il].ffn_down_s) { - cur = ggml_mul(ctx0, cur, model.layers[il].ffn_down_s); - } + cur = build_lora_mm(model.layers[il].ffn_down, cur, model.layers[il].ffn_down_s); cb(cur, "ffn_down", il); cur = ggml_add(ctx0, cur, ffn_inp); diff --git a/src/models/llama.cpp b/src/models/llama.cpp index d2434b63a5..e08ae0c0b0 100644 --- a/src/models/llama.cpp +++ b/src/models/llama.cpp @@ -43,28 +43,19 @@ llm_build_llama::llm_build_llama(const llama_model & model, const llm_gra ggml_tensor * rope_factors = model.get_rope_factors(cparams, il); // compute Q and K and RoPE them - ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); - if (model.layers[il].wq_s) { - Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); - } + ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur, model.layers[il].wq_s); cb(Qcur, "Qcur", il); if (model.layers[il].bq) { Qcur = ggml_add(ctx0, Qcur, model.layers[il].bq); cb(Qcur, "Qcur", il); } - ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); - if (model.layers[il].wk_s) { - Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); - } + ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur, model.layers[il].wk_s); cb(Kcur, "Kcur", il); if (model.layers[il].bk) { Kcur = ggml_add(ctx0, Kcur, model.layers[il].bk); cb(Kcur, "Kcur", il); } - ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); - if (model.layers[il].wv_s) { - Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); - } + ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur, model.layers[il].wv_s); cb(Vcur, "Vcur", il); if (model.layers[il].bv) { Vcur = ggml_add(ctx0, Vcur, model.layers[il].bv); diff --git a/src/models/qwen3.cpp b/src/models/qwen3.cpp index c13cb6c4fd..5208166847 100644 --- a/src/models/qwen3.cpp +++ b/src/models/qwen3.cpp @@ -30,22 +30,13 @@ llm_build_qwen3::llm_build_qwen3(const llama_model & model, const llm_graph_para // self-attention { // compute Q and K and RoPE them - ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); - if (model.layers[il].wq_s) { - Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); - } + ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur, model.layers[il].wq_s); cb(Qcur, "Qcur", il); - ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); - if (model.layers[il].wk_s) { - Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); - } + ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur, model.layers[il].wk_s); cb(Kcur, "Kcur", il); - ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); - if (model.layers[il].wv_s) { - Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); - } + ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur, model.layers[il].wv_s); cb(Vcur, "Vcur", il); Qcur = ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens); diff --git a/src/models/qwen3moe.cpp b/src/models/qwen3moe.cpp index 5e26119278..dba46618ff 100644 --- a/src/models/qwen3moe.cpp +++ b/src/models/qwen3moe.cpp @@ -30,22 +30,13 @@ llm_build_qwen3moe::llm_build_qwen3moe(const llama_model & model, const llm_grap // self_attention { // compute Q and K and RoPE them - ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur); - if (model.layers[il].wq_s) { - Qcur = ggml_mul(ctx0, Qcur, model.layers[il].wq_s); - } + ggml_tensor * Qcur = build_lora_mm(model.layers[il].wq, cur, model.layers[il].wq_s); cb(Qcur, "Qcur", il); - ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur); - if (model.layers[il].wk_s) { - Kcur = ggml_mul(ctx0, Kcur, model.layers[il].wk_s); - } + ggml_tensor * Kcur = build_lora_mm(model.layers[il].wk, cur, model.layers[il].wk_s); cb(Kcur, "Kcur", il); - ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur); - if (model.layers[il].wv_s) { - Vcur = ggml_mul(ctx0, Vcur, model.layers[il].wv_s); - } + ggml_tensor * Vcur = build_lora_mm(model.layers[il].wv, cur, model.layers[il].wv_s); cb(Vcur, "Vcur", il); Qcur = ggml_reshape_3d(ctx0, Qcur, n_embd_head, n_head, n_tokens); From fdb17643d379cd35bf6acf0f57cfaa500f88a145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?DAN=E2=84=A2?= Date: Wed, 11 Mar 2026 19:25:54 -0400 Subject: [PATCH 09/28] model : add support for Phi4ForCausalLMV (#20168) * Add support for Phi4ForCausalLMV. * Fix Phi-4 vision parity (correcting SigLIP2 patch-kernel export layout) and matching HF NaFlex resize behavior in mtmd. * Rename contants + fix tokenizer label * Clean-ups. * Fix GGUF export. * Set tokenizer.ggml.pre explicitly. * Default vocab name rather than forcing it. * Clean-ups. * Fix indent. * Fix subscriptable error. * remov overcomplicated code path * Clean-ups. --------- Co-authored-by: Xuan Son Nguyen --- convert_hf_to_gguf.py | 125 ++++++++++++++++++++++++++++++++++- gguf-py/gguf/constants.py | 1 + tools/mtmd/clip-impl.h | 2 + tools/mtmd/clip.cpp | 19 ++++++ tools/mtmd/models/siglip.cpp | 10 ++- tools/mtmd/mtmd.cpp | 3 + 6 files changed, 158 insertions(+), 2 deletions(-) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 5657ae8744..6e3d3ad1dc 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -5062,7 +5062,7 @@ class Phi2Model(TextModel): self.gguf_writer.add_add_bos_token(False) -@ModelBase.register("Phi3ForCausalLM") +@ModelBase.register("Phi3ForCausalLM", "Phi4ForCausalLMV") class Phi3MiniModel(TextModel): model_arch = gguf.MODEL_ARCH.PHI3 @@ -5237,6 +5237,129 @@ class Phi3MiniModel(TextModel): yield (self.format_tensor_name(gguf.MODEL_TENSOR.ROPE_FACTORS_LONG), torch.tensor(long_factors, dtype=torch.float32)) yield (self.format_tensor_name(gguf.MODEL_TENSOR.ROPE_FACTORS_SHORT), torch.tensor(short_factors, dtype=torch.float32)) + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + if name.startswith(("model.vision_tower.", "vision_tower.", "model.mm_projector.", "mm_projector.")): + return + + yield from super().modify_tensors(data_torch, name, bid) + + +@ModelBase.register("Phi4ForCausalLMV") +class Phi4VisionMmprojModel(MmprojModel): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + assert self.hparams_vision is not None + + self.vision_total_layers = int(self.find_vparam(self.n_block_keys)) + if self.vision_total_layers < 2: + raise ValueError( + f"Phi-4 vision mmproj conversion requires at least 2 vision layers, got {self.vision_total_layers}" + ) + + # Phi-4 uses SigLIP2 hidden_states[-2], so export one fewer encoder block and + # drop post-layernorm/head weights. This makes the GGUF runtime output match + # the feature map consumed by the patched siglip.cpp Phi-4 projector path. + self.vision_export_layers = self.vision_total_layers - 1 + self.vision_last_layer_idx = self.vision_total_layers - 1 + + for key in self.n_block_keys: + if key in self.hparams_vision: + self.hparams_vision[key] = self.vision_export_layers + break + + self.block_count = self.vision_export_layers + self.tensor_map = gguf.get_tensor_name_map(gguf.MODEL_ARCH.MMPROJ, self.block_count) + + patch_size = self.preprocessor_config.get("patch_size") + if patch_size is None: + raise KeyError("Phi-4 vision mmproj conversion requires patch_size in preprocessor_config.json") + + self.hparams_vision["patch_size"] = patch_size + + pos_emb_name = next( + ( + name for name in self.model_tensors + if name.endswith("vision_model.embeddings.position_embedding.weight") + ), + None, + ) + if pos_emb_name is None: + raise KeyError("Phi-4 vision mmproj conversion could not find position_embedding.weight") + + pos_emb_shape = self.model_tensors[pos_emb_name]().shape + base_grid_tokens = int(pos_emb_shape[0]) + grid_side = math.isqrt(base_grid_tokens) + if grid_side * grid_side != base_grid_tokens: + raise ValueError(f"Unexpected Phi-4 position embedding shape: {tuple(pos_emb_shape)}") + + self.hparams_vision["image_size"] = grid_side * patch_size + + min_num_patches = self.preprocessor_config.get("min_num_patches", self.global_config.get("min_num_patches")) + max_num_patches = self.preprocessor_config.get("max_num_patches", self.global_config.get("max_num_patches")) + if min_num_patches is None or max_num_patches is None: + raise KeyError("Phi-4 vision mmproj conversion requires min_num_patches and max_num_patches") + + self.min_pixels = int(min_num_patches) * patch_size * patch_size + self.max_pixels = int(max_num_patches) * patch_size * patch_size + + def set_gguf_parameters(self): + super().set_gguf_parameters() + assert self.hparams_vision is not None + + self.gguf_writer.add_clip_projector_type(gguf.VisionProjectorType.PHI4) + self.gguf_writer.add_vision_min_pixels(self.min_pixels) + self.gguf_writer.add_vision_max_pixels(self.max_pixels) + self.gguf_writer.add_vision_use_gelu(True) + self.gguf_writer.add_vision_attention_layernorm_eps(self.hparams_vision.get("layer_norm_eps", 1e-6)) + + def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + if name.startswith(("model.vision_tower.vision_tower.", "vision_tower.")): + if ".vision_model.head." in name: + return + + new_name = name.replace("model.vision_tower.vision_tower.", "vision_tower.") + + if ".vision_model.post_layernorm." in new_name: + return + + if bid is not None and bid == self.vision_last_layer_idx: + return + + if new_name.endswith("vision_model.embeddings.patch_embedding.weight"): + assert self.hparams_vision is not None + if data_torch.ndim != 2: + raise ValueError(f"Unexpected Phi-4 patch embedding shape: {tuple(data_torch.shape)}") + + patch_area = self.hparams_vision["patch_size"] ** 2 + in_features = data_torch.shape[1] + if in_features % patch_area != 0: + raise ValueError( + f"Phi-4 patch embedding input dim {in_features} is not divisible by patch area {patch_area}" + ) + + num_channels = in_features // patch_area + patch_size = self.hparams_vision["patch_size"] + data_torch = data_torch.view(data_torch.shape[0], patch_size, patch_size, num_channels) + data_torch = data_torch.permute(0, 3, 1, 2) + + yield from super().modify_tensors(data_torch, new_name, bid) + return + + if name.startswith(("model.mm_projector.", "mm_projector.")): + local_name = name + local_name = local_name.replace("model.mm_projector.", "") + local_name = local_name.replace("mm_projector.", "") + + if not (local_name.startswith("0.") or local_name.startswith("2.")): + return + + suffix = ".bias" if local_name.endswith(".bias") else ".weight" + mm_idx = int(local_name.split(".", maxsplit=1)[0]) + yield (self.format_tensor_name(gguf.MODEL_TENSOR.V_MMPROJ, mm_idx, suffix=suffix), data_torch) + return + + return + @ModelBase.register("PhiMoEForCausalLM") class PhiMoeModel(Phi3MiniModel): diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 6376ad0600..bf617382d0 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -3881,6 +3881,7 @@ class VisionProjectorType: GEMMA3 = "gemma3" GEMMA3NV = "gemma3nv" GEMMA3NA = "gemma3na" + PHI4 = "phi4" IDEFICS3 = "idefics3" PIXTRAL = "pixtral" LLAMA4 = "llama4" diff --git a/tools/mtmd/clip-impl.h b/tools/mtmd/clip-impl.h index 0c3cf8670a..06e1ffb7ca 100644 --- a/tools/mtmd/clip-impl.h +++ b/tools/mtmd/clip-impl.h @@ -216,6 +216,7 @@ enum projector_type { PROJECTOR_TYPE_GEMMA3, PROJECTOR_TYPE_GEMMA3NV, PROJECTOR_TYPE_GEMMA3NA, + PROJECTOR_TYPE_PHI4, PROJECTOR_TYPE_IDEFICS3, PROJECTOR_TYPE_PIXTRAL, PROJECTOR_TYPE_QWEN25VL, @@ -253,6 +254,7 @@ static std::map PROJECTOR_TYPE_NAMES = { { PROJECTOR_TYPE_GEMMA3, "gemma3"}, { PROJECTOR_TYPE_GEMMA3NV, "gemma3nv"}, { PROJECTOR_TYPE_GEMMA3NA, "gemma3na"}, + { PROJECTOR_TYPE_PHI4, "phi4"}, { PROJECTOR_TYPE_IDEFICS3, "idefics3"}, { PROJECTOR_TYPE_PIXTRAL, "pixtral"}, { PROJECTOR_TYPE_ULTRAVOX, "ultravox"}, diff --git a/tools/mtmd/clip.cpp b/tools/mtmd/clip.cpp index b70bad33b6..b6b31ae866 100644 --- a/tools/mtmd/clip.cpp +++ b/tools/mtmd/clip.cpp @@ -792,6 +792,7 @@ static ggml_cgraph * clip_image_build_graph(clip_ctx * ctx, const clip_image_f32 case PROJECTOR_TYPE_IDEFICS3: case PROJECTOR_TYPE_LFM2: case PROJECTOR_TYPE_JANUS_PRO: + case PROJECTOR_TYPE_PHI4: { builder = std::make_unique(ctx, img); } break; @@ -1144,6 +1145,13 @@ struct clip_model_loader { // ref: https://huggingface.co/LiquidAI/LFM2.5-VL-1.6B/blob/main/processor_config.json hparams.set_limit_image_tokens(64, 256); } break; + case PROJECTOR_TYPE_PHI4: + { + hparams.n_merge = 1; + get_u32(KEY_IMAGE_MIN_PIXELS, hparams.image_min_pixels); + get_u32(KEY_IMAGE_MAX_PIXELS, hparams.image_max_pixels); + hparams.set_warmup_n_tokens(16*16); + } break; case PROJECTOR_TYPE_PIXTRAL: case PROJECTOR_TYPE_LIGHTONOCR: { @@ -1841,6 +1849,13 @@ struct clip_model_loader { model.mm_1_w = get_tensor(string_format(TN_LLAVA_PROJ, 1, "weight")); model.mm_1_b = get_tensor(string_format(TN_LLAVA_PROJ, 1, "bias")); } break; + case PROJECTOR_TYPE_PHI4: + { + model.mm_0_w = get_tensor(string_format(TN_LLAVA_PROJ, 0, "weight")); + model.mm_0_b = get_tensor(string_format(TN_LLAVA_PROJ, 0, "bias")); + model.mm_2_w = get_tensor(string_format(TN_LLAVA_PROJ, 2, "weight")); + model.mm_2_b = get_tensor(string_format(TN_LLAVA_PROJ, 2, "bias")); + } break; case PROJECTOR_TYPE_LFM2A: { for (int i : {0, 2, 3, 5, 6}) { @@ -3157,6 +3172,7 @@ bool clip_image_preprocess(struct clip_ctx * ctx, const clip_image_u8 * img, str res_imgs->entries.push_back(std::move(img_f32)); } break; + case PROJECTOR_TYPE_PHI4: case PROJECTOR_TYPE_PIXTRAL: case PROJECTOR_TYPE_LIGHTONOCR: { @@ -3383,6 +3399,7 @@ int clip_n_output_tokens(const struct clip_ctx * ctx, struct clip_image_f32 * im case PROJECTOR_TYPE_MLP: case PROJECTOR_TYPE_MLP_NORM: case PROJECTOR_TYPE_JANUS_PRO: + case PROJECTOR_TYPE_PHI4: { // do nothing } break; @@ -3884,6 +3901,7 @@ bool clip_image_batch_encode(clip_ctx * ctx, const int n_threads, const clip_ima case PROJECTOR_TYPE_VOXTRAL: case PROJECTOR_TYPE_MUSIC_FLAMINGO: case PROJECTOR_TYPE_JANUS_PRO: + case PROJECTOR_TYPE_PHI4: case PROJECTOR_TYPE_COGVLM: { // do nothing @@ -4013,6 +4031,7 @@ int clip_n_mmproj_embd(const struct clip_ctx * ctx) { case PROJECTOR_TYPE_LDPV2: return ctx->model.mm_model_peg_0_b->ne[0]; case PROJECTOR_TYPE_MLP: + case PROJECTOR_TYPE_PHI4: case PROJECTOR_TYPE_PIXTRAL: case PROJECTOR_TYPE_LIGHTONOCR: return ctx->model.mm_2_w->ne[1]; diff --git a/tools/mtmd/models/siglip.cpp b/tools/mtmd/models/siglip.cpp index b866a11c5a..75f9b4db44 100644 --- a/tools/mtmd/models/siglip.cpp +++ b/tools/mtmd/models/siglip.cpp @@ -4,7 +4,7 @@ ggml_cgraph * clip_graph_siglip::build() { ggml_tensor * inp = build_inp(); ggml_tensor * learned_pos_embd = model.position_embeddings; - if (proj_type == PROJECTOR_TYPE_LFM2) { + if (proj_type == PROJECTOR_TYPE_LFM2 || proj_type == PROJECTOR_TYPE_PHI4) { learned_pos_embd = resize_position_embeddings(); } @@ -75,6 +75,14 @@ ggml_cgraph * clip_graph_siglip::build() { hparams.ffn_op, -1); + } else if (proj_type == PROJECTOR_TYPE_PHI4) { + cur = build_ffn(cur, + model.mm_0_w, model.mm_0_b, + nullptr, nullptr, + model.mm_2_w, model.mm_2_b, + FFN_GELU, + -1); + } else { GGML_ABORT("SigLIP: Unsupported projector type"); } diff --git a/tools/mtmd/mtmd.cpp b/tools/mtmd/mtmd.cpp index 8ca979c86c..ccafb80b2b 100644 --- a/tools/mtmd/mtmd.cpp +++ b/tools/mtmd/mtmd.cpp @@ -290,6 +290,9 @@ struct mtmd_context { img_beg = "<|vision_start|>"; img_end = "<|vision_end|>"; + } else if (proj == PROJECTOR_TYPE_PHI4) { + // Phi-4 uses media marker insertion only. Keep image boundary text empty. + } else if (proj == PROJECTOR_TYPE_LLAMA4) { // (more details in mtmd_context constructor) img_beg = "<|image_start|>"; From a8304b4d279cadc240802388d1532bea650de4c8 Mon Sep 17 00:00:00 2001 From: Mishusha <55416420+Mishusha@users.noreply.github.com> Date: Thu, 12 Mar 2026 03:22:25 +0300 Subject: [PATCH 10/28] common/parser: add GigaChatV3/3.1 models support (#19931) Co-authored-by: Mishusha --- common/chat.cpp | 80 +++++ models/templates/GigaChat3-10B-A1.8B.jinja | 355 +++++++++++++++++++ models/templates/GigaChat3.1-10B-A1.8B.jinja | 339 ++++++++++++++++++ tests/test-chat.cpp | 36 ++ 4 files changed, 810 insertions(+) create mode 100644 models/templates/GigaChat3-10B-A1.8B.jinja create mode 100644 models/templates/GigaChat3.1-10B-A1.8B.jinja diff --git a/common/chat.cpp b/common/chat.cpp index b799912ae4..cfd5df30a7 100644 --- a/common/chat.cpp +++ b/common/chat.cpp @@ -1354,6 +1354,77 @@ static common_chat_params common_chat_params_init_lfm2(const common_chat_templat return data; } +static common_chat_params common_chat_params_init_gigachat_v3( + const common_chat_template & tmpl, + const autoparser::templates_params & inputs) { + + common_chat_params data; + + data.prompt = common_chat_template_direct_apply(tmpl, inputs); + data.format = COMMON_CHAT_FORMAT_PEG_NATIVE; + data.supports_thinking = false; + data.preserved_tokens = { + "<|message_sep|>\n\n", + "<|role_sep|>\n", + }; + + auto has_tools = inputs.tools.is_array() && !inputs.tools.empty(); + auto include_grammar = has_tools && inputs.tool_choice != COMMON_CHAT_TOOL_CHOICE_NONE; + auto tool_call_start_prefix = "<|message_sep|>\n\nfunction call<|role_sep|>\n"; + + auto parser = build_chat_peg_parser([&](common_chat_peg_builder & p) { + if (has_tools && inputs.tool_choice != COMMON_CHAT_TOOL_CHOICE_NONE) { + // Build a choice of all available tools + auto tool_choice = p.choice(); + for (const auto & tool : inputs.tools) { + const auto & function = tool.at("function"); + std::string name = function.at("name"); + const auto & schema = function.at("parameters"); + + auto tool_name = p.json_member("name", "\"" + p.tool_name(p.literal(name)) + "\""); + auto tool_args = p.json_member("arguments", p.tool_args(p.schema(p.json(), "tool-" + name + "-schema", schema))); + + auto tool_open = p.tool_open(p.literal("{") << tool_name); + + tool_choice |= p.rule("tool-" + name, tool_open << "," << tool_args << "}"); + } + + // Define the tool call structure + auto min_calls = inputs.tool_choice == COMMON_CHAT_TOOL_CHOICE_REQUIRED ? 1 : 0; + auto max_calls = 1; // parallel toolcalls are not supported + auto tool_call = p.rule("tool-call", p.literal(tool_call_start_prefix) + tool_choice); + auto tool_calls = p.trigger_rule("tool-call-root", p.repeat(tool_call, /* min = */ min_calls, /* max = */ max_calls)); + + return p.content(p.until("<|message_sep|>\n\n")) << tool_calls; + } + + // Content only parser + include_grammar = false; + return p.content(p.rest()); + + }); + + data.parser = parser.save(); + + if (include_grammar) { + data.grammar_lazy = has_tools && inputs.tool_choice == COMMON_CHAT_TOOL_CHOICE_AUTO; + + data.grammar = build_grammar([&](const common_grammar_builder & builder) { + foreach_function(inputs.tools, [&](const json & tool) { + const auto & function = tool.at("function"); + auto schema = function.at("parameters"); + builder.resolve_refs(schema); + }); + parser.build_grammar(builder, data.grammar_lazy); + }); + + data.grammar_triggers = { + {COMMON_GRAMMAR_TRIGGER_TYPE_WORD, tool_call_start_prefix} + }; + } + return data; +} + namespace workaround { static void map_developer_role_to_system(json & messages) { @@ -1525,6 +1596,15 @@ static common_chat_params common_chat_templates_apply_jinja(const struct common_ return common_chat_params_init_lfm2(tmpl, params); } + // GigaChatV3 format detection + if (src.find("<|role_sep|>") != std::string::npos && + src.find("<|message_sep|>") != std::string::npos && + src.find("<|function_call|>") == std::string::npos + ) { + LOG_DBG("Using specialized template: GigaChatV3\n"); + return common_chat_params_init_gigachat_v3(tmpl, params); + } + try { LOG_DBG("Using differential autoparser\n"); struct autoparser::autoparser autoparser; diff --git a/models/templates/GigaChat3-10B-A1.8B.jinja b/models/templates/GigaChat3-10B-A1.8B.jinja new file mode 100644 index 0000000000..f9826a4457 --- /dev/null +++ b/models/templates/GigaChat3-10B-A1.8B.jinja @@ -0,0 +1,355 @@ +{#--------TOOL RENDERING FUNCTIONS---------#} + +{#--------------------------------------------------------------- + Converts JSON Schema (dict) to a TypeScript type definition +----------------------------------------------------------------#} +{%- macro json_schema_to_typescript(schema, indent="") -%} + {%- set ADDITIONAL_JSON_KEYS = ['format', 'maxItems', 'maximum', 'minItems', 'minimum', 'pattern'] -%} + {%- set ty = schema.get("type") -%} + + {# ---------------- OBJECT ---------------- #} + {%- if ty == "object" -%} + {{- "{\n" -}} + + {# Start building property list #} + {%- set props = schema.get("properties", {}) -%} + {%- set required = schema.get("required", []) -%} + {%- set has_additional_props = schema.get("additionalProperties") is defined -%} + {%- set additional_props_type = none -%} + {%- if has_additional_props -%} + {%- if schema.additionalProperties == true -%} + {%- set additional_props_type = {'type': 'any'} -%} + {%- elif schema.additionalProperties is mapping -%} + {%- set additional_props_type = schema.additionalProperties -%} + {%- endif -%} + {%- endif -%} + + {%- for key, val in props.items() -%} + {# ---------- Description Comments ---------- #} + {%- if "description" in val -%} + {%- for line in val['description'].split('\n') -%} + {%- if line.strip() -%} + {{- indent + '// ' + line + '\n' -}} + {%- endif -%} + {%- endfor -%} + {%- endif -%} + + {# ---------- Additional JSON Keys ---------- #} + {%- for add_key, add_val in val.items() -%} + {%- if add_key in ADDITIONAL_JSON_KEYS -%} + {%- if add_val is string -%} + {{- indent + '// ' + add_key + ': "' + add_val + '"' + '\n' -}} + {%- else -%} + {{- indent + '// ' + add_key + ': ' ~ add_val ~ '\n' -}} + {%- endif -%} + {%- endif -%} + {%- endfor -%} + + {# ---------- Property Definition ---------- #} + {%- set type_str = json_schema_to_typescript( + val, + indent + " " + ) -%} + + {{- indent + key + ('' if key in required else '?') + ': ' + type_str + ',' -}} + + {%- if "default" in val or "defalut_value" in val -%} + {%- set default = val.get("default", val.get("defalut_value")) -%} + {%- if default is string -%} + {{- ' // default: "' + default + '"' -}} + {%- else -%} + {{- ' // default: ' ~ default -}} + {%- endif -%} + {%- endif -%} + + {{- "\n" -}} + {%- endfor -%} + + {# Handle additionalProperties as index signature #} + {%- if has_additional_props and additional_props_type is not none -%} + {%- set additional_type_str = json_schema_to_typescript( + additional_props_type, + indent + " " + ) -%} + {{- indent + '[key: string]: ' + additional_type_str + '\n' -}} + {%- endif -%} + + {{- indent[: (indent|length - " "|length) ] + '}' -}} + + {# ---------------- STRING ---------------- #} + {%- elif ty == "string" -%} + {%- if schema.get("enum") -%} + {%- set ns = namespace(enum = []) -%} + {%- for en in schema['enum'] -%} + {%- set ns.enum = ns.enum + ['"' ~ en ~ '"'] -%} + {%- endfor -%} + {{- ns.enum | join(' | ') -}} + {%- elif schema.get("format", "none") in ['date-time', 'date'] -%} + {{- 'Date' -}} + {%- else -%} + {{- 'string' -}} + {%- endif -%} + + {# ---------------- NUMBER / INTEGER ---------------- #} + {%- elif ty in ["number", "integer"] -%} + {%- if schema.get("enum") -%} + {{- schema.enum | join(' | ') -}} + {%- else -%} + {{- 'number' -}} + {%- endif -%} + + {# ---------------- BOOLEAN ---------------- #} + {%- elif ty == "boolean" -%} + {{- 'boolean' -}} + + {# ---------------- ARRAY ---------------- #} + {%- elif ty == "array" -%} + {%- if "items" in schema -%} + {{- json_schema_to_typescript(schema['items'], indent) + '[]' -}} + {%- else -%} + {{- 'Array' -}} + {%- endif -%} + + {# ---------------- FALLBACK ---------------- #} + {%- else -%} + {{- 'any' -}} + {%- endif -%} +{%- endmacro -%} + +{#--------------------------------------------------------------- + Renders a namespace and its tool definitions in TypeScript style +----------------------------------------------------------------#} + +{%- macro render_tool_namespace(namespace_name, tools) -%} + {%- set ns = namespace(sections = ['namespace ' ~ namespace_name ~ ' {']) -%} + + {%- for tool in tools -%} + {%- if tool.function -%} + {%- set tool = tool.function -%} + {%- endif -%} + + {%- set ns_tool = namespace(content_lines=[]) -%} + + {# ---------- TOOL DESCRIPTION ---------- #} + {%- if tool.get('description') -%} + {%- for line in tool['description'].split('\n') -%} + {%- if line.strip() -%} + {%- set ns_tool.content_lines = ns_tool.content_lines + ['// ' ~ line] -%} + {%- endif -%} + {%- endfor -%} + {%- endif -%} + + {# ---------- TOOL SIGNATURE ---------- #} + {%- set main_body = "" -%} + {%- set params = tool.get("parameters") -%} + {%- if params and params.get("properties") -%} + {%- set param_type = json_schema_to_typescript(params, " ") -%} + {%- set main_body = 'type ' ~ tool.name ~ ' = (_: ' ~ param_type ~ ') => ' -%} + {%- else -%} + {%- set main_body = 'type ' ~ tool.name ~ ' = () => ' -%} + {%- endif -%} + + {# ---------- RETURN TYPE ---------- #} + {%- set return_params = tool.get("return_parameters") -%} + {%- if return_params and return_params.get("properties") -%} + {%- set return_type = json_schema_to_typescript(return_params, " ") -%} + {%- set main_body = main_body ~ return_type -%} + {%- else -%} + {%- set main_body = main_body ~ 'any' -%} + {%- endif -%} + + {%- set main_body = main_body ~ ';\n' -%} + + {%- set ns_tool.content_lines = ns_tool.content_lines + [main_body] -%} + + {# ---------- ADD TOOL TO SECTIONS ---------- #} + {%- set ns.sections = ns.sections + [ns_tool.content_lines | join('\n')] -%} + {%- endfor -%} + + {%- set ns.sections = ns.sections + ['} // namespace ' ~ namespace_name] -%} + + {{- ns.sections | join('\n') -}} +{%- endmacro -%} + + +{# ----------- MESSAGE RENDERING HELPER FUNCTIONS ------------ #} + +{%- macro render_role_message(message, role=None) -%} + {%- if not role -%} + {%- set role = message["role"] -%} + {%- endif -%} + + {%- set message_content = message['content'] or '' -%} + {%- if message_content is not string -%} + {%- set message_content = message_content | tojson(ensure_ascii=False) -%} + {%- endif -%} + + {{- role + add_tokens.role_sep + message_content + add_tokens.message_sep -}} + +{%- endmacro -%} + + +{%- macro render_function_call(message) -%} + {%- set call = message['content'] -%} + {%- if call.function -%} + {%- set call = call.function -%} + {%- endif -%} + + {%- set arguments = call['arguments'] -%} + {%- if arguments is not string -%} + {%- set arguments = arguments| tojson(ensure_ascii=False) -%} + {%- endif -%} + + {{- render_role_message( + { + 'role': 'function call', + 'content': '{"name": "' ~ call['name'] ~ '", "arguments": ' ~ arguments ~ '}' + } + ) -}} +{%- endmacro -%} + +{# ----- SPECIAL TOKENS ----- #} + +{%- set add_tokens = namespace( + role_sep="<|role_sep|>\n", + message_sep="<|message_sep|>\n\n" +) -%} + +{# ----- DEFAULT DEVSYSTEM ----- #} + +{%- set DEVSYSTEM -%} + +Description of the roles available in the dialog. + +`developer system` +A message added by Sber before the main dialog. It has the highest priority and sets global, non-overridable conditions (for example, conversation rules, the safety policy, the assistant's overall response style, etc.). + +`system` +A system instruction added by developers or by the user, but with a lower priority than `developer system`. It usually describes the assistant's instructions, a specific response style, and other conditions for this particular dialog. + +`user` +A message or request from the user. The assistant follows it if it does not conflict with higher-priority instructions (see ). + +`user memory` +A sequence of the most up-to-date long-term facts about the user at the time of their request, presented as a JSON list of strings. Facts are listed in chronological order, meaning newer facts are appended to the end of the sequence. When facts are changed or deleted, records of previous facts remain in the sequence. The assistant saves facts using a function and uses them in accordance with the block below. + +`added files` +Metadata about files available for use in the dialog, presented in JSON format. It contains the following keys: id (a unique file identifier), name (file name), type (file type). + +`assistant` +The assistant's reply to the user's request. If the system instruction or the user does not set additional rules for `assistant`, this reply must comply with the instructions in the block below. The list of functions available to call is contained in `function descriptions`. The name of the required function and its arguments will be generated next by the `function call` role. In its replies, the assistant follows the instructions in accordance with . + +`function descriptions` +Function descriptions in TypeScript format. A function is a special tool (or a set of instructions) that the assistant can call to perform specific actions, computations, or obtain data needed to solve the user's task. Each function description contains blocks with the name, description, and arguments. Sometimes the description contains separate blocks with return parameters and usage examples that illustrate the correct call and arguments. + +`function call` +The function that `assistant` calls based on the dialog context, and its arguments. The function is invoked in strict accordance with the instructions in the block. + +`function result` +The result of the last function call. + + + +The assistant can work with the following modalities: text, available functions. + + + +If instructions from different roles conflict within the dialog context, observe the following priorities: +`developer system` > `system` > `user` > `function descriptions` > `function result` > `user memory` + + + +Basic instructions for working with functions. + +Only call those functions that are described in `function descriptions`. + +Call available functions when, according to their description, such a call will help provide a more complete and/or accurate answer to the user's request. Fill in function arguments using information from the dialog context. If a function could help answer the request but a required argument is missing from the context, ask the user for the missing data before calling the function. If a necessary function is unavailable or an error occurs, briefly inform the user and, if possible, suggest an alternative. + + + +Rules for using facts in long-term memory: + +If there is no message under the `user memory` role in the dialog, this is equivalent to the absence of long-term facts about the user in memory. In that case, information about the user is limited to the current dialog, and no new facts should be saved. + + + +You are a helpful assistant. + +# Instructions +- Strictly follow the instruction priority. +- Maintain a logical chain of reasoning when answering the user's question. +- For complex questions (for example, STEM), try to answer in detail unless the system message or dialog context limits the response length. +- Be helpful, truthful, and avoid unsafe or prohibited content in your responses. +- Try to reply in the language in which the user asked their question. + + +A dialog will follow below. +The dialog may include various roles described in the block. +Each turn begins with the role name and a special token that marks the end of the role's full name, and ends with a special end-of-turn token. +Your task is to continue the dialog from the last specified role in accordance with the dialog context. +{%- endset -%} + + +{#- ---------------------- RENDERING STARTS HERE ---------------------- -#} + + +{# ----- RENDER BOS TOKEN ----- #} +{{- bos_token -}} + + +{# ----- RENDER DEVSYSTEM ----- #} +{{- render_role_message({"role": "developer system", "content": DEVSYSTEM}) -}} + +{# ----- RENDER SYSTEM IF PRESENT ----- #} +{%- if messages and messages[0]['role'] == 'system' -%} + {{- render_role_message(messages[0]) -}} + {%- set messages = messages[1:] -%} +{%- endif -%} + +{# ----- RENDER TOOLS ----- #} +{%- if tools -%} + {%- set tools_content = ( + render_tool_namespace('functions', tools) + + "\n\n" + ) -%} + {{- render_role_message({'role': 'function descriptions', 'content': tools_content}) -}} +{%- endif -%} + +{# ----- MAIN MESSAGE LOOP ----- #} +{%- for message in messages -%} + + {# ----- TOOL MESSAGE -------#} + {%- if message['role'] == 'tool' -%} + {{- render_role_message(message, 'function result') -}} + + + {# ----- ASSISTANT MESSAGE ----- #} + {%- elif message['role'] == 'assistant' -%} + + {# ----- FUNCTION CALL PART CHECKING: SINGLE CALL SETUP ----- #} + {%- if message.tool_calls is defined and message.tool_calls -%} + {%- set function_call = message.tool_calls[0] -%} + {%- else -%} + {%- set function_call = None -%} + {%- endif -%} + + {# ----- MAIN ASSISTANT RENDERING ----- #} + + {{- render_role_message({'role': 'assistant', 'content': message.content}) -}} + {%- if function_call -%} + {{- render_function_call({'role': 'function call', 'content': function_call}) -}} + {%- endif -%} + + + {# ----- OTHER MESSAGES ----- #} + {%- else -%} + {{- render_role_message(message) -}} + {%- endif -%} + + {# ----- ADDING GENERATION PROMPT ----- #} + + {%- if loop.last and add_generation_prompt and message['role'] != 'assistant' -%} + {{- 'assistant' + add_tokens.role_sep -}} + {%- endif -%} + +{%- endfor -%} \ No newline at end of file diff --git a/models/templates/GigaChat3.1-10B-A1.8B.jinja b/models/templates/GigaChat3.1-10B-A1.8B.jinja new file mode 100644 index 0000000000..0557754acf --- /dev/null +++ b/models/templates/GigaChat3.1-10B-A1.8B.jinja @@ -0,0 +1,339 @@ +{#--------TOOL RENDERING FUNCTIONS---------#} + +{#--------------------------------------------------------------- + Converts JSON Schema (dict) to a TypeScript type definition +----------------------------------------------------------------#} +{%- macro json_schema_to_typescript(schema, indent="") -%} + {%- set ADDITIONAL_JSON_KEYS = ['format', 'maxItems', 'maximum', 'minItems', 'minimum', 'pattern'] -%} + {%- set ty = schema.get("type") -%} + + {# ---------------- OBJECT ---------------- #} + {%- if ty == "object" -%} + {{- "{\n" -}} + + {# Start building property list #} + {%- set props = schema.get("properties", {}) -%} + {%- set required = schema.get("required", []) -%} + {%- set has_additional_props = schema.get("additionalProperties") is defined -%} + {%- set additional_props_type = none -%} + {%- if has_additional_props -%} + {%- if schema.additionalProperties == true -%} + {%- set additional_props_type = {'type': 'any'} -%} + {%- elif schema.additionalProperties is mapping -%} + {%- set additional_props_type = schema.additionalProperties -%} + {%- endif -%} + {%- endif -%} + + {%- for key, val in props.items() -%} + {# ---------- Description Comments ---------- #} + {%- if "description" in val -%} + {%- for line in val['description'].split('\n') -%} + {%- if line.strip() -%} + {{- indent + '// ' + line + '\n' -}} + {%- endif -%} + {%- endfor -%} + {%- endif -%} + + {# ---------- Additional JSON Keys ---------- #} + {%- for add_key, add_val in val.items() -%} + {%- if add_key in ADDITIONAL_JSON_KEYS -%} + {%- if add_val is string -%} + {{- indent + '// ' + add_key + ': "' + add_val + '"' + '\n' -}} + {%- else -%} + {{- indent + '// ' + add_key + ': ' ~ add_val ~ '\n' -}} + {%- endif -%} + {%- endif -%} + {%- endfor -%} + + {# ---------- Property Definition ---------- #} + {%- set type_str = json_schema_to_typescript( + val, + indent + " " + ) -%} + + {{- indent + key + ('' if key in required else '?') + ': ' + type_str + ',' -}} + + {%- if "default" in val or "defalut_value" in val -%} + {%- set default = val.get("default", val.get("defalut_value")) -%} + {%- if default is string -%} + {{- ' // default: "' + default + '"' -}} + {%- else -%} + {{- ' // default: ' ~ default -}} + {%- endif -%} + {%- endif -%} + + {{- "\n" -}} + {%- endfor -%} + + {# Handle additionalProperties as index signature #} + {%- if has_additional_props and additional_props_type is not none -%} + {%- set additional_type_str = json_schema_to_typescript( + additional_props_type, + indent + " " + ) -%} + {{- indent + '[key: string]: ' + additional_type_str + '\n' -}} + {%- endif -%} + + {{- indent[: (indent|length - " "|length) ] + '}' -}} + + {# ---------------- STRING ---------------- #} + {%- elif ty == "string" -%} + {%- if schema.get("enum") -%} + {%- set ns = namespace(enum = []) -%} + {%- for en in schema['enum'] -%} + {%- set ns.enum = ns.enum + ['"' ~ en ~ '"'] -%} + {%- endfor -%} + {{- ns.enum | join(' | ') -}} + {%- elif schema.get("format", "none") in ['date-time', 'date'] -%} + {{- 'Date' -}} + {%- else -%} + {{- 'string' -}} + {%- endif -%} + + {# ---------------- NUMBER / INTEGER ---------------- #} + {%- elif ty in ["number", "integer"] -%} + {%- if schema.get("enum") -%} + {{- schema.enum | join(' | ') -}} + {%- else -%} + {{- 'number' -}} + {%- endif -%} + + {# ---------------- BOOLEAN ---------------- #} + {%- elif ty == "boolean" -%} + {{- 'boolean' -}} + + {# ---------------- ARRAY ---------------- #} + {%- elif ty == "array" -%} + {%- if "items" in schema -%} + {{- json_schema_to_typescript(schema['items'], indent) + '[]' -}} + {%- else -%} + {{- 'Array' -}} + {%- endif -%} + + {# ---------------- FALLBACK ---------------- #} + {%- else -%} + {{- 'any' -}} + {%- endif -%} +{%- endmacro -%} + +{#--------------------------------------------------------------- + Renders a namespace and its tool definitions in TypeScript style +----------------------------------------------------------------#} + +{%- macro render_tool_namespace(namespace_name, tools) -%} + {%- set ns = namespace(sections = ['namespace ' ~ namespace_name ~ ' {']) -%} + + {%- for tool in tools -%} + {%- if tool.function -%} + {%- set tool = tool.function -%} + {%- endif -%} + + {%- set ns_tool = namespace(content_lines=[]) -%} + + {# ---------- TOOL DESCRIPTION ---------- #} + {%- if tool.get('description') -%} + {%- for line in tool['description'].split('\n') -%} + {%- if line.strip() -%} + {%- set ns_tool.content_lines = ns_tool.content_lines + ['// ' ~ line] -%} + {%- endif -%} + {%- endfor -%} + {%- endif -%} + + {# ---------- TOOL SIGNATURE ---------- #} + {%- set main_body = "" -%} + {%- set params = tool.get("parameters") -%} + {%- if params and params.get("properties") -%} + {%- set param_type = json_schema_to_typescript(params, " ") -%} + {%- set main_body = 'type ' ~ tool.name ~ ' = (_: ' ~ param_type ~ ') => ' -%} + {%- else -%} + {%- set main_body = 'type ' ~ tool.name ~ ' = () => ' -%} + {%- endif -%} + + {# ---------- RETURN TYPE ---------- #} + {%- set return_params = tool.get("return_parameters") -%} + {%- if return_params and return_params.get("properties") -%} + {%- set return_type = json_schema_to_typescript(return_params, " ") -%} + {%- set main_body = main_body ~ return_type -%} + {%- else -%} + {%- set main_body = main_body ~ 'any' -%} + {%- endif -%} + + {%- set main_body = main_body ~ ';\n' -%} + + {%- set ns_tool.content_lines = ns_tool.content_lines + [main_body] -%} + + {# ---------- ADD TOOL TO SECTIONS ---------- #} + {%- set ns.sections = ns.sections + [ns_tool.content_lines | join('\n')] -%} + {%- endfor -%} + + {%- set ns.sections = ns.sections + ['} // namespace ' ~ namespace_name] -%} + + {{- ns.sections | join('\n') -}} +{%- endmacro -%} + + +{# ----------- MESSAGE RENDERING HELPER FUNCTIONS ------------ #} + +{%- macro render_function_call(call) -%} + {%- if call.function -%} + {%- set call = call.function -%} + {%- endif -%} + + {%- set arguments = call['arguments'] -%} + {%- if arguments is not string -%} + {%- set arguments = arguments| tojson(ensure_ascii=False) -%} + {%- endif -%} + + {{- '{"name": "' ~ call['name'] ~ '", "arguments": ' ~ arguments ~ '}' -}} +{%- endmacro -%} + + +{%- macro render_role_message(message, role=None) -%} + {%- if not role -%} + {%- set role = message["role"] -%} + {%- endif -%} + + {%- set message_content = message['content'] or '' -%} + {%- if message_content is not string -%} + {%- set message_content = message_content | tojson(ensure_ascii=False) -%} + {%- endif -%} + + {{- role + add_tokens.role_sep + message_content -}} + + {%- if message.tool_calls is defined and message.tool_calls -%} + {{- add_tokens.function_call + render_function_call(message.tool_calls[0]) -}} + {%- endif -%} + + {{- add_tokens.message_sep -}} + +{%- endmacro -%} + + + +{# ----- SPECIAL TOKENS ----- #} + +{%- set add_tokens = namespace( + role_sep="<|role_sep|>\n", + message_sep="<|message_sep|>\n\n", + function_call="<|function_call|>" +) -%} + +{# ----- DEFAULT DEVSYSTEM ----- #} + +{%- set DEVSYSTEM -%} + +Description of the roles available in the dialog. + +`developer system` +A message added by Sber before the main dialog. It has the highest priority and sets global, non-overridable conditions (for example, conversation rules, the safety policy, the assistant's overall response style, etc.). + +`system` +A system instruction added by developers or by the user, but with a lower priority than `developer system`. It usually describes the assistant's instructions, a specific response style, and other conditions for this particular dialog. + +`user` +A message or request from the user. The assistant follows it if it does not conflict with higher-priority instructions (see ). + +`user memory` +A sequence of the most up-to-date long-term facts about the user at the time of their request, presented as a JSON list of strings. Facts are listed in chronological order, meaning newer facts are appended to the end of the sequence. When facts are changed or deleted, records of previous facts remain in the sequence. The assistant saves facts using a function and uses them in accordance with the block below. + +`added files` +Metadata about files available for use in the dialog, presented in JSON format. It contains the following keys: id (a unique file identifier), name (file name), type (file type). + +`assistant` +The assistant's reply to the user's request. If the system instruction or the user does not set additional rules for `assistant`, this reply must comply with the instructions in the block below. The list of functions available to call is contained in `function descriptions`. The name of the required function and its arguments will be generated next by the `function call` role. In its replies, the assistant follows the instructions in accordance with . + +`function descriptions` +Function descriptions in TypeScript format. A function is a special tool (or a set of instructions) that the assistant can call to perform specific actions, computations, or obtain data needed to solve the user's task. Each function description contains blocks with the name, description, and arguments. Sometimes the description contains separate blocks with return parameters and usage examples that illustrate the correct call and arguments. + +`function call` +The function that `assistant` calls based on the dialog context, and its arguments. The function is invoked in strict accordance with the instructions in the block. + +`function result` +The result of the last function call. + + + +The assistant can work with the following modalities: text, available functions. + + + +If instructions from different roles conflict within the dialog context, observe the following priorities: +`developer system` > `system` > `user` > `function descriptions` > `function result` > `user memory` + + + +Basic instructions for working with functions. + +Only call those functions that are described in `function descriptions`. + +Call available functions when, according to their description, such a call will help provide a more complete and/or accurate answer to the user's request. Fill in function arguments using information from the dialog context. If a function could help answer the request but a required argument is missing from the context, ask the user for the missing data before calling the function. If a necessary function is unavailable or an error occurs, briefly inform the user and, if possible, suggest an alternative. + + + +Rules for using facts in long-term memory: + +If there is no message under the `user memory` role in the dialog, this is equivalent to the absence of long-term facts about the user in memory. In that case, information about the user is limited to the current dialog, and no new facts should be saved. + + + +You are a helpful assistant. + +# Instructions +- Strictly follow the instruction priority. +- Maintain a logical chain of reasoning when answering the user's question. +- For complex questions (for example, STEM), try to answer in detail unless the system message or dialog context limits the response length. +- Be helpful, truthful, and avoid unsafe or prohibited content in your responses. +- Try to reply in the language in which the user asked their question. + + +A dialog will follow below. +The dialog may include various roles described in the block. +Each turn begins with the role name and a special token that marks the end of the role's full name, and ends with a special end-of-turn token. +Your task is to continue the dialog from the last specified role in accordance with the dialog context. +{%- endset -%} + + +{#- ---------------------- RENDERING STARTS HERE ---------------------- -#} + + +{# ----- RENDER BOS TOKEN ----- #} +{{- bos_token -}} + + +{# ----- RENDER DEVSYSTEM ----- #} +{{- render_role_message({"role": "developer system", "content": DEVSYSTEM}) -}} + +{# ----- RENDER SYSTEM IF PRESENT ----- #} +{%- if messages and messages[0]['role'] == 'system' -%} + {{- render_role_message(messages[0]) -}} + {%- set messages = messages[1:] -%} +{%- endif -%} + +{# ----- RENDER TOOLS ----- #} +{%- if tools -%} + {%- set tools_content = ( + render_tool_namespace('functions', tools) + + "\n\n" + ) -%} + {{- render_role_message({'role': 'function descriptions', 'content': tools_content}) -}} +{%- endif -%} + +{# ----- MAIN MESSAGE LOOP ----- #} +{%- for message in messages -%} + + {# ----- TOOL MESSAGE -------#} + {%- if message['role'] == 'tool' -%} + {{- render_role_message(message, 'function result') -}} + + {# ----- OTHER MESSAGES ----- #} + {%- else -%} + {{- render_role_message(message) -}} + {%- endif -%} + + {# ----- ADDING GENERATION PROMPT ----- #} + + {%- if loop.last and add_generation_prompt and message['role'] != 'assistant' -%} + {{- 'assistant' + add_tokens.role_sep -}} + {%- endif -%} + +{%- endfor -%} \ No newline at end of file diff --git a/tests/test-chat.cpp b/tests/test-chat.cpp index b46a34e939..3a6297e148 100644 --- a/tests/test-chat.cpp +++ b/tests/test-chat.cpp @@ -2765,6 +2765,42 @@ static void test_template_output_peg_parsers(bool detailed_debug) { .run(); } + + // GigaChat V3 + { + auto tst = peg_tester("models/templates/GigaChat3-10B-A1.8B.jinja", detailed_debug); + tst.test("Hello, world!\nWhat's up?").expect(message_assist).run(); + tst.test("<|message_sep|>\n\nfunction call<|role_sep|>\n{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}") + .tools({ special_function_tool }) + .expect(message_assist_call) + .run(); + + tst.test( + "Hello, world!\nWhat's up?" + "<|message_sep|>\n\nfunction call<|role_sep|>\n{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}" + ) + .tools({ special_function_tool }) + .expect(message_assist_call_content) + .run(); + } + + // GigaChat V3.1 + { + auto tst = peg_tester("models/templates/GigaChat3.1-10B-A1.8B.jinja", detailed_debug); + tst.test("Hello, world!\nWhat's up?").expect(message_assist).run(); + tst.test("<|function_call|>{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}") + .tools({ special_function_tool }) + .expect(message_assist_call) + .run(); + + tst.test( + "Hello, world!\nWhat's up?" + "<|function_call|>{\"name\": \"special_function\", \"arguments\": {\"arg1\": 1}}" + ) + .tools({ special_function_tool }) + .expect(message_assist_call_content) + .run(); + } } // Test the developer role to system workaround with a simple mock template From d63aa398de455cf8243802c5099dc30a2e26edcc Mon Sep 17 00:00:00 2001 From: uvos Date: Thu, 12 Mar 2026 03:37:10 +0100 Subject: [PATCH 11/28] hip: compile debug builds with -O2 on hip to avoid a compiler bug (#20392) --- ggml/src/ggml-hip/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ggml/src/ggml-hip/CMakeLists.txt b/ggml/src/ggml-hip/CMakeLists.txt index 80037d2436..b44ed0f721 100644 --- a/ggml/src/ggml-hip/CMakeLists.txt +++ b/ggml/src/ggml-hip/CMakeLists.txt @@ -11,6 +11,10 @@ endif() list(APPEND CMAKE_PREFIX_PATH ${ROCM_PATH}) list(APPEND CMAKE_PREFIX_PATH "${ROCM_PATH}/lib64/cmake") +if (NOT DEFINED CMAKE_HIP_FLAGS_DEBUG) + set(CMAKE_HIP_FLAGS_DEBUG "-g -O2") +endif() + # CMake on Windows doesn't support the HIP language yet if (WIN32) set(CXX_IS_HIPCC TRUE) From 3d9ab225e71d96458adc2219f0d039bc46dbc8b9 Mon Sep 17 00:00:00 2001 From: shaofeiqi Date: Wed, 11 Mar 2026 22:03:07 -0700 Subject: [PATCH 12/28] opencl: add cumsum op (#18981) * OpenCL: add CUMSUM op support * remove unused argument * opencl: refactor cumsum * opencl: refactor * opencl: refactor tmp buffer * opencl: adjust max number of subgroups * opencl: fix whitespace * opencl: fix global size when cumsum the tmp buffer --------- Co-authored-by: Li He --- ggml/src/ggml-opencl/CMakeLists.txt | 1 + ggml/src/ggml-opencl/ggml-opencl.cpp | 139 +++++++++++++++++++++++++ ggml/src/ggml-opencl/kernels/cumsum.cl | 139 +++++++++++++++++++++++++ 3 files changed, 279 insertions(+) create mode 100644 ggml/src/ggml-opencl/kernels/cumsum.cl diff --git a/ggml/src/ggml-opencl/CMakeLists.txt b/ggml/src/ggml-opencl/CMakeLists.txt index 70802c9c00..1f8250934b 100644 --- a/ggml/src/ggml-opencl/CMakeLists.txt +++ b/ggml/src/ggml-opencl/CMakeLists.txt @@ -132,6 +132,7 @@ set(GGML_OPENCL_KERNELS ssm_conv sub sum_rows + cumsum transpose concat tsembd diff --git a/ggml/src/ggml-opencl/ggml-opencl.cpp b/ggml/src/ggml-opencl/ggml-opencl.cpp index 67e4b9277f..46a95a1999 100644 --- a/ggml/src/ggml-opencl/ggml-opencl.cpp +++ b/ggml/src/ggml-opencl/ggml-opencl.cpp @@ -547,6 +547,7 @@ struct ggml_backend_opencl_context { cl_kernel kernel_im2col_f32, kernel_im2col_f16; cl_kernel kernel_argsort_f32_i32; cl_kernel kernel_sum_rows_f32, kernel_sum_rows_f32_4; + cl_kernel kernel_cumsum_blk, kernel_cumsum_add; cl_kernel kernel_repeat_f32; cl_kernel kernel_pad; cl_kernel kernel_tanh_f32, kernel_tanh_f32_4, kernel_tanh_f32_nc; @@ -1927,6 +1928,24 @@ static void load_cl_kernels(ggml_backend_opencl_context *backend_ctx, ggml_cl_ve GGML_LOG_CONT("."); } + // cumsum + { +#ifdef GGML_OPENCL_EMBED_KERNELS + const std::string kernel_src { + #include "cumsum.cl.h" + }; +#else + const std::string kernel_src = read_file("cumsum.cl"); +#endif + cl_program prog; + prog = build_program_from_source(backend_ctx->context, backend_ctx->device, kernel_src.c_str(), compile_opts); + + CL_CHECK((backend_ctx->kernel_cumsum_blk = clCreateKernel(prog, "kernel_cumsum_blk", &err), err)); + CL_CHECK((backend_ctx->kernel_cumsum_add = clCreateKernel(prog, "kernel_cumsum_add", &err), err)); + GGML_LOG_CONT("."); + CL_CHECK(clReleaseProgram(prog)); + } + // sigmoid { #ifdef GGML_OPENCL_EMBED_KERNELS @@ -3803,6 +3822,8 @@ static bool ggml_opencl_supports_op(ggml_backend_dev_t dev, const struct ggml_te return cols <= max_workgroup_size && op->src[0]->type == GGML_TYPE_F32; } case GGML_OP_SUM_ROWS: + case GGML_OP_CUMSUM: + return op->src[0]->type == GGML_TYPE_F32 && ggml_is_contiguous(op->src[0]); case GGML_OP_MEAN: return op->src[0]->type == GGML_TYPE_F32; case GGML_OP_FLASH_ATTN_EXT: @@ -11949,6 +11970,118 @@ static void ggml_cl_sum_rows(ggml_backend_t backend, const ggml_tensor * src0, c backend_ctx->enqueue_ndrange_kernel(kernel, 3, global_work_size, local_work_size, dst); } +static void ggml_cl_cumsum(ggml_backend_t backend, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { + GGML_ASSERT(src0); + GGML_ASSERT(src0->extra); + GGML_ASSERT(dst); + GGML_ASSERT(dst->extra); + GGML_UNUSED(src1); + + GGML_ASSERT(src0->nb[0] == ggml_type_size(src0->type)); + GGML_ASSERT(ggml_is_contiguous(src0)); + + ggml_backend_opencl_context *backend_ctx = (ggml_backend_opencl_context *)backend->context; + + ggml_tensor_extra_cl * extra0 = (ggml_tensor_extra_cl *)src0->extra; + ggml_tensor_extra_cl * extrad = (ggml_tensor_extra_cl *)dst->extra; + + cl_ulong offset0 = extra0->offset + src0->view_offs; + cl_ulong offsetd = extrad->offset + dst->view_offs; + + GGML_TENSOR_LOCALS(int, ne0, src0, ne); + GGML_TENSOR_LOCALS(cl_ulong, nb0, src0, nb); + + cl_kernel kernel = backend_ctx->kernel_cumsum_blk; + + int max_workgroup_size = backend_ctx->get_kernel_workgroup_size(kernel); + int nth = 1; + while (nth < ne00 && 2*nth <= max_workgroup_size) { + nth *= 2; + } + + GGML_ASSERT(ne00 <= nth*nth); + + const int net0 = CEIL_DIV(ne00, nth); + const int net1 = ne01; + const int net2 = ne02; + const int net3 = ne03; + + const cl_ulong nbt0 = sizeof(float); + const cl_ulong nbt1 = net0*nbt0; + const cl_ulong nbt2 = net1*nbt1; + const cl_ulong nbt3 = net2*nbt2; + + static ggml_cl_buffer tmp_buffer; + tmp_buffer.allocate(backend_ctx->context, net0*ne01*ne02*ne03*sizeof(float)); + + CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), &extra0->data_device)); + CL_CHECK(clSetKernelArg(kernel, 1, sizeof(cl_ulong), &offset0)); + CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_mem), &tmp_buffer.buffer)); + CL_CHECK(clSetKernelArg(kernel, 3, sizeof(cl_mem), &extrad->data_device)); + CL_CHECK(clSetKernelArg(kernel, 4, sizeof(cl_ulong), &offsetd)); + CL_CHECK(clSetKernelArg(kernel, 5, sizeof(int), &ne00)); + CL_CHECK(clSetKernelArg(kernel, 6, sizeof(int), &ne01)); + CL_CHECK(clSetKernelArg(kernel, 7, sizeof(int), &ne02)); + CL_CHECK(clSetKernelArg(kernel, 8, sizeof(int), &ne03)); + CL_CHECK(clSetKernelArg(kernel, 9, sizeof(cl_ulong), &nb00)); + CL_CHECK(clSetKernelArg(kernel, 10, sizeof(cl_ulong), &nb01)); + CL_CHECK(clSetKernelArg(kernel, 11, sizeof(cl_ulong), &nb02)); + CL_CHECK(clSetKernelArg(kernel, 12, sizeof(cl_ulong), &nb03)); + CL_CHECK(clSetKernelArg(kernel, 13, sizeof(int), &net0)); + CL_CHECK(clSetKernelArg(kernel, 14, sizeof(int), &net1)); + CL_CHECK(clSetKernelArg(kernel, 15, sizeof(int), &net2)); + + size_t global_work_size[] = { (size_t)(nth*net0*ne01), (size_t)ne02, (size_t)ne03}; + size_t local_work_size[] = { (size_t)nth, 1, 1}; + + backend_ctx->enqueue_ndrange_kernel(kernel, 3, global_work_size, local_work_size, dst); + + if(ne00 > nth) { + // if a single workgroup cannot handle an entire row, each workgroup + // computes a partial sum and stores to dst, tmp_buffer contains the sum + // of the each workgroup; cumsum this buffer and add to the partial sums in dst + cl_ulong offsett = 0; + kernel = backend_ctx->kernel_cumsum_blk; + CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), &tmp_buffer.buffer)); + CL_CHECK(clSetKernelArg(kernel, 1, sizeof(cl_ulong), &offsett)); + CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_mem), &tmp_buffer.buffer)); + CL_CHECK(clSetKernelArg(kernel, 3, sizeof(cl_mem), &tmp_buffer.buffer)); + CL_CHECK(clSetKernelArg(kernel, 4, sizeof(cl_ulong), &offsett)); + CL_CHECK(clSetKernelArg(kernel, 5, sizeof(int), &net0)); + CL_CHECK(clSetKernelArg(kernel, 6, sizeof(int), &ne01)); + CL_CHECK(clSetKernelArg(kernel, 7, sizeof(int), &ne02)); + CL_CHECK(clSetKernelArg(kernel, 8, sizeof(int), &ne03)); + CL_CHECK(clSetKernelArg(kernel, 9, sizeof(cl_ulong), &nbt0)); + CL_CHECK(clSetKernelArg(kernel, 10, sizeof(cl_ulong), &nbt1)); + CL_CHECK(clSetKernelArg(kernel, 11, sizeof(cl_ulong), &nbt2)); + CL_CHECK(clSetKernelArg(kernel, 12, sizeof(cl_ulong), &nbt3)); + CL_CHECK(clSetKernelArg(kernel, 13, sizeof(int), &net0)); + CL_CHECK(clSetKernelArg(kernel, 14, sizeof(int), &net1)); + CL_CHECK(clSetKernelArg(kernel, 15, sizeof(int), &net2)); + + size_t global_work_size_1[] = { (size_t)net1*nth, (size_t)net2, (size_t)net3}; + size_t local_work_size_1[] = { (size_t)nth, 1, 1}; + backend_ctx->enqueue_ndrange_kernel(kernel, 3, global_work_size_1, local_work_size_1, dst); + + kernel = backend_ctx->kernel_cumsum_add; + CL_CHECK(clSetKernelArg(kernel, 0, sizeof(cl_mem), &tmp_buffer.buffer)); + CL_CHECK(clSetKernelArg(kernel, 1, sizeof(cl_mem), &extrad->data_device)); + CL_CHECK(clSetKernelArg(kernel, 2, sizeof(cl_ulong), &offsetd)); + CL_CHECK(clSetKernelArg(kernel, 3, sizeof(int), &ne00)); + CL_CHECK(clSetKernelArg(kernel, 4, sizeof(int), &ne01)); + CL_CHECK(clSetKernelArg(kernel, 5, sizeof(int), &ne02)); + CL_CHECK(clSetKernelArg(kernel, 6, sizeof(int), &ne03)); + CL_CHECK(clSetKernelArg(kernel, 7, sizeof(int), &nbt0)); + CL_CHECK(clSetKernelArg(kernel, 8, sizeof(int), &nbt1)); + CL_CHECK(clSetKernelArg(kernel, 9, sizeof(int), &nbt2)); + CL_CHECK(clSetKernelArg(kernel, 10, sizeof(int), &nbt3)); + + size_t global_work_size_2[] = { (size_t)(nth*net0*ne01), (size_t)ne02, (size_t)ne03}; + size_t local_work_size_2[] = { (size_t)nth, 1, 1}; + backend_ctx->enqueue_ndrange_kernel(kernel, 3, global_work_size_2, local_work_size_2, dst); + } +} + static void ggml_cl_glu(ggml_backend_t backend, const ggml_tensor * src0, const ggml_tensor * src1, ggml_tensor * dst) { GGML_ASSERT(src0); GGML_ASSERT(src0->extra); @@ -12391,6 +12524,12 @@ bool ggml_cl_compute_forward(ggml_backend_t backend, struct ggml_tensor * tensor } func = ggml_cl_sum_rows; break; + case GGML_OP_CUMSUM: + if (!any_on_device) { + return false; + } + func = ggml_cl_cumsum; + break; case GGML_OP_FLASH_ATTN_EXT: if (!any_on_device) { return false; diff --git a/ggml/src/ggml-opencl/kernels/cumsum.cl b/ggml/src/ggml-opencl/kernels/cumsum.cl new file mode 100644 index 0000000000..edfb74b705 --- /dev/null +++ b/ggml/src/ggml-opencl/kernels/cumsum.cl @@ -0,0 +1,139 @@ +#pragma OPENCL EXTENSION cl_khr_fp16 : enable + +#ifdef cl_intel_required_subgroup_size +#pragma OPENCL EXTENSION cl_intel_required_subgroup_size : enable +#define INTEL_GPU 1 +#define REQD_SUBGROUP_SIZE_16 __attribute__((intel_reqd_sub_group_size(16))) +#define REQD_SUBGROUP_SIZE_32 __attribute__((intel_reqd_sub_group_size(32))) +#elif defined(cl_qcom_reqd_sub_group_size) +#pragma OPENCL EXTENSION cl_qcom_reqd_sub_group_size : enable +#define ADRENO_GPU 1 +#define REQD_SUBGROUP_SIZE_64 __attribute__((qcom_reqd_sub_group_size("half"))) +#define REQD_SUBGROUP_SIZE_128 __attribute__((qcom_reqd_sub_group_size("full"))) +#endif + +// max workgroup size is usually 1024, this covers various subgroups sizes +#define MAX_SUBGROUPS 128 + +#ifdef INTEL_GPU +REQD_SUBGROUP_SIZE_32 +#elif defined (ADRENO_GPU) +REQD_SUBGROUP_SIZE_64 +#endif +kernel void kernel_cumsum_blk( + global char * src0, + ulong offset0, + global char * tmp, + global char * dst, + ulong offsetd, + int ne00, + int ne01, + int ne02, + int ne03, + ulong nb00, + ulong nb01, + ulong nb02, + ulong nb03, + uint net0, + uint net1, + uint net2 +) { + src0 = src0 + offset0; + dst = dst + offsetd; + + const int i3 = get_group_id(2); + const int i2 = get_group_id(1); + const int i1 = get_group_id(0); + + const int nth = get_local_size(0); + const int tid = get_local_id(0); + + const uint sg_size = get_sub_group_size(); + const uint sg_id = get_sub_group_id(); + const uint sg_lid = get_sub_group_local_id(); + + const int ib = i1 / ne01; + const int i00 = ib * nth; + const int i01 = i1 % ne01; + const int i02 = i2; + const int i03 = i3; + + global const float * src0_row = (global const float *)(src0 + i03*nb03 + i02*nb02 + i01*nb01); + global float * tmp_row = (global float *)tmp + net0 * i01 + net0 * net1 * i02 + net0 * net1 * net2 * i03; + global float * dst_row = (global float *)dst + i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + __local float partial[MAX_SUBGROUPS]; + + float v = 0.0f; + if (i00 + tid < ne00) { + v = src0_row[i00 + tid]; + } + + float s = sub_group_scan_inclusive_add(v); + if (sg_lid == sg_size - 1) { + partial[sg_id] = s; + } + barrier(CLK_LOCAL_MEM_FENCE); + + // NB: subgroup size should be larger than number of subgroups + // assuming max workgroup size of 1024, subgroup size should be >= 32 + if (sg_id == 0) { + float x = 0.0f; + if (sg_lid < get_num_sub_groups()) { + x = partial[sg_lid]; + } + float ex = sub_group_scan_exclusive_add(x); + if (sg_lid < get_num_sub_groups()) { + partial[sg_lid] = ex; + } + } + barrier(CLK_LOCAL_MEM_FENCE); + + s += partial[sg_id]; + + if (i00 + tid < ne00) { + dst_row[i00 + tid] = s; + } + if (ne00 > nth && tid == nth - 1) { + tmp_row[ib] = s; + } +} + +kernel void kernel_cumsum_add( + global char * tmp, + global char * dst, + ulong offsetd, + int ne00, + int ne01, + int ne02, + int ne03, + uint nbt0, + uint nbt1, + uint nbt2, + uint nbt3 +) { + dst = dst + offsetd; + + const int i3 = get_group_id(2); + const int i2 = get_group_id(1); + const int i1 = get_group_id(0); + + const int nth = get_local_size(0); + const int tid = get_local_id(0); + + const int ib = i1 / ne01; + if (ib == 0) { + return; + } + const int i00 = ib * nth; + const int i01 = i1 % ne01; + const int i02 = i2; + const int i03 = i3; + + global float * tmp_row = (global float *)(tmp + nbt1 * i01 + nbt2 * i02 + nbt3 * i03); + global float * dst_row = (global float *)dst + i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + if (i00 + tid < ne00) { + dst_row[i00 + tid] += tmp_row[ib - 1]; + } +} From 0516e04bf9c002bf190519af6795415ab3ebd059 Mon Sep 17 00:00:00 2001 From: lhez Date: Wed, 11 Mar 2026 22:03:27 -0700 Subject: [PATCH 13/28] opencl: use larger workgroup size for get_rows (#20316) --- ggml/src/ggml-opencl/ggml-opencl.cpp | 29 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/ggml/src/ggml-opencl/ggml-opencl.cpp b/ggml/src/ggml-opencl/ggml-opencl.cpp index 46a95a1999..e1dca6b4b4 100644 --- a/ggml/src/ggml-opencl/ggml-opencl.cpp +++ b/ggml/src/ggml-opencl/ggml-opencl.cpp @@ -5796,19 +5796,12 @@ static void ggml_cl_get_rows(ggml_backend_t backend, const ggml_tensor * src0, c GGML_ASSERT(dst); GGML_ASSERT(dst->extra); - const int ne00 = src0->ne[0]; - const cl_ulong nb01 = src0->nb[1]; - const cl_ulong nb02 = src0->nb[2]; - const cl_ulong nb03 = src0->nb[3]; - const int ne10 = src1->ne[0]; - const cl_ulong nb10 = src1->nb[0]; - const int ne11 = src1->ne[1]; - const int ne12 = src1->ne[2]; - const cl_ulong nb11 = src1->nb[1]; - const cl_ulong nb12 = src1->nb[2]; - const cl_ulong nb1 = dst->nb[1]; - const cl_ulong nb2 = dst->nb[2]; - const cl_ulong nb3 = dst->nb[3]; + GGML_TENSOR_LOCALS(int, ne0, src0, ne); + GGML_TENSOR_LOCALS(cl_ulong, nb0, src0, nb); + GGML_TENSOR_LOCALS(int, ne1, src1, ne); + GGML_TENSOR_LOCALS(cl_ulong, nb1, src1, nb); + GGML_TENSOR_LOCALS(int, ne, dst, ne); + GGML_TENSOR_LOCALS(cl_ulong, nb, dst, nb); ggml_backend_opencl_context *backend_ctx = (ggml_backend_opencl_context *)backend->context; @@ -5854,8 +5847,14 @@ static void ggml_cl_get_rows(ggml_backend_t backend, const ggml_tensor * src0, c CL_CHECK(clSetKernelArg(kernel, 15, sizeof(cl_ulong), &nb2)); CL_CHECK(clSetKernelArg(kernel, 16, sizeof(cl_ulong), &nb3)); - size_t global_work_size[] = {(size_t)ne10*64, (size_t)ne11, (size_t)ne12}; - size_t local_work_size[] = {64, 1, 1}; + int max_workgroup_size = backend_ctx->get_kernel_workgroup_size(kernel); + int nth = 1; + while (nth < ne00 && 2*nth <= max_workgroup_size) { + nth *= 2; + } + + size_t global_work_size[] = {(size_t)ne10*nth, (size_t)ne11, (size_t)ne12}; + size_t local_work_size[] = {(size_t)nth, 1, 1}; backend_ctx->enqueue_ndrange_kernel(kernel, 3, global_work_size, local_work_size, dst); } From 5866e3bbc8a2ede4236871ea73a3eb3337abf530 Mon Sep 17 00:00:00 2001 From: Masato Nakasaka Date: Wed, 11 Mar 2026 22:30:16 -0700 Subject: [PATCH 14/28] vulkan: Fix ErrorOutOfHostMemory on Intel GPU when loading large models with --no-mmap (#20059) * Changed to reuse command buffers to fix crashing on Intel GPU * Removed unused parameter * Fixed compile error and minor mistake * Fix logging * Changing to use usage flag per command buffer * fixed style * added buffer reset * Removed cmd_buffer_idx for reuse consistency * Fixed style --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 129 +++++++++++++++++---------- 1 file changed, 81 insertions(+), 48 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 61d112c50a..8807c3e2b6 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -27,6 +27,7 @@ DispatchLoaderDynamic & ggml_vk_default_dispatcher(); #include #include #include +#include #include #include #include @@ -188,6 +189,11 @@ struct ggml_backend_vk_buffer_type_context { struct vk_queue; +struct vk_command_buffer { + vk::CommandBuffer buf; + bool in_use = false; +}; + // Stores command pool/buffers. There's an instance of this // for each (context,queue) pair and for each (device,queue) pair. struct vk_command_pool { @@ -195,10 +201,16 @@ struct vk_command_pool { void destroy(vk::Device& device); vk::CommandPool pool; - uint32_t cmd_buffer_idx; - std::vector cmd_buffers; + // Using deque so the pointers to command buffers + // remain valid even if we add more + std::deque cmd_buffers; vk_queue *q; + + size_t buffers_in_use() const { + return std::count_if(cmd_buffers.begin(), cmd_buffers.end(), + [](const auto& cb) { return cb.in_use; }); + } }; // Prevent simultaneous submissions to the same queue. @@ -878,10 +890,12 @@ struct vk_device_struct { }; void vk_command_pool::init(vk_device& device, vk_queue *q_) { - cmd_buffer_idx = 0; + cmd_buffers.clear(); q = q_; - vk::CommandPoolCreateInfo command_pool_create_info(vk::CommandPoolCreateFlags(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT), q->queue_family_index); + vk::CommandPoolCreateInfo command_pool_create_info( + vk::CommandPoolCreateFlags(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT | VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT), + q->queue_family_index); pool = device->device.createCommandPool(command_pool_create_info); } @@ -929,6 +943,7 @@ struct vk_subbuffer { struct vk_event { vk::Event event; vk::Fence fence; + vk_command_buffer* cmd_buffer = nullptr; }; struct vk_semaphore { @@ -937,7 +952,7 @@ struct vk_semaphore { }; struct vk_submission { - vk::CommandBuffer buffer; + vk_command_buffer* buffer = nullptr; std::vector wait_semaphores; std::vector signal_semaphores; }; @@ -2283,25 +2298,15 @@ static void ggml_pipeline_allocate_descriptor_sets(ggml_backend_vk_context * ctx } } -static vk::CommandBuffer ggml_vk_create_cmd_buffer(vk_device& device, vk_command_pool& p) { +static vk_command_buffer* ggml_vk_create_cmd_buffer(vk_device& device, vk_command_pool& p) { VK_LOG_DEBUG("ggml_vk_create_cmd_buffer()"); - - if (p.cmd_buffers.size() > p.cmd_buffer_idx) { - // Reuse command buffer - return p.cmd_buffers[p.cmd_buffer_idx++]; - } - vk::CommandBufferAllocateInfo command_buffer_alloc_info( p.pool, vk::CommandBufferLevel::ePrimary, 1); const std::vector cmd_buffers = device->device.allocateCommandBuffers(command_buffer_alloc_info); - auto buf = cmd_buffers.front(); - - p.cmd_buffers.push_back(buf); - p.cmd_buffer_idx++; - - return buf; + p.cmd_buffers.push_back({ cmd_buffers.front(), true }); + return &p.cmd_buffers[p.cmd_buffers.size()-1]; } static void ggml_vk_submit(vk_context& ctx, vk::Fence fence) { @@ -2368,7 +2373,7 @@ static void ggml_vk_submit(vk_context& ctx, vk::Fence fence) { tl_wait_semaphores[idx].data(), stage_flags[idx].data(), 1, - &submission.buffer, + &submission.buffer->buf, (uint32_t) submission.signal_semaphores.size(), tl_signal_semaphores[idx].data(), }; @@ -2492,7 +2497,11 @@ static void ggml_vk_command_pool_cleanup(vk_device& device, vk_command_pool& p) // Requires command buffers to be done device->device.resetCommandPool(p.pool); - p.cmd_buffer_idx = 0; + // Don't clear the command buffers and mark them as not in use. + // This allows us to reuse them + for (auto& cmd_buffer : p.cmd_buffers) { + cmd_buffer.in_use = false; + } } static void ggml_vk_queue_command_pools_cleanup(vk_device& device) { @@ -2501,10 +2510,10 @@ static void ggml_vk_queue_command_pools_cleanup(vk_device& device) { // Arbitrary frequency to cleanup/reuse command buffers static constexpr uint32_t cleanup_frequency = 10; - if (device->compute_queue.cmd_pool.cmd_buffer_idx >= cleanup_frequency) { + if (device->compute_queue.cmd_pool.buffers_in_use() >= cleanup_frequency) { ggml_vk_command_pool_cleanup(device, device->compute_queue.cmd_pool); } - if (device->transfer_queue.cmd_pool.cmd_buffer_idx >= cleanup_frequency) { + if (device->transfer_queue.cmd_pool.buffers_in_use() >= cleanup_frequency) { ggml_vk_command_pool_cleanup(device, device->transfer_queue.cmd_pool); } } @@ -2752,7 +2761,7 @@ static void ggml_vk_sync_buffers(ggml_backend_vk_context* ctx, vk_context& subct ctx->prealloc_x_need_sync = ctx->prealloc_y_need_sync = ctx->prealloc_split_k_need_sync = false; } - subctx->s->buffer.pipelineBarrier( + subctx->s->buffer->buf.pipelineBarrier( subctx->p->q->stage_flags, subctx->p->q->stage_flags, {}, @@ -2768,7 +2777,7 @@ static void ggml_vk_sync_buffers(ggml_backend_vk_context* ctx, vk_context& subct static void ggml_vk_set_event(vk_context& ctx, vk::Event& event) { VK_LOG_DEBUG("ggml_vk_set_event()"); - ctx->s->buffer.setEvent( + ctx->s->buffer->buf.setEvent( event, ctx->p->q->stage_flags ); @@ -2780,7 +2789,7 @@ static void ggml_vk_wait_events(vk_context& ctx, std::vector&& events return; } - ctx->s->buffer.waitEvents( + ctx->s->buffer->buf.waitEvents( events, ctx->p->q->stage_flags, ctx->p->q->stage_flags, @@ -6348,13 +6357,24 @@ static vk_subbuffer ggml_vk_tensor_subbuffer( return vk_subbuffer{buffer, offset, size}; } +// Get a command buffer from pool. Create a new one if no reusable buffer is available +static vk_command_buffer* ggml_vk_get_or_create_cmd_buffer(vk_device& device, vk_command_pool& pool) { + for (auto& cmd_buffer : pool.cmd_buffers) { + if (!cmd_buffer.in_use) { + cmd_buffer.in_use = true; + return &cmd_buffer; + } + } + return ggml_vk_create_cmd_buffer(device, pool); +} + static vk_submission ggml_vk_begin_submission(vk_device& device, vk_command_pool& p, bool one_time = true) { vk_submission s; - s.buffer = ggml_vk_create_cmd_buffer(device, p); + s.buffer = ggml_vk_get_or_create_cmd_buffer(device, p); if (one_time) { - s.buffer.begin({ vk::CommandBufferUsageFlagBits::eOneTimeSubmit }); + s.buffer->buf.begin({ vk::CommandBufferUsageFlagBits::eOneTimeSubmit }); } else { - s.buffer.begin({ vk::CommandBufferUsageFlags{} }); + s.buffer->buf.begin({ vk::CommandBufferUsageFlags{} }); } return s; @@ -6407,18 +6427,18 @@ static void ggml_vk_dispatch_pipeline(ggml_backend_vk_context* ctx, vk_context& vk::WriteDescriptorSet write_descriptor_set{ descriptor_set, 0, 0, pipeline->parameter_count, vk::DescriptorType::eStorageBuffer, nullptr, descriptor_buffer_infos.begin() }; ctx->device->device.updateDescriptorSets({ write_descriptor_set }, {}); - subctx->s->buffer.pushConstants(pipeline->layout, vk::ShaderStageFlagBits::eCompute, 0, push_constant_size(push_constants), push_constant_data(push_constants)); - subctx->s->buffer.bindPipeline(vk::PipelineBindPoint::eCompute, pipeline->pipeline); - subctx->s->buffer.bindDescriptorSets(vk::PipelineBindPoint::eCompute, + subctx->s->buffer->buf.pushConstants(pipeline->layout, vk::ShaderStageFlagBits::eCompute, 0, push_constant_size(push_constants), push_constant_data(push_constants)); + subctx->s->buffer->buf.bindPipeline(vk::PipelineBindPoint::eCompute, pipeline->pipeline); + subctx->s->buffer->buf.bindDescriptorSets(vk::PipelineBindPoint::eCompute, pipeline->layout, 0, { descriptor_set }, {}); - subctx->s->buffer.dispatch(wg0, wg1, wg2); + subctx->s->buffer->buf.dispatch(wg0, wg1, wg2); } static void ggml_vk_end_submission(vk_submission& s, std::vector wait_semaphores, std::vector signal_semaphores) { - s.buffer.end(); + s.buffer->buf.end(); s.wait_semaphores = std::move(wait_semaphores); s.signal_semaphores = std::move(signal_semaphores); @@ -6430,7 +6450,7 @@ static void ggml_vk_ctx_end(vk_context& ctx) { return; } - ctx->s->buffer.end(); + ctx->s->buffer->buf.end(); ctx->s = nullptr; } @@ -6584,7 +6604,7 @@ static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_cont } ggml_vk_sync_buffers(ctx, subctx); - subctx->s->buffer.copyBuffer(buf->buffer, dst->buffer, slices); + subctx->s->buffer->buf.copyBuffer(buf->buffer, dst->buffer, slices); return; } @@ -6599,7 +6619,7 @@ static void ggml_vk_buffer_write_nc_async(ggml_backend_vk_context * ctx, vk_cont VkBufferCopy buf_copy{ 0, offset, copy_size }; ggml_vk_sync_buffers(ctx, subctx); - vkCmdCopyBuffer(subctx->s->buffer, (VkBuffer)staging->buffer, (VkBuffer)dst->buffer, 1, &buf_copy); + vkCmdCopyBuffer(subctx->s->buffer->buf, (VkBuffer)staging->buffer, (VkBuffer)dst->buffer, 1, &buf_copy); for (uint64_t i3 = 0; i3 < ne3; i3++) { for (uint64_t i2 = 0; i2 < ne2; i2++) { @@ -6648,7 +6668,7 @@ static bool ggml_vk_buffer_write_2d_async(vk_context subctx, vk_buffer& dst, siz } ggml_vk_sync_buffers(nullptr, subctx); - subctx->s->buffer.copyBuffer(buf->buffer, dst->buffer, slices); + subctx->s->buffer->buf.copyBuffer(buf->buffer, dst->buffer, slices); return true; } VK_LOG_DEBUG("STAGING"); @@ -6670,7 +6690,7 @@ static bool ggml_vk_buffer_write_2d_async(vk_context subctx, vk_buffer& dst, siz copy_size}; ggml_vk_sync_buffers(nullptr, subctx); - vkCmdCopyBuffer(subctx->s->buffer, (VkBuffer)staging_buffer->buffer, (VkBuffer)dst->buffer, 1, &buf_copy); + vkCmdCopyBuffer(subctx->s->buffer->buf, (VkBuffer)staging_buffer->buffer, (VkBuffer)dst->buffer, 1, &buf_copy); if (width == spitch) { deferred_memcpy((uint8_t *)staging_buffer->ptr, src, width * height, &subctx->in_memcpys); @@ -6756,7 +6776,7 @@ static bool ggml_vk_buffer_read_2d_async(vk_context subctx, vk_buffer& src, size if (buf != nullptr) { // Memory is pinned, use as staging buffer ggml_vk_sync_buffers(nullptr, subctx); - subctx->s->buffer.copyBuffer(src->buffer, buf->buffer, slices); + subctx->s->buffer->buf.copyBuffer(src->buffer, buf->buffer, slices); return true; } @@ -6774,7 +6794,7 @@ static bool ggml_vk_buffer_read_2d_async(vk_context subctx, vk_buffer& src, size vk_buffer& staging_buffer = src->device->sync_staging; ggml_vk_sync_buffers(nullptr, subctx); - subctx->s->buffer.copyBuffer(src->buffer, staging_buffer->buffer, slices); + subctx->s->buffer->buf.copyBuffer(src->buffer, staging_buffer->buffer, slices); deferred_memcpy(dst, staging_buffer->ptr, copy_size, &subctx->out_memcpys); return true; @@ -6821,7 +6841,7 @@ static void ggml_vk_buffer_copy_async(vk_context& ctx, vk_buffer& dst, size_t ds VkBufferCopy bc{ src_offset, dst_offset, size }; - vkCmdCopyBuffer(ctx->s->buffer, (VkBuffer)src->buffer, (VkBuffer)dst->buffer, 1, &bc); + vkCmdCopyBuffer(ctx->s->buffer->buf, (VkBuffer)src->buffer, (VkBuffer)dst->buffer, 1, &bc); } static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& src, size_t src_offset, size_t size) { @@ -6859,7 +6879,7 @@ static void ggml_vk_buffer_memset_async(vk_context& ctx, vk_buffer& dst, size_t } // Fall back to GPU fillBuffer for non-UMA or non-host-visible buffers - ctx->s->buffer.fillBuffer(dst->buffer, offset, size, c); + ctx->s->buffer->buf.fillBuffer(dst->buffer, offset, size, c); } static void ggml_vk_buffer_memset(vk_buffer& dst, size_t offset, uint32_t c, size_t size) { @@ -6874,7 +6894,7 @@ static void ggml_vk_buffer_memset(vk_buffer& dst, size_t offset, uint32_t c, siz std::lock_guard guard(dst->device->mutex); vk_context subctx = ggml_vk_create_temporary_context(dst->device->transfer_queue.cmd_pool); ggml_vk_ctx_begin(dst->device, subctx); - subctx->s->buffer.fillBuffer(dst->buffer, offset, size, c); + subctx->s->buffer->buf.fillBuffer(dst->buffer, offset, size, c); ggml_vk_ctx_end(subctx); ggml_vk_submit(subctx, dst->device->fence); @@ -12682,7 +12702,7 @@ static bool ggml_vk_build_graph(ggml_backend_vk_context * ctx, ggml_cgraph * cgr if (vk_perf_logger_enabled && vk_perf_logger_concurrent) { ctx->query_node_idx[ctx->query_idx] = node_idx; - compute_ctx->s->buffer.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++); + compute_ctx->s->buffer->buf.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++); } } // Add all fused nodes to the unsynchronized lists. @@ -13521,7 +13541,7 @@ static void ggml_backend_vk_set_tensor_async(ggml_backend_t backend, ggml_tensor buffer_cpy.dstOffset = dst_offset; buffer_cpy.size = size; - cpy_ctx->s->buffer.copyBuffer(ctx->sync_staging->buffer, buf->buffer, { buffer_cpy }); + cpy_ctx->s->buffer->buf.copyBuffer(ctx->sync_staging->buffer, buf->buffer, { buffer_cpy }); deferred_memcpy(ctx->sync_staging->ptr, data, size, &cpy_ctx->in_memcpys); ggml_vk_synchronize(ctx); } @@ -13555,7 +13575,7 @@ static void ggml_backend_vk_get_tensor_async(ggml_backend_t backend, const ggml_ buffer_cpy.dstOffset = 0; buffer_cpy.size = size; - compute_ctx->s->buffer.copyBuffer(buf->buffer, ctx->sync_staging->buffer, { buffer_cpy }); + compute_ctx->s->buffer->buf.copyBuffer(buf->buffer, ctx->sync_staging->buffer, { buffer_cpy }); deferred_memcpy(data, ctx->sync_staging->ptr, size, &compute_ctx->out_memcpys); ggml_vk_synchronize(ctx); } @@ -13633,8 +13653,12 @@ static void ggml_vk_synchronize(ggml_backend_vk_context * ctx) { } vk_context compute_ctx; + vk_command_buffer* cmd_buf = nullptr; if (do_transfer) { compute_ctx = ctx->compute_ctx.lock(); + if (compute_ctx->s) { + cmd_buf = compute_ctx->s->buffer; + } ggml_vk_ctx_end(compute_ctx); @@ -13668,6 +13692,9 @@ static void ggml_vk_synchronize(ggml_backend_vk_context * ctx) { } ggml_vk_wait_for_fence(ctx); ctx->submit_pending = false; + if (cmd_buf) { + cmd_buf->in_use = false; + } } if (do_transfer) { @@ -14157,7 +14184,7 @@ static ggml_status ggml_backend_vk_graph_compute(ggml_backend_t backend, ggml_cg GGML_ASSERT(ctx->compute_ctx.expired()); compute_ctx = ggml_vk_get_compute_ctx(ctx); ctx->query_idx = 0; - compute_ctx->s->buffer.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++); + compute_ctx->s->buffer->buf.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++); } ctx->prealloc_y_last_pipeline_used = nullptr; @@ -14393,7 +14420,7 @@ static ggml_status ggml_backend_vk_graph_compute(ggml_backend_t backend, ggml_cg // track a single node/fusion for the current query ctx->query_nodes[ctx->query_idx] = cgraph->nodes[i]; ctx->query_fusion_names[ctx->query_idx] = fusion_string; - compute_ctx->s->buffer.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++); + compute_ctx->s->buffer->buf.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++); } else { // track a fusion string and number of fused ops for the current node_idx ctx->query_fusion_names[i] = fusion_string; @@ -14726,6 +14753,7 @@ static void ggml_backend_vk_event_record(ggml_backend_t backend, ggml_backend_ev ggml_vk_submit_transfer_ctx(ctx); vk_context compute_ctx = ggml_vk_get_compute_ctx(ctx); + auto* cmd_buf = compute_ctx->s->buffer; // retrieve pointer before it gets reset // the backend interface doesn't have an explicit reset, so reset it here // before we record the command to set it @@ -14738,6 +14766,7 @@ static void ggml_backend_vk_event_record(ggml_backend_t backend, ggml_backend_ev ggml_vk_submit(compute_ctx, {vkev->fence}); ctx->submit_pending = true; + vkev->cmd_buffer = cmd_buf; ctx->compute_ctx.reset(); } @@ -15557,6 +15586,10 @@ static void ggml_backend_vk_device_event_synchronize(ggml_backend_dev_t dev, ggm vk_event *vkev = (vk_event *)event->context; VK_CHECK(device->device.waitForFences({ vkev->fence }, true, UINT64_MAX), "event_synchronize"); + // Finished using current command buffer so we flag for reuse + if (vkev->cmd_buffer) { + vkev->cmd_buffer->in_use = false; + } } static vk_buffer ggml_vk_buffer_from_host_ptr(vk_device & device, void * ptr, size_t size) { From aa429cf5075ef1cf14c9cf784c73fc436ff6eede Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 12 Mar 2026 00:35:49 -0500 Subject: [PATCH 15/28] vulkan: fix OOB check in flash_attn_mask_opt (#20296) --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 2 +- .../vulkan-shaders/flash_attn_mask_opt.comp | 98 +++++++++++-------- 2 files changed, 60 insertions(+), 40 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 8807c3e2b6..6574955cf1 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -8840,7 +8840,7 @@ static void ggml_vk_flash_attn(ggml_backend_vk_context * ctx, vk_context& subctx } // Only use mask opt when the mask is fairly large. This hasn't been tuned extensively. - bool use_mask_opt = mask && nem1 >= 32 && nem0 * nem1 > 32768; + bool use_mask_opt = mask && nem1 >= 32 && nem0 * nem1 > 32768 && nem0 >= tuning_params.block_cols * 16; vk_fa_pipeline_state fa_pipeline_state = get_fa_pipeline_state(ctx->device, tuning_params, HSK, HSV, aligned, f32acc, mask != nullptr, use_mask_opt, logit_softcap != 0); diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_mask_opt.comp b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_mask_opt.comp index 8c92c1adcd..0e41770806 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_mask_opt.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_mask_opt.comp @@ -33,6 +33,61 @@ layout (push_constant) uniform parameter { shared float minsh[NUM_SUBGROUPS]; shared float maxsh[NUM_SUBGROUPS]; +float FLT_MAX_OVER_2 = uintBitsToFloat(0x7EFFFFFF); + +void loadvec4(inout uint result, const uint i0, const uint i1, const uint i2, const uint i3, const bool need_bounds_check) { + const uint tid = gl_LocalInvocationIndex; + + [[unroll]] for (uint block_x = 0; block_x < 16; ++block_x) { + float min_v = FLT_MAX_OVER_2; + float max_v = -FLT_MAX_OVER_2; + [[unroll]] for (uint i = 0; i < Br * Bc / 4; i += BLOCK_SIZE) { + uint j0 = (i + tid) % (Bc / 4); + uint j1 = (i + tid) / (Bc / 4); + + j0 *= 4; + j0 += (i0 * 16 + block_x) * Bc; + j1 += i1 * Br; + + if (!need_bounds_check || j0 + 3 < nem0) { + vec4 f = vec4(data_av4[(j0 + j1 * nbm1 + i2 * nbm2 + i3 * nbm3) / 4]); + [[unroll]] for (int c = 0; c < 4; ++c) { + min_v = min(min_v, f[c]); + max_v = max(max_v, f[c]); + } + } else { + [[unroll]] for (int c = 0; c < 4; ++c) { + if (j0 + c < nem0) { + float f = float(data_a[j0 + j1 * nbm1 + i2 * nbm2 + i3 * nbm3]); + min_v = min(min_v, f); + max_v = max(max_v, f); + } + } + } + } + min_v = subgroupMin(min_v); + max_v = subgroupMax(max_v); + if (gl_SubgroupInvocationID == 0) { + minsh[gl_SubgroupID] = min_v; + maxsh[gl_SubgroupID] = max_v; + } + barrier(); + if (tid == 0) { + [[unroll]] for (uint i = 0; i < NUM_SUBGROUPS; ++i) { + min_v = min(min_v, minsh[i]); + max_v = max(max_v, maxsh[i]); + } + if (max_v <= -FLT_MAX_OVER_2) { + result |= 1 << (2*block_x); + } + if (min_v == 0.0f && max_v == 0.0f) { + result |= 2 << (2*block_x); + } + } + barrier(); + } +} + // For each Br x Bc block of the mask (input) buffer, read all values and check // if it's all -inf or all zero. Write out a two-bit code indicating which it is // (or zero for neither). Each workgroup processes 16 tiles and writes out a @@ -48,50 +103,15 @@ void main() { const uint i2 = gl_WorkGroupID.z % nem2; const uint i3 = gl_WorkGroupID.z / nem2; - float FLT_MAX_OVER_2 = uintBitsToFloat(0x7EFFFFFF); - uint result = 0; // Fast path for fully in-bounds blocks where we can do f16vec4 loads if ((nem0 % Bc) == 0 && (nem1 % Br) == 0 && ((Br * Bc) % (BLOCK_SIZE * 4)) == 0) { - [[unroll]] for (uint block_x = 0; block_x < 16; ++block_x) { - float min_v = FLT_MAX_OVER_2; - float max_v = -FLT_MAX_OVER_2; - [[unroll]] for (uint i = 0; i < Br * Bc / 4; i += BLOCK_SIZE) { - uint j0 = (i + tid) % (Bc / 4); - uint j1 = (i + tid) / (Bc / 4); - - j0 *= 4; - j0 += (i0 * 16 + block_x) * Bc; - j1 += i1 * Br; - - vec4 f = vec4(data_av4[(j0 + j1 * nbm1 + i2 * nbm2 + i3 * nbm3) / 4]); - [[unroll]] for (int c = 0; c < 4; ++c) { - min_v = min(min_v, f[c]); - max_v = max(max_v, f[c]); - } - } - min_v = subgroupMin(min_v); - max_v = subgroupMax(max_v); - if (gl_SubgroupInvocationID == 0) { - minsh[gl_SubgroupID] = min_v; - maxsh[gl_SubgroupID] = max_v; - } - barrier(); - if (tid == 0) { - [[unroll]] for (uint i = 0; i < NUM_SUBGROUPS; ++i) { - min_v = min(min_v, minsh[i]); - max_v = max(max_v, maxsh[i]); - } - if (max_v <= -FLT_MAX_OVER_2) { - result |= 1 << (2*block_x); - } - if (min_v == 0.0f && max_v == 0.0f) { - result |= 2 << (2*block_x); - } - } - barrier(); + if ((i0 + 1) * 16 * Bc <= nem0) { + loadvec4(result, i0, i1, i2, i3, false); + } else { + loadvec4(result, i0, i1, i2, i3, true); } } else { [[unroll]] for (uint block_x = 0; block_x < 16; ++block_x) { From 246ffc4b057504712272433b035afefc78457cda Mon Sep 17 00:00:00 2001 From: Jeff Bolz Date: Thu, 12 Mar 2026 00:39:41 -0500 Subject: [PATCH 16/28] vulkan: fix l2_norm epsilon handling (#20350) --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 2 +- ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp | 2 +- tests/test-backend-ops.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 6574955cf1..ce3c85e758 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -16061,7 +16061,7 @@ static void ggml_vk_check_results_0(ggml_backend_vk_context * ctx, ggml_cgraph * tensor_clone = ggml_arange(ggml_ctx, start, stop, step); } else if (tensor->op == GGML_OP_FILL) { const float value = ggml_get_op_params_f32(tensor, 0); - tensor_clone = ggml_fill(ggml_ctx, tensor_clone, value); + tensor_clone = ggml_fill(ggml_ctx, src_clone[0], value); } else if (tensor->op == GGML_OP_SQR) { tensor_clone = ggml_sqr(ggml_ctx, src_clone[0]); } else if (tensor->op == GGML_OP_SQRT) { diff --git a/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp b/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp index 7d0a1de0df..f9af46744d 100644 --- a/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp +++ b/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp @@ -36,7 +36,7 @@ void main() { barrier(); } - const FLOAT_TYPE scale = inversesqrt(max(sum[0], FLOAT_TYPE(p.param1))); + const FLOAT_TYPE scale = 1.0f / max(sqrt(sum[0]), FLOAT_TYPE(p.param1)); [[unroll]] for (uint i0 = tid; i0 < p.ne00; i0 += BLOCK_SIZE) { data_d[i3*p.nb13 + i2*p.nb12 + i1*p.nb11 + i0] = D_TYPE(scale * FLOAT_TYPE(data_a[i3*p.nb03 + i2*p.nb02 + i1*p.nb01 + i0])); diff --git a/tests/test-backend-ops.cpp b/tests/test-backend-ops.cpp index 58d67d97f8..a821655d10 100644 --- a/tests/test-backend-ops.cpp +++ b/tests/test-backend-ops.cpp @@ -7656,7 +7656,7 @@ static std::vector> make_test_cases_eval() { test_cases.emplace_back(new test_softcap(GGML_TYPE_F32, {10, 10, 10, 10}, 50.0f)); test_cases.emplace_back(new test_silu_back()); - for (float eps : { 0.0f, 1e-6f, 1e-4f, 1e-1f }) { + for (float eps : { 0.0f, 1e-6f, 1e-4f, 1e-1f, 10.f }) { for (uint32_t n : { 64, 1025 }) { for (bool v : { false, true }) { test_cases.emplace_back(new test_norm(GGML_TYPE_F32, { n, 5, 4, 3 }, v, eps)); From 4cc6eb158c83a3b9833526f3bf1175696884fb0c Mon Sep 17 00:00:00 2001 From: Masato Nakasaka Date: Wed, 11 Mar 2026 22:43:22 -0700 Subject: [PATCH 17/28] ci: Setup self-hosted CI for Intel Linux Vulkan backend (#20154) --- .github/workflows/build.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 99fc8b0777..7df1e25867 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1727,6 +1727,22 @@ jobs: vulkaninfo --summary GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp + ggml-ci-x64-linux-intel-vulkan: + runs-on: [self-hosted, Linux, X64, Intel] + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v6 + with: + persist-credentials: false + + - name: Test + id: ggml-ci + run: | + vulkaninfo --summary + GG_BUILD_VULKAN=1 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp + ggml-ci-arm64-cpu-kleidiai: runs-on: ubuntu-22.04-arm From e4cff0956b0dd7196cd8d4717daf02329cdeb870 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 12 Mar 2026 09:42:40 +0200 Subject: [PATCH 18/28] metal : avoid divisions in bin kernel (#20426) * metal : avoid modulus in bin kernel when not broadcasting * metal : fix capture_started flag --- ggml/src/ggml-metal/ggml-metal-context.m | 4 +++- ggml/src/ggml-metal/ggml-metal-device.cpp | 4 +++- ggml/src/ggml-metal/ggml-metal-ops.cpp | 4 +--- ggml/src/ggml-metal/ggml-metal.metal | 11 +++++++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ggml/src/ggml-metal/ggml-metal-context.m b/ggml/src/ggml-metal/ggml-metal-context.m index 855fd1adae..32d97cd5d0 100644 --- a/ggml/src/ggml-metal/ggml-metal-context.m +++ b/ggml/src/ggml-metal/ggml-metal-context.m @@ -554,7 +554,7 @@ enum ggml_status ggml_metal_graph_compute(ggml_metal_t ctx, struct ggml_cgraph * // enter here only when capturing in order to wait for all computation to finish // otherwise, we leave the graph to compute asynchronously - if (!use_capture && ctx->capture_started) { + if (use_capture && ctx->capture_started) { // wait for completion and check status of each command buffer // needed to detect if the device ran out-of-memory for example (#1881) { @@ -606,6 +606,8 @@ enum ggml_status ggml_metal_graph_compute(ggml_metal_t ctx, struct ggml_cgraph * [ctx->capture_scope endScope]; [[MTLCaptureManager sharedCaptureManager] stopCapture]; + + ctx->capture_started = false; } } diff --git a/ggml/src/ggml-metal/ggml-metal-device.cpp b/ggml/src/ggml-metal/ggml-metal-device.cpp index 15ae2e517d..72ad876d5e 100644 --- a/ggml/src/ggml-metal/ggml-metal-device.cpp +++ b/ggml/src/ggml-metal/ggml-metal-device.cpp @@ -1470,10 +1470,11 @@ ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_bin(ggml_metal_l const bool is_c4 = (op->src[0]->ne[0] % 4 == 0) && (op->src[1]->ne[0] % 4 == 0); + const bool is_cb = op->src[0]->ne[0] != op->src[1]->ne[0]; const bool is_rb = ggml_is_contiguous(op->src[0]) && ggml_is_contiguous(op->src[1]) && (ggml_nrows(op->src[1]) == 1) && ggml_nelements(op) < 65536; snprintf(base, 256, "kernel_bin_fuse_%s_%s_%s%s", t0_str, t1_str, t_str, is_c4 ? "_4" : ""); - snprintf(name, 256, "%s_op=%d_nf=%d_rb=%d", base, op_num, n_fuse, is_rb); + snprintf(name, 256, "%s_op=%d_nf=%d_rb=%d_cb=%d", base, op_num, n_fuse, is_rb, is_cb); ggml_metal_pipeline_with_params res = ggml_metal_library_get_pipeline(lib, name); if (!res.pipeline) { @@ -1482,6 +1483,7 @@ ggml_metal_pipeline_with_params ggml_metal_library_get_pipeline_bin(ggml_metal_l ggml_metal_cv_set_int16(cv, op_num, FC_BIN + 0); ggml_metal_cv_set_int16(cv, n_fuse, FC_BIN + 1); ggml_metal_cv_set_bool (cv, is_rb, FC_BIN + 2); + ggml_metal_cv_set_bool (cv, is_cb, FC_BIN + 3); res = ggml_metal_library_compile_pipeline(lib, base, name, cv); diff --git a/ggml/src/ggml-metal/ggml-metal-ops.cpp b/ggml/src/ggml-metal/ggml-metal-ops.cpp index 306dbcf366..c0bcad392b 100644 --- a/ggml/src/ggml-metal/ggml-metal-ops.cpp +++ b/ggml/src/ggml-metal/ggml-metal-ops.cpp @@ -3180,9 +3180,7 @@ int ggml_metal_op_bin(ggml_metal_op_t ctx, int idx) { ggml_metal_encoder_set_buffer (enc, bid_dst, 3); if (pipeline.cnt) { - const int n = pipeline.c4 ? ggml_nelements(op)/4 : ggml_nelements(op); - - ggml_metal_encoder_dispatch_threadgroups(enc, n, 1, 1, 1, 1, 1); + ggml_metal_encoder_dispatch_threadgroups(enc, args.ne0, ggml_nrows(op), 1, 1, 1, 1); } else { const int nth_max = MIN(256, ggml_metal_pipeline_max_theads_per_threadgroup(pipeline)); diff --git a/ggml/src/ggml-metal/ggml-metal.metal b/ggml/src/ggml-metal/ggml-metal.metal index 0b77d5349b..24a3092af2 100644 --- a/ggml/src/ggml-metal/ggml-metal.metal +++ b/ggml/src/ggml-metal/ggml-metal.metal @@ -1111,6 +1111,7 @@ template [[host_name("kernel_unary_f16_f16_4")]] kernel kernel_unary_t kernel_un constant short FC_bin_op [[function_constant(FC_BIN + 0)]]; constant short FC_bin_f [[function_constant(FC_BIN + 1)]]; constant bool FC_bin_rb [[function_constant(FC_BIN + 2)]]; +constant bool FC_bin_cb [[function_constant(FC_BIN + 3)]]; template kernel void kernel_bin_fuse_impl( @@ -1124,11 +1125,12 @@ kernel void kernel_bin_fuse_impl( #define FC_OP FC_bin_op #define FC_F FC_bin_f #define FC_RB FC_bin_rb +#define FC_CB FC_bin_cb if (FC_RB) { // row broadcast - const uint i0 = tgpig.x; - const uint i1 = i0%args.ne10; + const uint i0 = tgpig.y*args.ne00 + tgpig.x; + const uint i1 = FC_CB ? tgpig.x%args.ne10 : tgpig.x; device const T0 * src0_row = (device const T0 *) (src0); device T * dst_row = (device T *) (dst); @@ -1200,7 +1202,7 @@ kernel void kernel_bin_fuse_impl( device const T1 * src1_ptr = (device const T1 *) (src1 + args.o1[0] + i13*args.nb13 + i12*args.nb12 + i11*args.nb11); for (int i0 = tpitg.x; i0 < args.ne0; i0 += ntg.x) { - const int i10 = i0%args.ne10; + const int i10 = FC_CB ? i0%args.ne10 : i0; if (FC_OP == 0) { dst_ptr[i0] = src0_ptr[i0] + src1_ptr[i10]; @@ -1225,7 +1227,7 @@ kernel void kernel_bin_fuse_impl( } for (int i0 = tpitg.x; i0 < args.ne0; i0 += ntg.x) { - const int i10 = i0%args.ne10; + const int i10 = FC_CB ? i0%args.ne10 : i0; T res = src0_ptr[i0]; @@ -1261,6 +1263,7 @@ kernel void kernel_bin_fuse_impl( #undef FC_OP #undef FC_F #undef FC_RB +#undef FC_CB } typedef decltype(kernel_bin_fuse_impl) kernel_bin_fuse_t; From 05039967da783fa8c7b8bc51e80ae834ab1cda73 Mon Sep 17 00:00:00 2001 From: Masashi Yoshimura Date: Thu, 12 Mar 2026 16:47:45 +0900 Subject: [PATCH 19/28] ggml-virtgpu: Fix some build commands (#20341) --- docs/backend/VirtGPU/development.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/backend/VirtGPU/development.md b/docs/backend/VirtGPU/development.md index ca2e47772a..c5c85dfb49 100644 --- a/docs/backend/VirtGPU/development.md +++ b/docs/backend/VirtGPU/development.md @@ -55,7 +55,8 @@ LLAMA_MAC_BUILD=$PWD/build/ggml-virtgpu-backend cmake -S . -B $LLAMA_MAC_BUILD \ -DGGML_NATIVE=OFF \ -DLLAMA_CURL=ON \ - -DGGML_REMOTINGBACKEND=ONLY \ + -DGGML_VIRTGPU=ON \ + -DGGML_VIRTGPU_BACKEND=ONLY \ -DGGML_METAL=ON TARGETS="ggml-metal" @@ -71,6 +72,7 @@ cmake --build $LLAMA_MAC_BUILD --parallel 8 --target $EXTRA_TARGETS ```bash # Build virglrenderer with APIR support mkdir virglrenderer +cd virglrenderer git clone https://gitlab.freedesktop.org/kpouget/virglrenderer -b main-macos src cd src @@ -95,7 +97,7 @@ mkdir llama.cpp git clone https://github.com/ggml-org/llama.cpp.git src cd src -LLAMA_LINUX_BUILD=$PWD//build-virtgpu +LLAMA_LINUX_BUILD=$PWD/build-virtgpu cmake -S . -B $LLAMA_LINUX_BUILD \ -DGGML_VIRTGPU=ON From de190154c85d20e24dbeae8c8af1849402ae5098 Mon Sep 17 00:00:00 2001 From: Pascal Date: Thu, 12 Mar 2026 09:07:05 +0100 Subject: [PATCH 20/28] New conversations now auto-select the first loaded model (#20403) * webui: auto-select first loaded model for new conversations in router mode * chore: update webui build output --- tools/server/public/index.html.gz | Bin 1642904 -> 1642889 bytes .../ChatFormActions/ChatFormActions.svelte | 13 +++++-------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 3d0991dde0f1555bf82ba12fc81c17dc8fa588b8..493058aa015d15926eef9f15b49ab76090b19e6a 100644 GIT binary patch delta 1286660 zcmV(%K;plcqhyJrWPpSLgaU*Ev;?%0f04g5my|Leo<9U1|AVAkdHjG3WFP2p_wIi@ z{EzqtAX;z5?;nV*xXLIngM$8xzoX(n`}cmuA5Z_y|A7IR)(2kp>?BE18b;J)QQm{_cH;|i|;ct0pWrufJ}8V>u{ zkEHbvpr~P8!19{#VGhmvgtxw+e_^x|b`OG^^olOyb@MWSxF}yw$;(&u0mtU$j70g1 zD2Fp5?YwA}{Li|cTBKRx2x6L%nOLIcuam#V^z7A`zM=6CU+>E9{kJ++#Rf~|Tte;`@UZy&)o z6T2dbwLW^o*SNSQ$7MSX1`*sBn> z|NYVa_~mUtec)nwDy62rk?nJe;Y7LRX50z$H!v# z#^3xu(F%hcAd{3e;(XkCCa4gTP$ZMTyHn!~>DYKykEH(|A@Mm8V!s-4hu6$xVr)v%;`RC z;0Yi9xSRN%XT+g~e|T8|rF^)Qxc~_&2GD3d|NRdL8spA?1UkZM-=i&TuWgEVDiA`j zP8cG8@7V+e6aHWYThV5oQ*l9m&ct!Z3h|Tsoc#B{Q<=CRKPPi>gMCh?;=28u%f$Ei zlq$r(YR`yP5T~W*B!zMl={W`e;<(B_XW%v+FPqN=IMBu!e-`!Ag-l%0(L_F1i0krm zE}Ko~;!UrQWIjIge-z>(=lv+g`#Gp5Mv*hGAXcK210AWi~s1!P7+a00haHfF41mA(5&1!Mm`&k&E*A z;{>)M{FwKZe;(e4k57Rb@%iHvR|Hno-)dY5KoLODp#1+gPEH9_m^A^-%E)*3|NFy% zF;N!YSlB27HjKnB(&f32KjO>Tb28r8Jg4I(`&_u3iB^t4zJHIBLHhUTMqrH%6>KYy$!|zX#N6@e>Lxf-qxfn2|VkkVCV_8uUy1b}R_nSEe))TiSnwKDH_;ZX+grf#`pS^=_0{wa*cn8_(->{n zxV>G`<$Uhss{l{E>k00D<2YWI^#sDv)}-HU?MyekZp-}Lw&140e+c|naIxMdMBCDSqb={@>zZ(EV0i%( zAZ4)w9{Y?o{hLo-0_(C%Tz|bBu0MN;>yN{`TwEky1oA~+;)_DQY`iaD$(J?x;*c*c zd7O~PYVP^t-yh?r4gUP`G2U^XKmPMEu5-`de#C7lym0R0wIvupj2S~d91ahM^n+$> ze-emmQcN6)PtC{p;ms0=NkU;>n~(7!ditM?h0O5c$IDeQ^}vZtOoNllficvd0yq%^ zehslPynKNbbYP0>-P`ED)h0PKXcD<-F|tTA6|!+Rw1O<51X+>b0+Np5y$kQ9TN`{6 z3{*|i(HaaNKvWTO{&H_fWWIQ5cwd*ue>fa|>M`UKNGn3@5r*L2heRyVJ$5-Hs+Oeg zxzbv@a7bvNVcso4&|SXogEmY4AOHIwZ?^9>96@Ln1_BB+sC=P~4Unc7H~;zb)4lbK z7NLVcT`N*|zd_wUs4I%vul3|LXg#Qqgb=nJQ#Dzik_N*B12T&tl&XsN9WaIXe@Ti^ zA&F|C+vnsD9zOnFnQHF)ck=hNx&QR(j*nr$KS*0lFfQZMCkwGSi0>;VX@MHQ46^H? zT0#~Z-@hB@5n*vKqBob`@Wyv(q3*R1A<;eV(zz5UqW~ey!yc@}q!7@$;9fuX(g=ryWz_i4{{CHD}6E@c0>{nC!^eLRU zzw_oZ?}<*pb)dY7Z$7UR?z%}{6K3Ts|G-GXkHNr#%2%ZzA&Hj4V^B(ze+g^k^{x4w z>0QX}-9JHaMGD5X`#5vnAO9tTmmW7nYRcdef7-m1^Lo50MdX3e zmi|Qq3XuX4b_xp-oJwz!-}J|>8kZjNg7pMPaX3_vKPKb}NB^e`DKj>R|MJcBU)cVi ze?9*F&kyfs1Q8y{N_&vYKci&}r;+zI|9nXCB3SYO=sY=qb)(f ze1@VLQYc`XI7ZDsf9P@J%a?DFeoNwc%6}Zh@87%X8P2=vgB;v~m-1Ma%Oax5urT<| zdvx)@e);0@*#sN3mUmqhdmJE=OC$JzMhF<;CVSAm89foC@69g+8L|fK)f!wbATpJ3 z&fWk?V;k-YlQz!cq2~?vU*M?XyZEq{od5ht^Y+m-Fr38g-+fL;&(Mr$!tl>(b=xm z2jTm(V#hu45jIu$r04`o;c5?G>|Otbe`A6!cvwGpL@*f;xu`!Jy=x`Xaqz+)U}Wth zP2we*1Zs#je-|8LA1UB^hltJk;q8a7ED44XTyDMP^XGgrSG?@X2^5xhS|0@Lz3{2G z{2n=@3r_|JL?(Rts(Aw-WC0jjGgy@`UVR!;aqox9M(M1Om^j~T7oi#N3(dT#wILex zTK1j5&oS_<-CJ}3y~P-erWgzH9m6vzpm#0rA-32^Ns(satRLlsuPmJ7iBdx92W&~ zc|g>AZ+)3|cnF_7Wte80=NEqhjRgJv=@;{U8n{XSRLMV*4+?*Rh6q3UwaHI&Cqbvi zef1>{f0y?XI7~46WCVX|PxUYA2Uts@wzvaa`1AEX zK^-8wcfQ_&$Ux)jwIGxsd&&doNi#BTWL$avjTv-v89-2o^<<^NPmreMXm}?e(xCsD zzh}^M@Ea-IAv7YytM^Q(OtQz`0~#lLMjqnfe;&?qq#yiidEb0O%_}W^AyMgw+!;t9 z*y0};yLVj^91jSjr8A0WaIQQ*d{A=Uri4@o4ysSIF%Lpqd%iP2-5Kn6-M;tWFD^f8 z!2jkaK%4i>KFfe_^HbRj&XhNr7klYlhm5y?f3TlEq2=%{05$Xlk7Q_%()oTMoeKJQ ze_j86g8i#^8YCbJZ_$G`(cB}73A+C|kXPenO~=1zf_#+2GvlogwjC#jxsM-65r6Y- zGEK4!WNh|%P|UOKMMIHP8?t*+kVC=1B$+HBgGUwe$0z1|PjTl3CnKn53S1eN;@S@*m*u<)cprRSg2ALLw;VSVMi(20M6Ex2Cf zpr8j|{IjbOc8j=jT;YPRoYx2eAFrElgeSYeoL^G9!b*Q@arvKcfWc<@jhwfR?7DXE zDR4f0lCeyePlUF`r^^enuV~Rne^s8%0O|Qj@=ucH(f3k>cDX+n@dpQN`ta~@X>Z57 z=H2~2I8G3m7RDisGooba}669iu&V61ZH^JLyYgErP=koVQ2sfk3KvPk3Ca|NHG@zy#MDIXvE6!T5mMfE5q17a%AsvbK?W z=Dk-6R7+4QI*1=Idhk~AOR@q!u>&enQ^SLK{^nCW_y&lzAW%PF`oX$LU<`=D7PcwA z3ibz)1WW7(KU%AQT0LasBllpi&t!iATMg|ATS>ZT;A;J<6RyHvm*1fTo&o!pexd}@ zA2IGhM`y4Ib~FMA!0Lgh(U;!(7l%PccxHV_0Or7jmv5s4gaLN9^rHk80Rd~53#9~0 zf9D;L6-37ciEmKt%LAsN2In&FR|B1asy^e{T|Vpbcai(PcQ5x|9Z=_=bFz%(@acyy zxG68;&*2>nY?BUiB&cXT@d;1lG9}~767DUYAjW`T24WdcBICUP;p_eN*|euWu}|LL z;Ntz0BVrtz{3CcRD&D{PMV{l^LU}*^e>?u^Pv;p+>#dbfuWiWE1|kk{q8Dm5APPVV zc?gJT3jiF!T@cWT&v*-nm`b-p`ryr2h5DNQmLb1v7+8-PN ze^S%uYKcxXyfp$U6c+K=Dd}3b`RSA7X$?IkHKkEQ6dfsYU;sX5nQJUqXgo}9pQ_7 zP`~OvkPdkVB#_bh52Vk?(@Y~8Z<-~|~Pz!TxteX0`V z7o^v3mJchTBt&9wxB+a&NzhF@Wy~UA$E{he-8$>k-;!t=pz1f zuma)MfPoEh;T0M)9s-jxk5BU@s^qP2Ie1n${Hc8ZPH37x)Ibjh&o3VUF%M1(p)s7b zf0;+t|5665U3BroCn97zmw`z_C|&Z)c=rL!k3z|49L7WUalC*b5TMy3Um3D!o^L}a z9Skp3I9m{Ns}NjKe-O6WpFR;|ym%B_2dhhHFTeNmkv)Tt76qR`#qkvMHw z1WQaN@ZP=l&b{%*_3HbQ01tYoji4!S2|Ycz1zL}f6YiRn^l=^JQIK(*l{lfU0{nLn z3F|D#A=1+y;A&n<0HbsH_Ig1vFJA@~0B118Z|B*0YwG_Ce<@~&gE6k4LUefHsIF1+ zWdY&2ga3;d^iD3!e85yb6T5&fj{dmacxxpQU9B%N79lbgL;lBCw_SQP6OM;uz~CV%csMj=ZE>_O2!xbC_vErC#-PzrTj8kxwZwQJ4)vPCvwcS-^jvbG$Nhz1%_Byo?P=5F(y&5*dfhxaj)`he*HGU~l6qErW->&B*3sJr@@q`M7|<3vlWQ1UG&O!+FFF0w34-f&B7M z$fNb;e+yQM@lALlGsWHnoSTpFVVQ9e4-yZC0GkpXMhdw?lWp&bCDnH1>Yfz3H zfUq6>_P_a>R)7lNUGuk(=u@vqPv~IYyw)Kef3k_QTc9(+j>(=#%f2Uki`UIWBrgLF z-zL9_XbGNtp+SWBj5DZ&vM>KyvZE?TL@ejsB4Yt&kNCQ=q~ZnR zL1lSy~>|&dZTQisr&>JuWFrznufL}t3&;K{9iM(k88&Aicby$=^ z3LB0ZKt&gc^x&CeU|qZw^#x@{D6EU${Xuk2XM>t6ODVsk1Je5XHCUF=66t&+f7`GQ zaYIt>%N>!Reg7V58g04S*{Jf-v(oZyoI4N)1)`+DtjWIUg3mTz-o~J)Z*V`#U0Fl} zYkCrSf2Y3*9-@AQz%MA?L*)dEhX$qaal9z^JVVWk2_b1b3dFeKBBfQ2@(GNs$;BSX zB+IbK;?CYgY$2~Z4glNu0@a=*IGzeg$A}TUP;eVe=fNFF9fIY z6t$~^b^3%*L4Y*K4lV%SCaM#{0sG7Hl2`~0p2Ek_C@K)^)xxFvvRK~zZTtf}BrUYt zgnmN}!Tr;xj-PRpDCYkdvK1pOg5lg1vF2+isL|~jre+>9x5E@?mcuOFG zCF>d3w-N{-BVMgMT#H$B%J>BSTM%GbwQ-{_Eea z!x0e6BhY8xu(Kb1?<}kWi>m>;VNDgJjcpJIGmQF=BzegrgBhIKqpwJqi}MSBJ@H`- zM(!&;p*9KzN{HCNzutZh_+Ot0#ei9#6gn67rzFP#3EYqSf5#pnB>f_x1{1sj0i@_$ zLO?tBj72A!{($84XhE{kpnm-g4#$B3fUw8K9`p*D66cIaH9g?#0Tc=0@4X8~NJijU zbNNe1nnq8`*{s_Kjms*)?9lJqvvE8Rid+la_wR!3jsMGeJ;|MLwMzOkV43?u{9M50 zfLJE02AVhMe@-DHnDgiX9~UjNS6u{}vCpLmpKD8B`~r_+i224m;xqZtB7%8&b9^%h zMRdI*_1-V*ZN{fhQ9$#mM*zjfq=Q}dh8vvy7rW@g%z0hKXYLEGE)*iRpW&*CoB;*WsfW57!>=euPWH{)l@fb7ZnFfA=^r-?_kB+bi_0bGwKe)_Z~e|!Rtu*LB| zAiVO|FSwnsj2}rf9O6yyE!Wpzxz1}Fcb@w;e+gbhj*I^bL`@4(7&dt4V8+g0&tD&$ zPoH{sU*jHq;3KjN(gIW3A!>afK_V6o?x1iom#?8bkUK+}KNiRYBUmJaU@=%VL}Cd| z5db%yq3pdKd;_g@$NKmeAmbBe0K%X(*@L)9lp10(NX*%y3@lHWEKdm?_m8`=+jE|s&7{`rqTpeH79EM2G zi2C}nEcf5=a6tGVq=+4D&blsCeooX8(L>OV37Dsu)}6{Y(uPEfc_5L5OB*lfs4waZ zB6CH;`tZ+vXul&btmi2V+b=Jkj4|RYe?iLq(KC*#kR&P}J;yqXIQT+L;U|dt;{luZ zX-rsCkE#6nl|@*wT`2hSU%;lJPXeh#Uc!6bkl=L=dplnUN1{G?VbCIl!Uu?Hh{J?u zLH6~l6~2v1<>0sd47?C-!VBFXnIoC_l@nIY^Ysq*bL^k4XaV>rUka#i6j)riefj1L6+9p?>#>=(E!}6!L*W(p%g+qEHTOxCyaHNV15pb7K?QJd$!}66Z^(VFUXJ zJ&wmjUfj&DIoWQ&$esrpkoo>V!xp2CpcP08eVt`!8}aeu7tdq+(IV&*gIpS4emzW5 z=-qKHBS#2Cy~o!CoUhN8`gShxf4~ntUVNW+h*pW%n&^)`&f>E2o_G?YhH&DIp-ERm z3uU%n7)Z29tX+`Ju;mO!3nB@l#lKQyRj)a9$&>NGtrnn#$c7|dA66+6kz;&OyGN|! zngOyPt9TJboWYfZ4txT9Aa<^RcV<+%c`oD!><>w%2#28IQFe>r|={&7envQ-a6!s5O?&21 zVWAeaTbEv&rTa#0(ITN~I~1gt8nK4Pnn7I_h)g7W@Vy7&&~UM_H9qO#?}#%WihhR; zBX7<}0G4#fSI9=;atSX0&%FgAI6&WdIRSDJ!(d`{{SD_LGz2DMLvlf_ ziDfeX2}Z}kl=#r=+TZ#BWMM=_WW&)3g&x--gXoL>&xX_95e$cC5(mmYMA~G~5t<}Q zw2;BYz3Bxdf1{rC6A$@E<*m^Lv0;(w*NEE363xk#MZ71Szr78}=zkCd6H!5_#M0pb zp}7q03+zCA4CZ$PI&EPqd_ITrFpq7(4bzGfFL{^Ttp`8i%)S+Tnb|C zpa!`vSMkXa;%prH7QEgP(XkFZHo za<~L^u`6=@DtPm{`Ia`tj2j@_zOR;Yo#uk`Z+2_ zOejA%?*>r_@L#-r_1H!b@#nZ!*TJ{EF`Z#Q$R84p4xsLj_6&U<)9a1@|KaW2x7xb0 zHUD?_Qv{Wd4+`7Hu2khzNmeu*2PdTBOPBq)1TKH3^p8>oa_NaSu1_X0tJf3aFCFn< zh*;^o9VkwrRuzmXCw!gWNd)um>zgMw)4k0dxMt%_rVX4Lh=O7uC}Q`snmdqrJDCo-~*C#hbW{% z-Zvd`TVLB)9_@@PiRtUz85Upfe$t3?@{lrjeOl~Q{VDYtSFB~_@X_XVm8>O$U{@^Gyn}YQX<${wtT}#g5 zcdIRChhlZD+yj`P^7S5^iam%+LODFTQ*m+ZO(8WAKofZh*C;_p4fS zZ7PScBuOeb7ov08`wi!ToX7Co(Q~&A9`v&w4z&^j(f5e5D#ojjo3=Z$bsI+k1-(j*=@cYB*fEI?`LP;XMVBM;?q23Ydna7VZM$W!s=d2e;ZwrAAZF@ zFQ=Tp^w&B2i~8Xp0dIeuuk56NcRW}m@OhMvaUiX<4>q}Fwne*b&bHjt8k_zB=Zw(8 z0|N_kDSO3?vMDXS$qHLOppbg(+@{}^mCX-p=L(hcpcKR#q@fEQSqh{Wzk;qetZJl;h2B z**xNV&$O770(!m9AGz7=C~hh~!$?4FY12@}zG}^c#B{_@G@WXl#eoQ5;Wu}tj3C*Y!5VI$#_Zs4|< z^NM4LRc7Q%OkM?b^h*!Jmd^S*3_gn06NsT~91mDl8V(a1iUr~)O~PBiKBMmBQTog- z`$XHCPv2CCEQVRSf3aZ%ZnA(C7NKU}?{~FLR@#g`!ht8GjAqU#(}gX{fPEQDJ z^*ivtGPaA1S7ps!vR>#V^u|;E{I(7yFupG z-(4=Wi4HP1x z17Tt#yNOs%lHMn3B$h893*tX$R)W{Cpyr})%8bwffH6ybV2QjMkrG-nHiv0%6y1-pM(PuX7=NOxm@%tlP8EO!;uS@oKi28rp#F?q&0X z!sUJ{e=N|Bc@EU}AF@MBRQ}{=h~74hM(lKn_+^pbSZgo0zani(mz|`0SDn~u zL{J(CjP#8eV5vQ8F{cq<%GrgiMt%~s<>D#6cJY)dSD&l#-;aev$Q2!`qB%CsrGI^o zX~b6l$Uv64l49;@ZKb03Re%pgl^>{Rn;^8>*$J2oq5Jy(T zf64TeJfxGo^fR8e-)2*270kfLWrLr*&RM#w1APd*CJ=!nyOXKqCSaI!XoKUU=hL6! zxK$|y!mQI8&lzhiJdj7zy;Hz}t;zJ6{UR*{iT-FmWwz|J>|osv@Til}PMJbFmfG%x za)#i|H2=Ay4O?-<>p(-MYkcDFhtXcXCi=vWTh;t{*Jp00#ZR9ns#9J2Nl|mg>h$~_ zlN%`7Xf)}x?8MWT-oOMFe|-`^@)NR$o{aRZN~W0a->}m!<8-UY2R3XBei?43KTOX@ z$E28)v^9B+h|%vSKH;&3bJ3|~ZxJT zuq<U{ncpB| zKTA+mbsKlJAc3G+CYA`qUHf!tG~Ub6!Segnv1NkJ7(6jWcU)b)f@Q$D zr%*?hv?#I%9DaSeBd}$1=ejikaFZ)s;&CZ>_{r9(j*SH{W_XKzy?McU-A)U)L^jXS zVGFo&Q1{%#RN$9Tf2<3}nNMA-3itD`I$3|Ri_x@$9Ad^XTzFG&$C1FkrS}ycZRCuU zn<43U8SXLxhCqrIlFgWIo1MhX>p>*u?c(b*=-CCL8Lt4u4 zbbu_r<`cG%KGNb^?%pNX$(6b!C@t@_FAw@iYNp+_e>+&}EMY}ssC2^DpMPQ%8PU5Jia*F>}7KlaS;%BD}$9Rk{AP!))>w)kq zS724Pu@HKWqWDPa`7=&M8;4{ZlGQBlPuSD2RAGy@GFDI+7+IVJzGy58K7%I=?u|NC z>zD=L*x|j#QP_dfSoulpj9izs&OcR27zGc}f3oERH3V*#8VPUjwp$M7P<*5=nV0Gj z+q^juTFSze%rLioJS)@NM|UnyuD`l-IjKMA`q8SLd|QqGtIZ>sfXy^w>K+(o%s+xb z&R>WreAQx0ZG3cH9O*{*;u02W5Rkl9#Ao?O6`44cU`mkc5;aU%8=hZ_z^GpUtX%Qm ze?CsAbB@Dmpm1#fCSD-J;u^>ng}0&%T;L7RvLw9UZ5T(m|1k&DjrkYgX3PBP^{7oC z;VLwSb^9A3#snLG0YPdZ^ByE0@T|ADd0>9*rKwrKW=z1T3Bv?kx=e)@%I{k=j#>3;R>A)1 zGC!f25lgmy;K6V0u4qUi@@@Ik`1~8?RFq(0a214=oqVvbIIrvL?&0!}`^y^}3jZ8f zRS^zdgbi)+v9O5u)nhF_h?j-O z1Tho?Ns%ZDw<}2pw0Zib=r2Mk@7h_n%$OJeWOaHviyh;t**+ua&`Jd0vIb(9~(|W0Y z^O@_H8p#Ab0oRvU$pl;hk(af}1UD9ILU%-4>M7Gkd@yJoej+2B2wwWL!7C`94=M)BTN!I&>SBg%4^pfJeEm0Ohz!G&K>j7VAK`#tLEm2Y^*_C2l;&Gwz zqg&Uq`Zv%M{4+M?bMcP>zt!-Mx#5fBROmeqR#$ z@_O&xYZlB|f8P19!MHXS`^VMu>ItLI%v=yp>Sh6a=%30d{hn9rO!YMz{m*UMTEnpr zA`^&mX9gcrY{ZhA)SLBjev`DyDA@J6ZLy~%{^@FICV}F-+@n8Kf8T09ownCZj1_<}+oc`Ds-nTez~1R)>7%mcqcg3FH6UVyW1M&3 z&QgL^*EZFmWl&oz;-w!ChL+PXlsDGzSgM%biPtj1anaIZnxZYU1;`~+9aWH$R@)9L zQ6p_DI^)s2yRFf8f5hUyy#+n#5F(syeUT5H{Wd0|WhQBwa6*>4ehlY99|O=Zh^8Tj zT3G6KLgH+^$bd<|_p-+7c@rnR?#Qg-p7#3U_OzqXZQD~m;pjyF48yJo5gBX74&Qay zX64vPIqz#V?F??CQwwwH9CmeMZt4h$ZXEY^ETD=nvcJ|=fBNCESF{^{bWwl3A)Pmc z7_9WWq=;E9<~^)c`LOJ^Q`~+ZZ**F2 zE#}h>&pYQ-lTu1Ei5qkwEtijGiR~>G${BvsYOQ-b2r8 zxyJZdtMTz`e;Ouy^14}m+6wvOf;#IN(}LXMjY z8uGl_Rtlcnnm)aAku;h$yM{w_g_oRqF}g=oYJo8==U~TsrtDApuI?y{JxH(a*5sc0 zwbN}cr#$C*G9mniA5)H)-l2DVP=eVU$z?aEE9~X&fBm$<1KXcH>2AAZ3-_#&MjD_h&Q+9ySr;^P#i_*|=Wh*-{135wr|eqD^N7sAKB5I$iE zylo*Zf0oSK@3fhFZPNaeiVgLe$(^7n4Hmk(N%q?1{g?sq%RX`TpjlN zY+3#OPzqdNUb3k{5?g_$MZ3x|or^(!bx@xNfB6a6kqx;>$4W3H@NSYEiG8l`?wn+9 zkevHE(*u!qIuj5n7-g8S7n5G;+O?@}wM#kn7Z!ycZUo;76s)^=i*uZGVm~MpyAMX3 zYl^lQY930xjMx$I?#KkKRu{H`ERHMhK~kdmhcVU17si^MCHXpO%yc1OTfy0JE}AhN ze_3#L97IYGJr>SgNy#CqW}FUdjog4F2QL;lCf$Mw9eQ-PpvxiL=58h&P4C=wd39@= z*4>Ybh&cv{TXTE{$NU^$UH1g3^6ex1(YVh~ahmJbTamCJUA}#E1kxui*w43#mk{?j zJe8IL5Il-g_@Nv@&?jfE{i<-+B%7;&e+woy2D^3<=`Zl9e)OGpUMj7{R-EDaOtdf_HhEz~L zii<50p_G&>CsK~nbC!A;JRxwOcd)mqIv%JAyy`}kO9<0A+~jqPXA=u*{do#6!%@P9 zHnyd0`xdSBf?>V`xO&oxwYRl9pFgz|7SN&V(|7MgCsy3>!q0ffN9m5fe|L}d@CMs5 z_n05M#nl>4Riup>A;Na_&kA;7AnhX{4@R3pYn>>i%*pgew95b&uV7`4o7(r^12q*~ zqyRr!h)Q}lK1hYoMFqN4pccfy1B=Jf@3j=5np}QohdbpZ9%8Vpi62V`&Adl54rAsr zuYm^w^zp-*bKLLUc?}80e^=1u<=6q^{qWp9!QOCucRRFERMX?TJ6ScAZ4KeKp_`hfKlf8i!nDXp<=T>#ZbnuA@Acze+ioEEfQ+c`VNLO z7$@`aJ3d^&$49adYEi^19){EUHiZmuQ(eSCFMGomzq<$1H2kO#T3k3_3bFCRGJ~c^ zQmxV_$YO2pGVwW8X;xS1pn6bN$!_y1S;2arNKxFmUevN~6+G@cAx|U?^1dK5IWUW) zCUpF9$idq^%LZ zfTQ%(_4eJna5-6(Birh}aX~bB3u%KJmJ|tZX4Jb-ddiUVluzejMxxb%^is&cJM1pS z@ER8b8UOfPjV(pcU&Q8KU0Tz5n_7^U#O`QKAfPGZjNPDhf3rwIW8*I_*l%qxacrF- z$J9a&sU`gOdq8+qyR@c>wJ)min_#E;ogDc)_~8XlNF}4W4>vpE6P-h*Eh{Hdx^07} z6?%!x-LRy;zK#qGQd~_g#>`$KFEQqwEe?SY&<@g%Z1xSDoEi?uo(B51Po-&wWpaah{o|D!`4K3`iFufrvkioUD z7VGyZA6YPUKv;Sw_b{li@T50={tO|Id*&FbtBd%&v!vXug(-M9>ly>ZP9E4DjSrX4 zRv&(O|I5bz{)Ro3(R===H|U;c^64kNot5p+_mNf4{)tKl8 z)cpAXw;-ODPXN*Jq8S1j6&^`JtwB7~Da$#SHTSK38bO=jPQ2g1$apPoV#3T=E)bL{ z&F=i@p!{ha2ehS}-zEi?GQ(Sx7o1s?K z%x0l`YABF7rLJiJ!@xIQezTQ5mLmqEl(`COw+x$RC~6i*z1`fAMWM zX6EVw7>-FL%W7_CQgjA+4uJC<@7r+6L^vl@OFn57u6#{d(k!sa8t<0+)mc@F*M4W2 zaS|l(Mq~A<7PKA5vRs93@^qu843=*{`yc=F&GDOe|L1?dIeT;ZbnWTWw?!1?Adkba zZ`4@u7QquvHl@)3zt;*CTp4x5f1X&kfCXcpsISDe(ynhDcIc7l+yphq@_=aF!Y@Z~ z7*w<FImQk+k_Req$(Ygzk0< z{Qp|44^D{g)n@>+ar-)4PP$RMPxniS7c_?Au~93D9k1^VyvdH+W!%*2oB8K&R^NPn z|MUJE{g{8gx?izvg$fJuHwPhY}!_mLyXZ1+xH=?6N7F$zXrL&V}Z5`%T08 zrhrfjJq zG}=)_E~W2Km|T7LO1ir*RmLv;d+XoPigotiTReH-_b<2lqHnR^053q$zkh9>o!`4x zErA79(Zc2jR!4qA-O}L}NiPI4p7!?g%(81;I$mKf`=UsafKsp}&3YOu#rPH^IU6^m zwjI`!MWA^RU{NAS=arQJ&Nm<5%RNcrM-A1Z749c6pvT8sql;~!&UUrTZA=zmkY-`@ zBMTZ+EYL|ZkxDa4(=4ZWOn=Lfoz0`Ip!>1RceTtJSe`NghL7m0D;eJr3)QTpXAHi+ z*UHas!M%iBU0sPu%fPusptqHV)kOG>lNa5UB1Aq4S4?#aFIaG>M zEewW^sFE>Fa_GXMUNQuZ_(v5|5AriNf~!~F6gjsSeynuGbHv1HTxCMT7J^Dp&e!I$ zoRcK=o0=gODdfS|vSOv4(we#0Q_dG)J;hA=R8PfSxt3_~N>@UA7fDe@-WwXi%_VWd zl4vc5h^BRM!ar~krGGOIb%uXhc{89s9lxyazh!sd3FAx37;=372s(-Jj5vK;q#MjT zHfw>6WhR}^o+yi3_UnZkdS;wJZMhYcDrh9bVV>zf+Jwv*vUzmjvFHxFPcJ0l4xlC0 zhoZd9;B$Swyrk&t+Lh|6cigzHon0$ZL0x8+Y7ZVT*xf0*G=CRf?2u0fUEM`bYZi5g zC!0eMMw9nD6l%09NnE2`q1Y@@Cy-_6XPxJ!arD#@By~0;rP)@I=oiZd;3el^Xo}J_ zK;CJIuFl!ejxFzllY_vSq`!%FV%7^*nY18O&kpjb7Z`mHeyT?1f>}I{skdP%Li;Hy2dvU7gN+vq;@mM z=VCEIeUb_?RscU0MWq{ZVR1rqup~oFxiLABKfm* z@`v^3|4^M(qEtUC*=)ylS^Oqa(llo`fBH$6v>Sh7?Ih1^;<$odEA%@^H#JY{^#!R> z>K7jTg@1;Uu2HnW;{r&bF>C@=io2Da9BPNC{`bGHeze7` zYk!j44u~9LMc6a>Rz6K%9Pi@~M^u@AZ@xQL(Myvbo>&Pqi#JYD0!NgktFAqy=klAIpFH7-PqNfm#fvbL|#iv#eW^* zV)Wb6-h6e{9NY1Yuxl=k?I+FmZzoR5)~=f>mb z(Yu4IEBPs7Ls`?bz{VSU58awmZ}u5sYZ|m`TI~!orDLTbOOlf4;qeOIs<$|rsYyrwpLs~OdvBR+87Qx%h{Jj9xr43@R_J70LlUFRN z;UY^WSy!}2GHV>>#4`Im+a7npqC3X0i_L+G);W2P@T^EuI!fu76ZOuvr1>zAG!ve> zSSbdb_7OlyEC=J|Q-1t+o+YDeEc+^=yDclU5w_82eC10LZ!sZ^97gGL}b5>Jg!a!G&7xjoa_)ZDkXYr7&3R}%o3aA3EmxJ(w8 ze_r(a9^IcK%R}e48X%-=TGZ7rlChAQ4JS%eR&_T(gLDaN{w>_oxpUNTEibqHdbe)4Xz zLuI>6S8}Vy3AJna5#I%^O;Hn?fCQV$ZmfeMOqM;#C{kPJY^@EpnLvrO3!NY!~s*g)oC7TAjiC%~eP*YE*&szRVz6X8$>)9qYFlUu2v# z4vvyF|9^FvCMwMHY4gfC+pFIa?L_uyyAJ^&fz0k^1ISiTf~)eSzB{#xGdQj$VOaad za8$Jk(QVftSPDo%e(epq*P+NJsq@za&Lc``?E&;4>hCltmcGd`Rpr>QBv!kqdTdGD z;c3t#FGa-v=>2${y1S3+B6e4Le{O$szyLy3Tz}RNTtn?{z5!rf3H(*R9YsiGf z+v^Kc*uRk;)J><=9aKLySw||1F;k9xIYX|lc(785KC?5iM)`muzimIUWK$kD9?>U4 z{|u|snei1Pf2JPklrbDHZlb4cgaGixozWJVm$BbW;R||Ly&5E|W?{^Ho?XzX?@q8B zNq<7aCMq^oi%y=N9`EvdkcU_?MgZqo23WpIPiTXYM*nKy)(pJDzKq;S3{vkhgEtPDH-bpkR&8}aGib;@AYIFh}KG95=&+9~FIr1Z|2_BR1 z@nTtF3dB-#*~{pF>3jA%MRa^qc8RZ_QG;>~?4Bt5d*p^s?Qmj7FCf7d?!!`RWIw() zq5jp}9JL&3jgir|6K~4sTUEaCf`3K@Cbg`}|Z;99lvXuV7dQPId$+xF@f;+A<@>;^5*=xuD)T`)FS<&%Vy~u$Po-q z@9HRzle2{&4pqm7Oiv7k|}S?(jv--d6W zI}sfciL3hC_s@_x;D4JbklbZz1*a7R9HBfYpZ)OKtCLs)+n4iG=HD`B0Xs}Y9cC)$ zNE%{L67tNSMsN@|`2~}2H<9k3O(A5~F}a9(^9Y%)$&H;#&XPUFnm@DxV#eylzUY{9 zE-_km#Di(Oo!*c>4BaLu_>cj4SK5%%eTslIi%0Q{j6?4)`hNhsmjC$id@7Zq=pnzV zc=6nI&2sc{^`rIuB9{#MH0X)$2eE7a`9^2>Kv|%22huVUWGGMwjTO>ojyV-Q8a3uX!>%!5l$0$<(6H@fYSCgPHxqnaFe+R}nAEWkOT_MSOvI_6n8XN27Y>q>Er1R=i#GgaJUWj~kqu$pm zdy?IwR!+cgsub|3bW_yDmoKsjl<>MSGZAJpWYcgsil>c}5n2 z+P7w>@(jq&rA;ktRkszLBuPxPmOV~&%y99#nl*yFUVj0e)&SAXXLH7G$nj3l_rJSq@3E*JsvBrMfBOn(?e3)z?n?P z42v}32g;0n`9odC8fY-q_w zj?#+q#DDCJi!Y`+wgK>;6Z{?2JX2Vvu-4>Bi?NdJ+1V$PoDKSH*zOO*N8Roy z&E~wv$9YM`Jhvp^V-k;hMy~rGYo7ll1@oER`+p@24!ml#mn3s+BQ;sM?M91jtd7lR zKG+!b?j?9K(!$m`75;lA3~!demBJXE2s#LMK9!wf*uet3qkoS0Cn>$ZzD^0!-hoT| zZL}Omd^6Fg85DWBy=}gn?QOSo4Bs(le{`$MZ?7wl$%*4{Usov_$XD*?KgS6h9N$E& zIDgCaopk5M@O&^4h1W@E_PTm^$d?URs5?8eih@6MUj8f{$Y$8UW>x3w*LLRcFkUk6 z-1$;x(mSWS+7{E%Py3Z`MK<`JzK)|&=lMoOMls}pAtK2H%}R?*=gEMBXLkO8eXTC_ zXirDV(b;*j;jxt8O)>I#8Se)CJUJE{*ni{6b>+f7*j9%GzZ&jWbdKfeid8SC&hUfP;TDy)`;FapWV3}LB@Zb z>Q^sw-w$3q=fyfXe&-vQ6(L@AtL?|ZAJ$e!hf}!bjUT|P+3Nmbd~(lnK51mE!a!eZPT$2IQF>WclS77~#IPj@!P0NH zCd}_+g(TF;^e9X4;RJF4Mj!VM56{WWCcn{*+gJEg#xeZV%+wbl{{QypzY=XAi~1fS z%br}fiBG^T6-ID-zD#2ob~E~(TBY>5!U#H8z7+6|s@<&3pIU7Uz=Z)l zBi;&shfA?)cQ&Bg*NGv?LZH~(J$N~UR|EKXjQCpoWjQWxaIq*+$I6}AQVt{V?eUWt zo{pH$X@A4Cjl^-P?F;&HaGAuedm9nYyv`B%@MJ{_Iw;ZX2NL z=U;sB3!>q{@c0Qs^YO{@J%56KGnC4(>0h4`=c|NrKaEG{GKOTMx(zU<^4}c8j!VjJ z#c#B8aWZn|k2v_jgSE`p#>i~c1f)UKWU_hh-Y{t3oNY+2P&lS7K!G&=>G&I)n|}rE#y@N#Cpm6- zGTkwz{Kbz>PW~e4DPEh&qwM@wrfo|cj!INFbIvdaQo`Tyuh&Toem7#n?Un}+dax`q zf0}t(H=G@ZHScJ2axf(clt|3<>*}iY?HagNp$PQ@x`tWu)euIE{8;_V*V;5Op3iQ= zPyQLpaT3$@q-eM&wSR-33LIYy43VJF#}rmtB&QL)KZU}o`!BUQp()Dgd)>3$3*rgF z$tI1bvcq+EmX%1?7kfjeLR z#ab)kfQLQ0A18LTm=i&5v;lmF%DGD{>mg--Eo7qk&+Lw(b$?V<9A&i?X5#HC2B;nv zwP1LB1j4b9wTlEvk06pcp^}>k5NOF;aqZmOh0RFInbMBl8^7~o;Nxz(*{W@rmYR`k zS+i<>mdOv~H&7$CyYeGt6JAt$Jx$xG_-<#ITwE$obj`p_v{OR#w@6P3d zB=d=(&b=Mv=zp!Z25v<~B#e4=jCF?JCimq14=os@hF`|T?rXT>SM{~u`FWW={8xJ` zHuQ=B1hHvRmMnsyx4BqWL?7R>Hu_Bp6pEL{2}R((^)J;9g1O<+S9AR5t*y6pFs9f1 z``5kIUzXo&fex%WE9;sP-vG2arzSi}gq; z#+&sRmw)vbH|s$#i`4^-`L=qjZs|n^wOvZSrebAsd2E%c-Cyaq-)t@Sm*|+)v@+4) zDf>6XX5!poN4w(l=V3-W32`+wKoaT04P7NbuXvkUHXi!z7Q`6(y~^O|6N2I0!}&CS_)@S2 z1yW zi+^M&J9%F`HsP@*ECGwMSw^A&B|J?}Dt}iU{APla;@Xpx;kg5{lrc4mn~X(L76C_) z3^%9u=4NX-l>DK#R=~5`pSBhNnpgV!xv^5HdaA)`?WD|U-HLb`9eWq5pnH8A=PmPPc@ zQo;263u*F4>m$G&k0odLaXpK0@E;p``VvRCmen|{J6YuCq&WBJNYQIx+XR&&DQCo zt`rp_9e^HQ>SRzR!N|0?!IX@q&E;=+D8>^T?UE7^yVxgU9O`{C*E z%ZKB?Ai}{cVVLUi`#-!FBh?6Fa{pI@`d0Jzz1GA3_>V9C{Ken@_O~zp^4Gt#s()>W zuqhtw%qPRy{9uZ}{Lkij@_z_pxu`x28fQhtg;C@`8~4umG(^x=wYFEDrjC3zDgIv~ z-qoik!?W?enblg=`5wHc!&wKyb8~QQuRc{l}{EJbBZJ~gkV8w={};^?e1k)9^a zm3~Pq_R!OaqdVZJ6n`GE7AGiIRW`$h0N$b+0M?VqvMny8!BHw<=dlIYHbaBWOjS^% zk}OY^F52f=g!qT9Ws^|)cWwDA$Hm~MZy!hJDh!#@Z8#7h031z+B++RO6QgZ1jJ_5* zX?m-_{7F*RYBmB*>(Obq6&A{eI3kf7fHRuX^Y%}7E~nSzQGd2W*|KA8$PS`USJs`* zMRikR_1+R;t&mh)UA=oCm=kSbVc1O#|9FJ8fXc8pCW(E%vRZ@|w`Av*J=&xk>=!=M zlmY8z=w=JWccM))TOcl_lk)Z`M0N*vmk()Dzqf&KJ+OJ}gU{1lB98V2WS{khE! zks2@O=VOgRe(h>WYIW=nE{PE~`~)bobF8Cr)t1tH`F~+Ij3#j+LzCnCx79?Q?>9Cl zY$+;)^bm1HEu$;iZ2U@YkdBx$;H38N=Scac?J0gM*1^9H5)iqu4vh}3RwisIN~*gc z=q~MxTeir#EdRQ&I5-H+b4SyCML7i+U9bfCem!Acc})c29>c$JaRgEwcT9*&h1~^spCWB!vX$7 zxqnmKuhGK8C9~V`#a5NfZ&sY2YZn0+hfT%0#w}Ax4<)F%yBiu;xpy3jq@!Ux92l#R ze3PBOK6p^%Pi(yI#v|rMZeawmW!;^iEsH()W>~Gys+WWA0W{v(C0lGL3f;fDTFr05 zV)bVEP5ZMqmv64apwM^}lioMO-leTE7=Hz1@pa$5sTKY+)Fh=!X6TGMQj#o|8Uksp zD_n?=M1r&}DLGzK>hICV;SmHt0(PMU@(B>iJ4bC4^m0(2k@=;gTB#WG2!pxnv0jKh zlHKhyRkrqR<#e6xYbLl~L=Xat=BFhKf-~cJXO~b3`plapU`$pCcCjeo#7a1BmVaQ) zbF&DT&E&MGHi7>kCZ@=Iof@yCHSHuInaB4i?!1;MB z!k&CdczmHVkN4I-?vBhlc1xvx7*9TY;`Cyb;4OHM{tMn_w7v%sXr)&2Uv~28;c$O{ z-gyA1HiLQIU-y0mU-TXj9e{KtMG(+`_P*GU#>37oL;a^8cal#yLT`W|{G=+%s zgY8JK_GI~xvRe@0o8dPHf2_FYzRQ2D1bDRFyY`tKRd5;lRbuYA@58LT#g6QjLJ73+ zdINrBT{Um#$rR`c9!QC-tZ|6qYieJab0j5NT#&)$FFbJrNQvV!Y{jp^d9nK|(!|?` zoXr^&=u%O>fHYb>Bh?Jg6Xp`gY0Lg3K0cRlODTD(8ra_ZbWneNJ*Z|6 zs&~89j{|UBA&(tBP}K6i{xw1Jr{D#zk&6S0_-RV|E^300`d|c-l2HWSUo++VWGzC#2&swvRNq)C z%9r-VzFrl<^Asb>$SQxet4v20m2o(_6gputtVE0V%5XtZ=Ph_bH- zDVLb&5oZtb5e|c|=~zw)p9_xEEpaCAiNtAbZ;Lj(ar!0PPUoZ+A$Whh$K`K0oAM9E zoiTTek>BC~8bwqpxI_P_q|SFNd`6?5jG|2D^Kl{AN>CE(V=luqMO^MOmKyA?g^T|b z3q<9YUQGc+d<3k3Kl%EkzpQi;-iXiNFKgH)cP*Ip( z6|u!C#tO-G+1;C$g-b9}DuuWd`LnDR}jyzUgxu9gjRG3PuZUm{f9j zwtX`FFq)vC4|lb1yCQz0&dcgDcr1<1`{0GU%i8Rc<());6-T+x>kyV)?et*yRPQOI99?5m9%-&6g>oP6Gz4~x^#wL zNq{6l-_?0|fZfqVhsc5D-Yg}w+Y6~bH9FT_h zl94!PJGdzuN35%)Drg*BY-epco=#7gE)iH15k%G*{(#aVF%UZ2cn%X@cHY@XL`-<_ zlS&`vIDvm=>m;}q+k#K<>~m*>77oI9<&!DqAlIt*fb2NPwN|b?ctTNQMlFP_zNt&{Q!L z^^sk*d_t+No8}yYA#qO(iD0hx^txD#mX~-BZK)pD$dxz2PS_FbZ9`wsL;~g{=cy_5 z`x_7{Gz8gjw3ny0QS*_3Jvt(HQ9YN&& zs$>NmzewiBA}YXO?H%%j%>+uuBPAe^ZnEL2(JP>B@y-6+LhAG^saH>)4DE@#N- zZ;S%9CxH$p9-Zj#6mC>Wf-H@a71w`gZY!09L#QAo3A0Q1s4-uGYH@jR3&_;6966Af zX>53E?fSw|lXRgt^WECxZ(6|?-SPe;;}PnVto-sH@Vxz1;1u0(GR7CBbM;Y`+!7{; zB`oSz9XO60lx_+37{$))ACFH|yZqY(Or)_hy)*x=0vDbtP52a}og@Ba>5+fq^pkVI zSuyV0Isci@y_|v)(@UEtDvzAxy#LUOB&>@M%-H7k!2czYYyY~p^Fpn!FXZK^4@i|$tfz=tKf43T;@rHr;&E%-4X zi-~CS&|?gJ8H)V2wJVIa+^v7|s^hB)`))3wb7NZnU+UhptF0^B_kRC;3e53Ip;*|s zQgz2IVMW6YcDYDQY}_Ql6eU0g*+M9Y)`sV^-`{`E)$OeMtF}901B^o7r-RG3GK?PIAa$8^E*2DxiZTUNQP+l;G>Ra7~9NDmn$o;r5**RfUTE z{4zQ75Un1+M?H?;Pn(3B7ikv6#3 zb!FkQgsYZG%@Et2bCTGs!f&s{7ax{yN_$kMBxyC2Nz&Si$_;{>0~7MO>O z)I&Ie=2zMU%BouCE}Em3-o30)zh)NO!n0$OXUFD)oz;I$Vfobu_*y%V6ppqw(HXHz zC0)B~x@l{;FkodD5^KDv3~+?I$>JGmxap!fAldpX&hoC#@=P z_G7bGtj~WIhuvHJVS)*qNFVSg3K&v)(P*=Y5Z1hIj95cF?;@ulhqh|5(&5oc>#DnB z3PNuGPxqI#y8~kD945DK4!n)(pq4IXOrUqb{9#951?1(AbvUp#usUyrE5URTuboUDIhC*EO9Rd7$P)uh8- z;_+%+GoD-~LgM141+hfW*>FL)y(=((S$IOHFA|-3yO`(Apw5T@Xx0vo=z3u;&Ze3!We97Q}3M3G>ByGP%AUWyTaDup`8cS$BURP3t=|arPoAKRHH%f1iKp$(+4$ z=H~%FD{MSYqy0`rHmf{bUiWyT4Lu3L&oh1c3hXBkf7nGb;PHMp zny8+HbHOpfjRoq2_}SFs&v_6%U!@5*9)_yodb_O}hULo)*T_EN@{>C@Y6tD8_2mpu zPNU|_V2KYA`TbZ&6c4WWE=+&*RatqIaKj4X4&QupRIalcm9nLG4c|l328@z6227q$ zk_1*+(gEjA7l%_mSl&Pr@0(+V0F6NfXjE_~5GL76UfqdPwLv%wQYJjg6r?wo{<89y z_Tr0Ugics0UUmP{_XmBOMV@q`P&{de>6|O2$)%|3xE;-!Dtr^8!4H3!Oo>z^i<4j9 z&gPKcHZv=1S4?{2CzRLCvpo1SCI)JJY2UpO&}W2LRvrE)cl6A57Cw}>GowDb`{8Va zC~pn9yNPR1AT>zmMs7~I5@8x%g_agZ$Hx;?HU7Yim+$T(-f_;If_V|-gTL?oWre*u z4-uEbL<0`4EoFO9q7i>>gbWT$vS1evo@Enau@pkrdHYDoB44m`%SdwqgHg`0W#(n_ z*3aBy9FeS`S%zz{AeV9n=S4v@#Xdi6ZUfa;mxjG2`Ie}^W=Ocj=p7DSCB(NMa)oG< zATfh5n~5dGhs3$gVxlEX#O8r!kXYcWL87WU6*h$K)DE+~jdp*NJ&ebZ30|_g-CL?S zw@U{faensw3&_O;P+kE1>iNWGuuSmNcYKYy%LB`bfnk6)Qre-j;B@r@m}?*`97M1>?4>!h2CJC@GcP2%>idI^kvWM4V? z(^hHIw_bn-JqbAa`pQ7=MqWIW;sCoSY0v5uKDv6ozjOh_^~18+N}^7ih&pW|>Xh84 zJ=St~GV=GwW?mzX;`DgZc?iwv1IFrZx{uYsBY|XYj>mtaA?+Z}%IvKo%U;nlyz`=} zX?W*ha2S@lu>y`CcJ;*^CpIEK6@#m%WfeNT>u*6Wzjc8rz>k0ktmeABUv+ED$V*h$ z*M$S^8V5kTeiYv1T&kfCSrJD}d-HMk`^U92f}HDDZduo_sAJ?w{;7>Qnwp|X(vK_T z24*x#Et!?Cq8UNG2;r6Y5 z*wdM;IxJko?BCRcRPfi7$Y^L^2W3KR`xSaQJONI+Oi&Cvx``Q&s7nfqiTkzG>Ba{W zyrvoZlUSHt!c?Us4W@(rpO}>;S#MKCXah6AxqW|??jXKyB^=q1#iW}}uSZ_?q580a z;Qkf1&YYQJ>MK+C7?oThYXb7)Xr#x{aSN~Q)0}&J0N6q}DG9qoEld|3gsF2jj*gRK zn#>VnTTtR#$D@6uxuMEe_Y-r`#=}YUJ%YOIF~j3zbY)lqNh)7gykx=mlrX6xUCMOy zefNLV@I18k&noXd!vprS{w4AjQSEYa(?v^muS5t{2jf)EDAJQIOg zo~Q^og2{1m3OZK2%>~Hl0k~h0^NeA8EoD< zdAkr)LE$r-2&mH8R%0 zsSw*RK@@Vlbby$mBVNvr``}CDY`Kb5u_U9v`~jivS@`W%c+XsuoRxE;pA>j?ek85j zzV!qNl}OR@*L(CJB!qgA3ya%K>fEA|jOS5FOl?>antz;1QjkWHNFqY$vV?zcJN=1Y za`MGQz1nW>@>O)Eugr%0?qWx`VK&Z()8Q`i45wEWhj|H|%IUUjW?^)=4+|Y+NOP4n zbx=47V2&o?RWU^f_an$A1fuyW-Gj{bDSDsOO6Y-(G0W4_W6TQ-?p_=Y_axtVUjZa( z`nW04=icebD11&2haXPEcYl8rzv{R^^~%9GF1T<5YQTlqK-H{U835qA?Ch|#G9YMt zT8GBjc9}WOlxt(B>qqbB4@U=$5j~eD9FcE!a7KxdipsE#1?Jrn z)jy(a=Ysi=D4+RZGIF^-PNCenOsz2y3lVpS@p09<0Eonlnh>9Xr4Kpr% zOH*G^pW;fJ&eToA90V3bq1Yw~!4sExdN>|p&4h)03f(BEmpl*!H(u5Ppc?p9Vmssa zpwHi5|MF2OIX-(RuJ1gLyFaZe2&STqA#* zp!12BmhiY7bhFG0ggLH2O-I)EQ}AAKmAojO&Z}EF@dl%C0AT;1YIwv$Hfu z!tT73u)9K3?drkq>eZ}--FcL-n`~Wex2ghm=gk6kxJDDyJqoi{GCG`>333;isb^8a zuO>Ekkj3Wiv<{dVI5UPOg5K`7aWopF^Y*(@fTkFF5TH4V^a{*hgze;;Bg}sdu4pP^ zG=L9TB(I6l1STUC+oXOnPmCtvz1VoIQ-q!GJs{ zu=dvd8_|slMobwDuwGj=aZE5x+(u<28+I*3IvQ1hmSjJmi0}2b(4(#D`zVjcq*PNE zy5;dwau0e#im^}EA5u_atBrqJM5?utV3psPk%W&@$4}6C}`?=(-UFnGmPNEBSwN778@5l0DSk+Kg z@;-`BIN1{%i|^iaStY9%ruEZ!17UP-kuBpn(!DPEskTjCxHpr)P=$Z91O73r85zV| z5s+?hsVM`$+UD$b}2z%h`Xm`MfsL9*{x>_<5}{jl!5IN5|ub03fZa4!kTjOEMhm&CO|g zy&JQnn!6gMOq}CtmNFvM;ta%Gg@;4=A~A&`0fiC!(m@&1s6?nXzn0nFZZPVZEDp4z zffIigB}*;Aqt15rbC(RnqrX>U>f82pA zAB)RlV}Lt_=&foYrLh_mA4?tSAbSM0GHOSI^f^b<9N7v^>Aq z46g14X9LMD(tv;3r`wVxt=Ls`6lxAf$WGKRkt2ixwb$ z%>q|tu{|L!Nkf#HMWs34z-2ljFL>b7NiI=t+3t*%dujR_VcdAijTmi~t)Kw25}`A0 zX|Iiy&*X#9_?mY5C;cns=}y^8MyrIeWj^Y>B3MO`i)MdlA5n5QN`twP2NZ$|KB%$6 z@Fc=5YUfEJj^}j1y3p~l6%IpGiI)^PKGV&zb>u@&WLyP!QvTJ zEJYG)@^*>4Ka5VC2hWsT?Dz|W6ZF$ZckcVc$L{B)KRwtVo-ZI_6O2nQ_s3(P<{rXx zxEmh!m!*I134tAp*e8-m2(ggEkA_(1HxsECf5V1@V^gxh%%M*h6~2{B`9&i55Tn!|3>;gV#*a=@%j43ivvKSi%Tb0?cd=V9mO zcbbH=5XQhAP`Kh^7HC3B;iuHqYCE;a;15@?Z0I=gC{>ysdOipL$Mvb4sxl*xZic9`<6PD4Tt< zrU{t7oSu=d>FQ&exP5zy{c;2$qlsgwHn-ZFUKFn?n?+IP+ln5b@FxBF|0)ag#|D42 z%1wBNEQd~NZIkv65RT{^K-A})0kAbDxEjj;=dfLmY&P5-`w!a7JKdido+qAnafokU zYu)GK)@abmDbD+kKOjvIIL428qCH0L z+HLyJTA<&2{Ob8naui3V=?UT+$rz{^Qyv~2otZz@d%H;5VG{K5;oFVpzpcE)_A!d= zb;I$2O8dvU`RKn!H$VT^=;kl~m%F*$e#QpfZhr<3l5bV{+giK_arpG!)^LA+n~3kw zcK#XR%tDZ+lO$SF(0N_bFO~!1%!!Z*{oNkRSfn8`&)~POXFUnVK(} zpEqSP!AnKAG@ui5NTXjcMxo2woZjC){%@!bVo<2=anZYf!)dekrxQFsgq=fpCQQ(- zV>=Vu=EQa~v2EMd8{3|k6Wg|J+qUy2|M#EOIjghkzN!|z>aOapr|;_7Nsu6+yPQ8W z=-r{_fAal~Fk4M{*p&2A0SNpG?I%y;5p*#B;a3pA9mYnUBHCV=%!*eV6`W;O{T$6E zu{h)fWf^=pIz&_fgA=-B@X3cQ7Db4EwF}-hRc07Lzl4efk3OMKsa_*`xaN=5ekX#NY$o5vVJ0^Eh~r1aS$2qJ7V zp>-7Qo6*j$(7Vb6H4S(&~eBHS9RhUbij6Hi{=zWR&UDA(E zVqC{=)`s@9x!(3LWk}wJICVstfJR-~k8b#5>H*Ug0ORFx4?q&I-yn+K4j-d`QpR~_ z^1#Q7!U3XDEtU1Kie*XCW}#pZNM7CNw)l&KNXm+^(s8w(XbO2erzbA_e;o#LCb=GVekM63d&5U*qLtfi|;I$jZpM^8|=Vg-3Y zvd}9LmMuQ<0ouz0j|HrW=hyxduOg$*enEhrZz?70}Av8FSIanz?7O=t|vVm=wnsyfq$se zA(WOrxb2fxc5|Uv8$TS1Q03Wr zaQ-sC$5)<&{pwxx{3LN?!e>@s4jcK<=nT%giyJl`vW3XGVKXX)+pti94CW1H|Knd3 z*XeAd@YacP-D6>AX*s>vOpOHFlKct#y}qWTwNvxt`th6#m5LT@9l9&p5vfVP z0O*HGts*rcOJ^^l&LQ}0`9Y0qvCUYo`>tP4Qb{`ah-hWV#m|Nyu*lC zU0W5h42yBL`kdV5RIiZ_nQ?qj3+B>F1DN}_TRftUjte#?vaXsd-CE4CaaOcO`pB7- zq&0q58adJCDmC_Z9F)CcQA8IW#9F#Z31iQ4s zc_Z%kM86K8BuTbu%dg}-aVA|Z!I&z($!8h5-TDa45MoLmjEF+}+Bo3Z9e15i0}2f+ zuj;%e6|8x`&n|fhFMX5NmfllPCvMgW#150#2Zlq3c_VT$ZdCM$_g5Ik7`N{i?2&Oo zj1`EQcy6kGQ(F}6JwRWisQ*qS5FRgGyFD!ho>iZ9@eUmsIBLUVLOq);@b*5&%h@he zxz*lWVHeME^sQ)X$x!4I*d)$G0_?oUIOqHh9(3!7v5+|q2?FYr)qS?M{;N>YRqkIP z9kqFF#|eRgQ?2uSc`w-=&agC5-$X4ZLr2hV@bVfDRWjJ0|7v%0KAmZi>M7kuT&zk7 z6aaQEmWaFX=T6g0pf<;2AKKpeu*eIeKlq31=~e^=iA42YJYM2y~}3vQJK9V&So_}%MUb^nh#QP>5Wqm!TV} zX0CO|fc_AzGZ?=7E(WJ1PbaKo1i`b3uq8a8574vQ`}j==@O+cS&_B>&Jbk@w@;2?s z)>nwHiGQh;gkDW2i)xOCTTPz4Oy1c$^S0>_9H3lVSlJ&&0iYHa?Z4p;j#gie zpFf-4X3i0^_oGyZdFSrulRg? z^|%3NF*1p?s1%UgKf5nQtMndTjbFWCS8cl~+Co-~x(8R-twBerCM5?a6;qsj)MvQV zd8>Dv9sYn11HSaW0B4W&%Ld_?PT0`q?GI8zS&7<%haczLpIXyj`}w5FU|`?q%+P#iQ-!w%DZJ|D!td>(OnFA zwF;bNNNawD8Cd5OJN|8X4SXBBF`)zm2M2;-NO_PpE3msWiR@p>hJ>;yx2l z9?gTl2UP0*0di0O5z76#pUSds_NYdJuSo<(vK#m3N%7B?D=gpQe+BND*h~jCQR;78 z58k28x@J11J3(EDfUS1dV`DOd4WFOiDTZXwDxGA#G-?Lp|NKg24%#griuy4HB5NP} zKL*$SCr9#uB9uFT{7z_GcaQg)0)1G_K3f%*%?ZjFM!nq*HiKu4eBPqhjKbZNA1+Tf zAcMsFk3;N32FV1JZmyury0OSnP3zU!vwGB8wB~Ypshf5M17b73 zQ(I7Ev!%C{vT4_wP+eU&>?`ncpr~Jh0An345`S=ExTSa5fK2u0CFb565$uA77=?TO^x^f})b7V~mpD4yU7YDu_8v{-8f+0n#ra#OPoM@TcKX@F0)D-R(UD;JUzMo>qn zdHA-|6M6-Js2lNH&+GHKZ*NK~$MKmq_a0$wvw`T+jMD{&$by>&fX#IOBYxw(vFyXA{`%v2oRFLO_(?`uk65cugPFq(muf$nB+a$JT& zYouVR#1JjKW(j|M<^Y#4)?B^`0mjhJzI7t!o_xI?Ko^-ealj$uwlZO1GYV6R$ zvjrLXf)~%>eTTX`CQ%&DL$)%IJ5IHyi*}Dwtei<=+F^14yX(WBkWDE2tg{f zKRtI61b`}^+651a>CdG9n$4+adHy_espnz?pXUzx?+p z3!xiQNg4Bmo-&K5o|mHssV*_OhdYCePw~R|P1fjp8P%zIRWez1`u%q5a*wMJ61P`q zv_Yo}K}VW}N5I|GErntSX>=g#wU>r*mE``iunjP2a)~xBn5vx1WD0$Uh26~8Dl#Mu z-5(AqHb3)1BuTZHP#T_)Dri+bAjz;DP~B4fW4$1NpwPAng6#KspQa2NtPm8evWX*p z)_#j87i1S>1`6Ig#DjfXRjjp6`b1wEuKdnhtR;g`Z@DU3pvNFpq9-S5$yxHB^VfyC zEWno2Fa7$W@6=tC`U=9pXRq!W0waDGHwdsfWrg}Ug;8M8MG^gnj9w(ye{MB$!Jwt= zIVSedg3}k{-rs&uBjU#sitWu&yvV;kiA?P8PbFtpDd~s_F!tST-81ikCB>V&Hf8-E z4SZBEd1Gd+m+f|)8GM2hDYsK4&cL-sGN#t;|1bHGS|*X`q;T%fd*d|oY zrT)s8KWyjN*K43+pG)sNM}H~jUnN@hUwXU1Hc(11^eess&-;!et zKkn3-f&I)GuKQpls5XB0owdx<_M0z!y7S=TG!wB_!twhB1YakFvgv8gpsdYrv$~gw zl#48)1KJQNKp~#of*_DP&iQN|5Ez_$obA+7==v~UALZm;DX>uOJui4#usA1xcn5=P z0@0+e+9@QW!?z#Xl(GX4D!WW4UBo~OYa$QS7vM;B*(5_uv~GBzzc-i7>!(+=>L{jZ zurNfgSQq~YQ#W#y=j-;IVxU<;GbojS06&SH;auPQ(6yG(p%A7o7jKcdlVjjpxouk|!e-vgNG045k|c*h&lu zCdeK-QD-u&KP;iUH z(=Y;=+WDq&d|(a=&_iV>^AbAYz7m0>Z&n<52}nF&@c7p!rx@a%l zI=5;aAudxUC8>a)rz~x_>iL!Yi@*tv)S+|?BF?T#fDA-#J~8$Kkgt+2k9XE+wn9{7 zYa^dh+)lmb$w+C;6o6uaM)txMC)-=;R*buVAdw-21x6n+K%uMAhbdv5-eN2Gr9J5w zm*y#T>O%P!%TUUU`dLgZgSMts)~lQS(xLftfkP< zkFbJ3tuD8S2Lo>9v@lb&-#gBl4lWGepBfmrzni16oO0I%Ck*!N3g8PR4)pGr6^218 zD}}}khK5~Q^s5Z{&*r`7?wKIOzuhYRzpl@%|7;0yfP3(SI_3}jvXZp;!M|k2Po@U`A5#YO0F+`Z^PRa44;`xMeB_!+Prm*2+z z<9i0qrao z5leO51f*DxayKi&p{KMfYnaI2+8kwx5WK`s`3s6VBK_g799D6mAo0Lm@|1Y^! zZ8K2SJQ-VFfeX8!z`QP6(%_RPq!TESiw)=hrJ~ZUUQ;z~!Iq#Mg`IcE>}EEzH7tEI z0deGyiF*Eq<#loR?0dXeo-t|7C3|edk}4in2sn{usm1MV_Zbm>PwJt?gZryzA1wvR zB)R~bI1j5IX0d3NOvbV$Pl81mXhTp}peu@0R+pUkFOPLVE37BZ8ES{<2`8p9(|2u8 zL@G<8KZ`}cv`hN;*^H=AHMPW02~bECt)TCiI;bd>dJt`QPdyYKix(FMm097QYm>^Q z0gz5@phcN)19WDjh5TKkK|^V4=l>ttkLlCa$4G~rV^vokaVD+epdlAcX)f$0wajLU z&w{+*MBBo6TaN$lb%%yPR;v|vPXk(GG_%KdR;mAY6{p-=SNo3LS@S5nyP3zo)u_M8 z&E>20H~(^{UN-0))->dFe&{;=-3Mp4F9Fk=zTZd=8(S{ke(Q5K@itcz$Fj8;zo~3g zYEAyn3eEqm@LEx@O1Qd~TKQL>&Rl-wpZ;h^mN)CBO>Ngc!rEfT+7FAauE_J295fdd z8W19h+Pc3>(be3LJKMaprCzE|csmUuO?@k5dU> zdrt?;3!Ql8N{g+Hd!n*RY{>P?Z|$x3r~MXFFwKuh8GTgal5 z^_>lU{Le0XJKi4|vTY+qSXCtoO>?m^Sm%!UHDD3r-r>W_NQQh~Dnc*-R!ry*-Iiu{^-28^&R517(`G}|OymGe}G8R12lI?CEDoi$VG-C zWi~C$iLO1_k4U9J9o1MsO;T3W*vS^gfC?&(b7xGo&K+lAD^8=F$n*>zOU6EH9~jPk zWra|Q>_`FpL%K0{X@GoqV=w|Mwgn%(4tXv%Iw|WL?ptd)2SgKcJvKo`g&A2SIE6j4 zELYw+FyD@ZRrTXnGRrvJKXu)lJ()RL7=?AxL;0B~tY3e022Yy+yUv2-|JCmW2f|(S zrL}MTKK5kWzy87|D%mfRXG)uagrr2x3A2cbi+I^_h<8ra5-FM3td05yNDv}?(nDL1 z_tZP*r+u}{Qlcc0ZN2UWD~^<;2A?T^)lfo}7r*JrJ&i1Qu;244={#`yy|FPz<@(p< zT5-R}U5C%IQm_#M1o$cJR@&f!n;2JcIsbyk|F-Z09tG4_jAOs(s-zRi<|U&)uyBHg z%!L&fB9retr_6Q_nL%kNW2(_|r;i4!LM(p2>uL-%{Wh$O8yYGdJg#PNw}iUhx95E_=XLMM>}&-JTOg(1Z#a(Pykw`ptYBq`>{)C3=zk8HGr=`? zj%g>LsMmW1a7S2&_i+K7V@GGLzUdz^xktpmn&`ELTmqcG3#FN}SdRo4~*D+_nZKt&keKlO}UAw~1)9neRvY_?rl4JNkcr>${1fc1)pU>cOv?aQb3I(LIk z4S7h5>OlUpIezp(yB@2g2T{0Y775 z_g{GAWh#eRUdTC93aL1kN0|-Owl;JBRZ*g0E?J=M{r{O}2uS$ykE75Wc{9m*Pcm-j z;AE?-BY{U3!pgr$V(tBikG%EB;n*EYVi*Bb+-Pn1`#)5DheJpst}+sZkD-V3ken9I zM3hfxb|4t9TAgoXmnLuRzn31JYU9P?S_v#i?Pe#W=f$s_Prw6cp~OseM*bdoJhl2!sDw z@TR1v9wzk}lM0S7RS|>bp;Fo$VnYYW9=gxlTld8{x&v9h`lYlw>bZAo+EEVZsk<3x zTV)hIiPJ&CMcMz()m0_XgJrxIDFmC7-Iu?USn9a`&t4KbabtO89o9 zq}wMX)X2(E z?q!r?9IcYL@XF@vjO-TaHpy_M*VDlNNyM*yVt%+kFX+RtZjjF%C^JPGS+xdm)ZdA0N+kVN&IlX9=Rt zV}OE$FH2DnWT8es74Y|HXk{;&264Fg&cUVmYte}+P@>zZ`#|fk)$}9n+pkj4zJ_$M zczP-krxfKF6!&LuFzueS+;WH~b#oV5+RFUcc(?I4ISd@WfHn7}}o> ziko2G^zmdPQ8`M!kPPs9?W^=b6E}1jh*rSAI_&wYNOzQ_NcXQn$1eVHLkSR#`lzEd z#O3`-qW^NFa0KIX{*8A4r$Sczs~}@1B8%3>WMEagUe432nGCOgGDOHlE)OCJ$GedJ&;$o}b_!OYDsDzD`f+x*s94o$( zT;0#HV(9c(r`+L%-PC{#D$8r)+GM6O;XWkJyUqk)>U@@AI0%`Dz0i=utH@n;YNmUz z8_Uc6w%j{|HG=64X83xs;UzK0!Hh0j7qNSwoEvnt1t2PrrIm_GjifTJM2bnz#qu|% z%yM+3)jO&+_ycIc7sn%y1{z~aWJaR?s6RepAczt*5oMALti4p561;xkrguHC;rLAn z=sQeK*fHO1`46jVfrn~oObMFE3%<>ca@0}=ao6QJJ=qCw45DWQW!yFyJZ9ld-ypHT z)7yOXU)|h+LcOqb(*-ApZaJ%M&6?b<_}IB+?uIRSzylz4qDh+Q7Put9rfqBzuYfY! zgFk8Xc%6dS&kWqDts?f9#dlb!SBU^z-EldQb8XDU$a!XdLc@5c&nODuS*4i1fySr~ z89iJ$Cd+bk^V`68-4r|J=OFTjc`z3{9r#e?pw5ZtYnH>2H}S?PfvLJTddaGg$)r>9C zXont zskZ%0w)SZUo=zBm9cQpN3<>P_LOaw2|)YrFvC|GJ+^k!&xXx7Wyd;&V!m}bSA7ZX zE2G+<`xW@n5X2Hu!izrcy48BYDoO#457U~k`HD>L^|HuGQKY$}U&9^hI23d9x|la^ z?5NkLYON@?JN_^BC@4~2wqv~2$&LZztA7}qDgf2J znG#=%0r5_gm`(qEN874P+?&bvqdE)u18@A*0>9=_!omIr9FwX&<-(Ov%{t8Oi*nK5^B248a;LUxp)a@U9DlEr4Qf_RHYI)RWqUf*S-ljb zAJHbveO&78yQe|8kUDT7W=hzW8vrLViY9I68G#u{i`b>tLR535%0>NoGxD$bt(#uW zJ*J{ase21{QLE#*>BylDJZ}Yj$ac$E-OG4x5J=`K8(i`27Y89KSQw#HF*`gFuM z*%5qaaHzn`TXjRIMsPPM^}WBv{!2PY{fxu+F$d5hbL*2#Zo~h_V`Edrrzar;$3M7x z6Bg43xCHj=Xpu8#&SN`W$KlJ~&%a02@%k^D>eIiV z09kE>-ZscxXZRk!JIb9Pheyb%C0+XNb#HhELg>?AhaNAS8}V$|Fm?S0$9h<~YpNz2 z)?oKkKX1HFl&pp2-;oTxMf;#2W!0HxJFl_(!wpsm_T3&h(Kp?fU4YM%ED!Av^p5wH z&T-vQ`<`Jz(dQcfq8APmAEtW@k^S^zmorF~?euv&(w2fjYLg#PPT%`Sk(VBnt1=$G z>rNC5W>T*!Fc5rL+OE00R`WsFEy&IV2Z(MuL=T9vQl0f%t?o zx5*-jEYHFYhh5iQ+yCkxKSI4=PXk8|u6dn5(f{GB@76RjlQx~C3EdnVx>mzdu$W_?>5%8h z3Jb-v{G1`Xg*ol0`M5gJb#EvMP@jmnGGd{vMVXt@g|C2sgV(fU&ku@Kgydfy*jrJI zeZj<`D!h0`LCYIC0ew?4^31`=my8-ds;R-Xjcjby^El!ha+E`Y_xQTDvtqc1g6`;* zC71A`LpUR02Jq;<=-D3VYvfoDOZ6QlyeoqK(Au@?c24iMb|b9k)L(wd)c#?&BN?>o z#-gkIk931I`eLKs70alY@>>DgQd!U$u)GrPP{uGaVY+Loi51QTsnhF*Lg!63mXz*N zIy92%L)D$8AEt-lo@s7cN&zzYf%!W7TUb-L+u#Y+2=F~wLJ)WmF5|GCTm90x!yB|; zAbUcnLl*AF`7W2&bD)+t@<_=))rY`Lv2l`O7z-ebazyWfT`SLnK06$#)aOF|V9*t} zb;=2;ff3bs8$p5EB6zSGg|r!qBX+xA%&C)MysG4>S>q?I2|{;$jmk*5?($3ByFG9B z^=>ee2SC^Ey61zeF~54Y~pein=WyjY>}@rsl~o7>SxcA)0p(qP=K zFd182bwRz@?QglAHQd}*xTKv6X*-lHN((6J1zcY4RXzLzhJc2K3zVKn@{LE<)TDOv zx1S3b7E0Fu-1*jTLZ#>xWHPNt*3X~v z0TA@xT?ux0{pHE2B=2?{ly~#rL6ts4EIe&2_M3hr72nadt%_smqN`S!q1CsP>6?7P zrD%z}x2ngG-AO6fA)D!k#eU7I?2<~ZmsvUI@50ap^Cb+tV!Q4?$5fI+K@P}P1Jv>r%c*N%!fN7GlAuiCDb2w00Kn{XwvQO8nbB6cqvFpAf zey%*D^R2^@epR8GMvb-TytBcVU5V99*30UxsY$R_i#G7bZW!9E69O1(c-)_IXH+{) zlm|~6UZ<1TnBlB#96We`boI33Q4ihI%&=ghT#}ne5vOfyxnY8@l)E4&q2;9vNJ)Pt zz(1T=!3*!xZ$%UDS>n-uG^1fIVQ!AT4i@EObjR%FnR#d5vY;-pN55uj`Ma+`(AtE; zslL5~hqp#It$t0+8F`uUdc6Ozi%FS&l&$MDRWQKl;CHL@?flOB??y`NyHhyu)8j`w z*W0WN!&&m@XC}#Ych~7ITn+#Nj=e5M@9?rgXzM&g_6oEgwJV_ z1CxrRk4e~i|Bv`}sY1$Ju-ZeAi9z5D@Uyq_ihT3j8}9QGEP0(v62|fJcGsYxr`&ef^y?XKd+P57fid$5Put)7$GvT6q1%)f9dG39#D)xDfuRV0u~B z?=}ybK|qfc%BiY0d#+C5EYDs{tQ=f#hD|YBwK_m^+xW#nK?C`njuFTHjPbv)x{hxm zBZfhdr&!wbO41Led6;A( zQAw#@#!N2syYc0^r=$6_Is;5b&;o}uaXKTui`I>MBZ>6=tNii-BJ+2_llh?5k&~~0 z&l?A-!=ITQW;EMZi@Dilh2WB+mWzL`85}UQ#E89-xX$hejSB_<9!ss7o~^AOC>ki2 zP{&NF`*45>TC;HuO^!mVE{n#`ZJY6fxp7eIo`oova|fG#h9Fn~a+j0E;mkTbWSjN*rF#Enp8@&`*mdyx!*Vxa zubl(vCC$;?RgF`L;Q)K@?OVQz`SUrDC>`9ThqUmIg~{>p;mDk4_-JDb2h@CSn}Gg0 zvv&UN0~pK;HDF~nx@Q5D#G~f4X{TU({fTdNYj;3e>U7}T@YUa=Z2nwKx0HnB0|<@_ z5#7cEsS{9%hpp7;NB*8@;)P*?vqe@yxs^m9(+^r)CRX_}^Ne)d*eDax=Q6xFGY=HO z*DM~w%RJ3y>}f?Svk32i({F6yN8l1t9i Y-#-WDcjk@!h$&z%!wmt<0Cu-Ea62O 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

g5EUYoo-y2xZM1(R)hV*9pv$pH->PounE-iZ2G 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

^a9%QD1cWm%4$cy=OCNz95rJEP^S~t#hN_3L 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ν>MY9SvU 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 z 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

{cgbXBTp^Cz&DP}f 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�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