Add B300 GPU preset and GLM-5-NVFP4 on 8xB300 config

Add NVIDIA B300 (Blackwell Ultra) to hardware presets: same GB202 die as
B200 (2.25 PFLOPS BF16 dense) but with HBM3e 12-Hi stacks (288 GB,
12 TB/s — 50% more capacity and bandwidth than B200).

Add nvidia/GLM-5-NVFP4 HuggingFace config.json and a matching simulation
config for 8xB300: FP4 weights (~372 GB) leave ~1.9 TB for KV cache,
yielding 82k blocks per instance (3.8x more than the BF16-on-B200 setup).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 11:37:20 +08:00
parent 8d41123418
commit 84696604e8
3 changed files with 102 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
# GLM-5-NVFP4 (nvidia/GLM-5-NVFP4) on 8 x B300 (Blackwell Ultra, 288GB each).
# Architecture auto-loaded from HuggingFace config.json.
#
# FP4 weights: ~744B params * 0.5 bytes = ~372 GB across 8 GPUs.
# Total HBM: 8 * 288 GB = 2304 GB. KV budget: ~1900 GB after weights.
model:
config_json: ../models/GLM-5-NVFP4/config.json
name: glm-5-nvfp4
dtype_bytes: 1 # FP8 KV cache
block_size_tokens: 512
hardware:
type: 8xb300
hbm_bytes: 1900.0e9 # KV budget after FP4 weights (~372 GB)
cluster:
num_instances: 32
meta_store:
ttl_seconds: 120.0
router:
mode: prefix_affinity
prefix_k: 8
load_alpha: 1.0
sim:
trace_path: bailian-traces/glm_coder_blksz_512_040915-040917.jsonl
max_requests: null
output_dir: runs/glm5_nvfp4_8xb300
sample_interval_s: 1.0
seed: 42

View File

@@ -0,0 +1,59 @@
{
"architectures": [
"GlmMoeDsaForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"dtype": "bfloat16",
"eos_token_id": [
154820,
154827,
154829
],
"ep_size": 1,
"first_k_dense_replace": 3,
"hidden_act": "silu",
"head_dim": 64,
"hidden_size": 6144,
"index_head_dim": 128,
"index_n_heads": 32,
"index_topk": 2048,
"indexer_rope_interleave": true,
"initializer_range": 0.02,
"intermediate_size": 12288,
"kv_lora_rank": 512,
"max_position_embeddings": 202752,
"moe_intermediate_size": 2048,
"moe_layer_freq": 1,
"model_type": "glm_moe_dsa",
"n_group": 1,
"n_routed_experts": 256,
"n_shared_experts": 1,
"norm_topk_prob": true,
"num_attention_heads": 64,
"num_experts_per_tok": 8,
"num_hidden_layers": 78,
"num_key_value_heads": 64,
"num_nextn_predict_layers": 1,
"pad_token_id": 154820,
"pretraining_tp": 1,
"q_lora_rank": 2048,
"qk_head_dim": 256,
"qk_nope_head_dim": 192,
"qk_rope_head_dim": 64,
"rms_norm_eps": 1e-05,
"rope_interleave": true,
"rope_parameters": {
"rope_theta": 1000000,
"rope_type": "default"
},
"routed_scaling_factor": 2.5,
"scoring_func": "sigmoid",
"tie_word_embeddings": false,
"topk_group": 1,
"topk_method": "noaux_tc",
"transformers_version": "5.0.2.dev0",
"use_cache": true,
"v_head_dim": 256,
"vocab_size": 154880
}

View File

@@ -20,6 +20,7 @@ pub const AVAILABLE: &[&str] = &[
"a100-80gb", "a100-80gb",
"a100-40gb", "a100-40gb",
"b200", "b200",
"b300",
"2xh100", "2xh100",
"4xh100", "4xh100",
"8xh100", "8xh100",
@@ -32,6 +33,9 @@ pub const AVAILABLE: &[&str] = &[
"2xb200", "2xb200",
"4xb200", "4xb200",
"8xb200", "8xb200",
"2xb300",
"4xb300",
"8xb300",
]; ];
/// Resolve a hardware preset by name. /// Resolve a hardware preset by name.
@@ -48,6 +52,7 @@ pub fn resolve(name: &str) -> Option<HardwareConfig> {
"a10080gb" | "a100" => Some(make_config(count, &A100_80GB)), "a10080gb" | "a100" => Some(make_config(count, &A100_80GB)),
"a10040gb" => Some(make_config(count, &A100_40GB)), "a10040gb" => Some(make_config(count, &A100_40GB)),
"b200" => Some(make_config(count, &B200)), "b200" => Some(make_config(count, &B200)),
"b300" => Some(make_config(count, &B300)),
_ => None, _ => None,
} }
} }
@@ -121,6 +126,13 @@ const B200: GpuBase = GpuBase {
pcie_gen: 6, pcie_gen: 6,
}; };
const B300: GpuBase = GpuBase {
flops: 2.25e15, // 2250 TFLOPS BF16 dense (same GB202 die as B200)
mem_bw: 12.0e12, // 12 TB/s HBM3e 12-Hi (50% more than B200 8-Hi)
hbm: 288.0e9, // 288 GB HBM3e 12-Hi
pcie_gen: 6,
};
/// Build a [`HardwareConfig`] from a base GPU spec × TP count. /// Build a [`HardwareConfig`] from a base GPU spec × TP count.
/// ///
/// Compute, HBM bandwidth, and HBM capacity scale linearly with `n`. /// Compute, HBM bandwidth, and HBM capacity scale linearly with `n`.