配置参考手册
本文档描述 backend/perf_model/configs/ 下四种配置文件的完整格式与字段说明。
configs/
+-- chips/ # 芯片硬件规格 (SG2262.yaml 等)
+-- models/ # 模型架构定义 (DeepSeek-V3-*.yaml 等)
+-- topologies/ # 集群拓扑结构 (P1-R1-B1-C8.yaml 等)
+-- benchmarks/ # 测试场景 (包含模型+拓扑引用+推理参数)
每个子目录都有 _template.yaml,包含完整字段注释,是创建新配置的起点。
Chip 配置 (chips/*.yaml)
描述单颗芯片的硬件规格。命名规范与芯片型号一致(如 SG2262.yaml)。
完整字段说明
# 基本信息
name: SG2262 # 芯片型号,需与文件名一致
architecture: TPU_V7 # 架构代号
process: 7nm # 制程工艺
frequency_ghz: 1.5 # 主频 (GHz)
tiu_frequency_ghz: 1.0 # TIU 独立时钟频率 (GHz),影响 Cube/Vector 算力
# 效率参数 (全局)
align_bytes: 32 # 内存对齐字节数,影响 tiling padding
compute_dma_overlap_rate: 0.8 # 计算与 DMA 流水重叠率 (0~1)
# 总时延 = max(t_comp,t_dma) + min(t_comp,t_dma)*(1-rate)
compute_efficiency: 0.9 # 计算效率 (0~1),实际算力 = 峰值 * efficiency
# 核心配置
cores:
count: 64 # 核心总数
lanes_per_core: 16 # 每核 SIMD Lane 数
# 计算单元
compute_units:
cube: # 矩阵计算单元 (GEMM/卷积)
m: 16 # 矩阵单元 M 维度
k: 32 # 矩阵单元 K 维度
n: 8 # 矩阵单元 N 维度
mac_per_lane: # 每 Lane 每周期 MAC 数(按精度)
INT4: 512
INT8: 256
FP8: 256
BF16: 128
FP16: 128
TF32: 64
vector: # 向量计算单元 (激活函数/归一化/Softmax)
eu_per_lane: # 每 Lane EU 数(按精度)
INT8: 64
FP8: 64
INT16: 32
BF16: 32
FP16: 32
INT32: 16
FP32: 16
# 存储层级
memory:
gmem: # 全局内存 (片外 DRAM/HBM)
type: LPDDR5 # 存储类型
capacity_gb: 128 # 总容量 (GB)
bandwidth_gbps: 8601.6 # 理论峰值带宽 (GB/s)
utilization: 1.0 # 利用率,有效带宽 = bandwidth_gbps * utilization
latency_ns: 100 # 访问延迟 (ns)
lmem: # 核内本地 SRAM (per-core 容量)
capacity_kb: 2048 # 每核 SRAM 容量 (KB)
bandwidth_gbps: 2000 # 带宽 (GB/s)
latency_ns: 1 # 访问延迟 (ns)
utilization: 0.45 # tiling 可用 SRAM 比例,实际预算 = capacity * utilization
# DMA 引擎
dma_engines:
gdma: # GDMA: gmem <-> lmem 主要搬运引擎
bandwidth_gbps: 68
startup_latency_ns: 100
efficiency: 0.9 # 有效带宽 = bandwidth * efficiency
sdma: # SDMA: 芯片间数据搬运 (共享 DMA)
bandwidth_gbps: 64
startup_latency_ns: 120
efficiency: 0.85
# HAU (Hardware Acceleration Unit): TopK/排序专用加速
hau:
sort_width: 16 # 并行排序宽度
compare_cycles: 1 # 单次比较周期
init_cycles: 20 # 初始化开销 (cycles)
# NoC (Network on Chip): 核间片内网络
noc:
topology: Mesh # 拓扑类型: Mesh / CrossRing
mesh_cols: 8 # Mesh 列数
mesh_rows: 8 # Mesh 行数
bandwidth_gbps: 1000 # 总 NoC 带宽 (GB/s)
latency_ns: 10 # 单跳延迟 (ns)
峰值算力推导
peak_cube_flops = cores * lanes_per_core * mac_per_lane[dtype] * tiu_frequency_ghz * 1e9 * 2
有效算力 = peak_cube_flops * compute_efficiency
示例 (SG2262, BF16):
= 64 * 16 * 128 * 1.0e9 * 2 * 0.9 ≈ 236 TFLOPS
Model 配置 (models/*.yaml)
描述模型的架构参数。命名规范:{ModelName}-{ParamCount}-{ActiveParams}.yaml(如 DeepSeek-V3-671B-A37B.yaml)。
核心参数(所有模型必填)
name: "DeepSeek-V3-671B-A37B" # 模型名,需与文件名一致
max_seq_len: 4096 # 最大序列长度
vocab_size: 129280 # 词表大小
hidden_size: 7168 # 隐藏层维度
intermediate_size: 18432 # Dense FFN 中间层维度
num_layers: 61 # 总层数
num_attention_heads: 128 # Query 头数
hidden_act: "silu" # 激活函数: silu / gelu / relu
norm_type: "rmsnorm" # 归一化: rmsnorm / layernorm
rms_norm_eps: 1.0e-6
# 可选
num_key_value_heads: 128 # KV 头数,< num_attention_heads 时为 GQA
num_dense_layers: 3 # Dense 层数(MoE 模型专用)
num_moe_layers: 58 # MoE 层数(MoE 模型专用)
MoE 模块(可选)
MoE:
num_routed_experts: 256 # 路由专家总数
num_shared_experts: 1 # 共享专家数(0 = 无共享)
num_activated_experts: 8 # 每 token 激活的路由专家数 (top-K)
intermediate_size: 2048 # 每个专家的 FFN 中间层维度
num_expert_groups: 8 # 专家分组数(DeepSeek 分组路由)
num_limited_groups: 4 # 受限分组数
route_scale: 2.5 # 路由缩放因子
decoder_sparse_step: 1 # 每隔几层用一次 MoE
norm_topk_prob: true
router_aux_loss_coef: 0.001
MLA 模块(可选,DeepSeek 系列)
MLA:
q_lora_rank: 1536 # Query 低秩投影秩
kv_lora_rank: 512 # KV 低秩投影秩(KV Cache 压缩的关键)
qk_nope_head_dim: 128 # QK 非位置编码头维度
qk_rope_head_dim: 64 # QK RoPE 编码头维度
v_head_dim: 128 # Value 头维度
mla_mode: standard # standard / absorb / auto
DSA/NSA 模块(可选,稀疏注意力)
DSA: # Dynamic Sparse Attention (DeepSeek-V3)
num_index_heads: 64
index_head_dim: 128
topk_index: 2048
NSA: # Native Sparse Attention (DeepSeek-V3.2)
compress_layers: 32
compress_ratio: 16
select_length: 64
select_num: 16
window_size: 512
RoPE 模块
RoPE:
theta: 10000.0
max_position_embeddings: 40960
# 长上下文扩展 (YARN)
factor: 40
original_seq_len: 4096
beta_fast: 32; beta_slow: 1; mscale: 1.0
Topology 配置 (topologies/*.yaml)
描述集群的硬件层级结构和互联参数。不内嵌芯片规格,芯片参数由 chips/ 目录单独管理,运行时注入。
命名规范:P{Pod}-R{Rack}-B{Board}-C{Chip}(如 P1-R1-B1-C8)。
完整格式
name: P1-R1-B1-C8
# 层级结构: pods -> racks -> boards -> chips
# count 表示该组的实例数量(紧凑表示,避免重复列举)
pods:
- count: 1
racks:
- count: 1
boards:
- id: board_1 # 可选,调试用
name: Board
u_height: 2 # 机架高度 (U),可选
count: 1
chips:
- name: SG2262 # 引用 chips/SG2262.yaml
preset_id: SG2262 # 芯片预设 ID,用于配置加载
count: 8
# 互联配置
interconnect:
links: # 层间物理链路带宽与延迟
c2c: # Chip-to-Chip (同 board 内)
bandwidth_gbps: 400
latency_us: 0.2
b2b: # Board-to-Board (同 rack 内)
bandwidth_gbps: 450
latency_us: 0.35
r2r: # Rack-to-Rack (同 pod 内)
bandwidth_gbps: 200
latency_us: 2.0
p2p: # Pod-to-Pod (跨 pod)
bandwidth_gbps: 100
latency_us: 5.0
comm_params: # 通信参数(注入 CommProtocolSpec 和 TopologySpec)
bandwidth_utilization: 0.95 # 带宽利用率
sync_latency_us: 0 # 同步延迟
switch_latency_us: 1.0 # 交换机延迟
cable_latency_us: 0.025 # 线缆延迟
memory_read_latency_us: 0.15 # DDR 读延迟
memory_write_latency_us: 0.01 # DDR 写延迟
noc_latency_us: 0.05 # NoC 延迟
die_to_die_latency_us: 0.04 # Die-to-Die 延迟
# 可选:连接拓扑(显式声明 chip 间连接,若省略则按 links 层级自动推断)
connections:
- source: pod_0/rack_0/board_0/chip_0
target: pod_0/rack_0/board_0/chip_1
type: c2c
# ...
异构集群示例
# 混合两种芯片的集群
pods:
- count: 2 # 2 个 SG2262 Pod
racks:
- count: 4
boards:
- count: 1
chips:
- name: SG2262
count: 8
- count: 1 # 1 个 H100 Pod
racks:
- count: 2
boards:
- count: 2
chips:
- name: H100
count: 4
Benchmark 配置 (benchmarks/*.yaml)
定义完整的推理测试场景:指定要使用的模型、拓扑、以及推理参数。
命名规范:{ModelName}-S{InputLen}-O{OutputLen}-W{WeightDtype}A{ActivDtype}-B{BatchSize}
(如 DeepSeek-V3-671B-A37B-S4K-O1-W8A8-B2048.yaml)。
完整格式
id: BENCHMARK_ID # 唯一标识符,与文件名一致(不含 .yaml)
name: "Benchmark Display Name" # 显示名称
model: "DeepSeek-V3-671B-A37B" # 引用 models/ 中的配置(不含 .yaml)
topology: "P1-R1-B1-C8" # 引用 topologies/ 中的配置(不含 .yaml)
inference:
batch_size: 8 # 批次大小
input_seq_length: 4096 # 输入序列长度 (prefill token 数)
output_seq_length: 1024 # 输出序列长度 (decode 生成 token 数)
weight_dtype: "bf16" # 权重精度: fp32/fp16/bf16/int8/int4
activation_dtype: "bf16" # 激活精度: fp32/fp16/bf16
常见测试场景
| 场景 | input_seq | output_seq | batch |
|---|---|---|---|
| 短对话 | 512 | 256 | 16 |
| 长文档理解 | 8192 | 512 | 4 |
| 代码生成 | 2048 | 1024 | 8 |
| 极限吞吐 | 512 | 1024 | 64 |
| 长上下文推理 | 32768 | 2048 | 1 |