# Every exl3 linear in the NemotronH Lightning-30B-A3B MoE checkpoint (#1861),
# read from the trellis rather than from config.json.
#
# THREE CONFIG KEYS DO NOT SURVIVE CONTACT WITH THE WEIGHTS:
#  * mtp_layers_block_type / num_nextn_predict_layers advertise an MTP
#    block. There are NO MTP tensors -- the checkpoint stops at layer 51.
#  * mlp_hidden_act: relu2 means the MLP is NOT GATED. There is no
#    gate_proj anywhere, for the shared expert or the routed ones, so
#    the shared expert's N is 3712 and not a fused 7424.
#  * moe_intermediate_size 1856 is not what is stored. EXL3's Hadamard
#    preprocessing needs both axes on a 128 block, so the quantiser
#    padded it to 1920 -- which IS 128-aligned, so the stated reason for
#    excluding the routed experts on alignment grounds does not hold.
#    They stay out of scope on grouped dispatch and on M, not on N.
#
# CROSS-CHECKED AGAINST A BOOTED ENGINE. The geometry counts below are
# exactly what the live module tree reports after Engine.build() on this
# checkpoint, and exactly the six geometries gate3_kl's INT8 arm served
# /mnt/k8scache/models/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-exl3-4bpw
# 6005 exl3 linears; codebooks ['mul1']; out_scales on 6005/6005
# 2D weights left UNQUANTISED: 24 in 2 role(s)
#        23  mixer.gate
#         1  backbone.embeddings
# K/N are KERNEL space; 'pad' names the declared width a padded axis came from
# %FLOP is per PREFILL TOKEN at chunk=2048; lm_head excluded

kind   roles                                 K       N           pad  b cb        n  M/call  %FLOP          pin key
-------------------------------------------------------------------------------------------------------------------
dense  mixer.in_proj                      2688   10368       N=10304  6 mul1     23    2048  21.97    2688x10368xK6
dense  mixer.o_proj,mixer.out_proj        4096    2688                6 mul1     29    2048  10.94     4096x2688xK6
dense  mixer.shared_experts.down_proj     3712    2688                6 mul1     23    2048   7.86     3712x2688xK6
dense  mixer.shared_experts.up_proj       2688    3712                6 mul1     23    2048   7.86     2688x3712xK6
dense  mixer.q_proj                       2688    4096                6 mul1      6    2048   2.26     2688x4096xK6
dense  mixer.k_proj,mixer.v_proj          2688     256                6 mul1     12    2048   0.28      2688x256xK6
dense  lm_head                            2688  131072                6 mul1      1       1   0.00   2688x131072xK6
routed mixer.experts.*.down_proj          1920    2688        K=1856  4 mul1   2944      96  24.41     1920x2688xK4
routed mixer.experts.*.up_proj            2688    1920        N=1856  4 mul1   2944      96  24.41     2688x1920xK4

REACHABILITY on the int8 leg:
  2688x10368xK6 [mixer.in_proj] 21.97% FLOP
      SERVABLE at shape 27 (TILE_N=128)
      N % 256 == 128: shapes [5, 8, 9, 11, 13] tile 256 wide, so dim3 grid(N / TN, ...) drops 128 columns there. #1914 is a prerequisite for racing those arms, not for the default shape.
  4096x2688xK6 [mixer.o_proj,mixer.out_proj] 10.94% FLOP
      SERVABLE at shape 27 (TILE_N=128)
      N % 256 == 128: shapes [5, 8, 9, 11, 13] tile 256 wide, so dim3 grid(N / TN, ...) drops 128 columns there. #1914 is a prerequisite for racing those arms, not for the default shape.
  3712x2688xK6 [mixer.shared_experts.down_proj]  7.86% FLOP
      SERVABLE at shape 27 (TILE_N=128)
      N % 256 == 128: shapes [5, 8, 9, 11, 13] tile 256 wide, so dim3 grid(N / TN, ...) drops 128 columns there. #1914 is a prerequisite for racing those arms, not for the default shape.
  2688x3712xK6 [mixer.shared_experts.up_proj]  7.86% FLOP
      SERVABLE at shape 27 (TILE_N=128)
      N % 256 == 128: shapes [5, 8, 9, 11, 13] tile 256 wide, so dim3 grid(N / TN, ...) drops 128 columns there. #1914 is a prerequisite for racing those arms, not for the default shape.
  2688x4096xK6 [mixer.q_proj]  2.26% FLOP
      SERVABLE at every ladder shape
      N=4096 divides every TILE_N on the ladder; no grid truncation exists
  2688x256xK6 [mixer.k_proj,mixer.v_proj]  0.28% FLOP
      SERVABLE at every ladder shape
      N=256 divides every TILE_N on the ladder; no grid truncation exists
  2688x131072xK6 [lm_head]  0.00% FLOP
      SERVABLE at every ladder shape
      N=131072 divides every TILE_N on the ladder; no grid truncation exists
  1920x2688xK4 [mixer.experts.*.down_proj] 24.41% FLOP
      OUT OF SCOPE (routed)
      needs grouped dispatch; otherwise: N % 256 == 128: shapes [5, 8, 9, 11, 13] tile 256 wide, so dim3 grid(N / TN, ...) drops 128 columns there. #1914 is a prerequisite for racing those arms, not for the default shape.
  2688x1920xK4 [mixer.experts.*.up_proj] 24.41% FLOP
      OUT OF SCOPE (routed)
      needs grouped dispatch; otherwise: N % 256 == 128: shapes [5, 8, 9, 11, 13] tile 256 wide, so dim3 grid(N / TN, ...) drops 128 columns there. #1914 is a prerequisite for racing those arms, not for the default shape.
