
当若干用户请求进入大模型服务后，系统如何用更低成本、更低时延？
单卡优化
数据通路：
讲权重、输入、KV Cache 从 GM 搬入片上 BufferCache
矩阵计算 AIC/AIB
执行 Attention MLP NORM 等计 策略设计

将结果扳回 GM

优化思路
量化 少半、快速按
计算与 搬运重叠 编班变酸
融合算子 少些重价结果
凸优化
减少 HOst 侧调度与算子发开销
KVCache 优化：少半
多卡推理 优化
蛋糕模型过单卡放不下爱，或吞吐不足时，部署到多卡上
跨卡通信开销是影响多卡性能线性扩展的关键因素
不同的切分策略也会带来不同的性能表现
优化思路
多卡切分策略设计
通过多流并行实现按通信隐藏
TTFT TPOT 吞吐


**融合（fusion）那个和算子**：把多个运算合并成一个 kernel
kernel 就是 GPU 上跑的一次计算任务。比如 Add 是一个 kernel，RMSNorm 也可以是一个 kernel。算子融合就是把多个 kernel 合并成更少的 kernel。

$y=RMSNorm (x+residual),RMSNorm （z）=\frac{z}{/\sqrt{ mean(z^2)+\epsilon }} x weight$

不融合 
6 个 kernel
每部都要经过 GM
RMSNOrm  5 个操作 融合
2 个 kernel
RMS 内部融合
Add 和 RMSNorm 可以再融合，因为之间仍然需要通过 GM
npu_add_norm_

AscendC:昇腾 AI 出一起上的 C C++算子开发语言

可以直接描述：
数据搬运 GM 片上缓存
流水并行 搬运计算等流水单元并行执行
片上存储 UBL 1 的精细管理

尽可能减少计算量，以最快的速度，最高的吞吐量
控制 tiling：把大数据切分成片上能容纳的小块
实现流水并行
复用片上缓存数据

tiling    流水并行 多核 AI

Attention
 FusedAttention 一个 kernel 完成 Q K V 片上计算 输出
Q K^T
softmax..
中间结果不写出显存带宽压力降低

图模式优化

Eager 模式：逐算子下发

Python -框架 算子 1 NPU 执行
每一步都要层层调度

开销来源：Python-<C++ 层切换开销

框架算子调度、主次内存分配

CANN Runtime、驱动->NPU 指令下发

NPU 计算快,HOST 下发算子慢、大量空
所以要 time.Synchronize
图模式

图捕获/编译编译 统一调度 NPU 连续执行全部算子
t 统一分配内存


开发者只要设计过程


NPU 上的图模式实践

ge_graph 静态图编译
模型第一次运行时编译整个计算图
编译后进行算子融合内存规划并行边片
适合固定 shape 稳定执行路径的场景 
首次编译有开销
首次请 图编译捕获 写入缓存 后续复用（命中缓存）


npugraph_ex 徒步或并云

首次执行时捕获计算图并缓存
后续相同输入 shape 直接服用缓存
适合 Decode 小不循环
按输入 shape 缓存多分图，单图对应固定的输入 shape 内存布局

KV Cache 的优化

Paged Attention 分页管理

传统 KV Cache 预分配连续空间 端请求浪费 长请求不足

切成固定的 block page
	逻辑连续 物理不连续 块 映射
按需分配 用完释放
KV Cache 量化压缩

降低 KV 促成农户精度
PF 16->int 8

Page 优化解决怎么管的问题
量化压缩解决占多少的问题 两者可以结合使用

多卡并行优化

数据并行 Data Paralleism
张量并行 Tensor paralleism 
流水线并行 Pipeline parallel
序列并行 SP

专家并行 EP

如 TP 切分 MLP Matmul 切 N matmul 切 K 
qkv 切 HEAD
TP 切 Attention


矩阵切分
Y= X@W
W 按列切分（X 不变）
Y 1 Y 2 【Y 1|Y 2】
X 按列切,W 按行切
Y 1 + Y 2

NPU 有不同硬件单元 多流让它们同时工作 缩短总耗时
单流：串行



