执行下列脚本

bash run.sh pa_fp16 performance [[256,256]] 1 qwen /data/drx/DeepSeek-R1-Distill-Qwen-32B 1

运行结果如下

指标说明

以下是表格中各项指标的详细解释,结合大语言模型推理和昇腾CPU硬件特性进行说明:

1. Model

含义:运行的大语言模型名称或架构(如BERT、GPT、LLaMA等)。

作用:标识具体模型,不同模型的参数量、结构会影响性能指标。

2. Batchsize

含义:单次推理的批次大小(即并行处理的样本数)。

作用:增大Batchsize可提升硬件利用率,但受内存限制。昇腾NPU通过多核并行优化,适合较大Batchsize。

3. In_seq / Out_seq

In_seq:输入序列的Token长度(如提示词的Token数)。

Out_seq:输出序列的Token长度(模型生成的Token数)。

作用:序列长度直接影响计算量。昇腾NPU的长程注意力优化对长序列处理效率提升显著。

4. Total time(s)

含义:生成整个批次(Batchsize个样本)的总耗时(秒)。

计算:包括模型初始化、输入处理、计算、输出生成全流程时间。

5. First token time(ms)

含义:生成每个样本第一个Token的平均耗时(毫秒)。

特点:首Token需初始化上下文计算(如Transformer的KV缓存),耗时通常高于后续Token。

6. Non-first token time(ms)

含义:生成每个样本非首Token的平均耗时(毫秒)。

特点:利用自回归模型的缓存机制(如KV复用),速度通常快于首Token。

7. Non-first token Throughput(Tokens/s)

含义:仅统计非首Token的吞吐量(每秒处理的Token数)。

计算(总Token数 - Batchsize) / (总时间 - First token time总和)

8. E2E Throughput(Tokens/s)

含义:端到端总吞吐量(包含所有Token的生成效率)。

计算总Token数 / 总时间

9. 后两列(Average)

含义:多次实验或非首/端到端吞吐量的平均值。

作用:反映模型在不同批次或序列长度下的综合性能稳定性。

关键分析

性能瓶颈:若First token time占比过高,需优化模型初始化或硬件缓存机制。

效率对比Non-first token Throughput通常显著高于E2E Throughput,体现自回归生成的特点。

硬件特性:昇腾CPU通过多核并行和内存优化,在长序列和大Batchsize场景下表现更优。

示例计算

假设:

Batchsize=4,In_seq=64,Out_seq=32

Total time=2.4s,First token time=200ms

总Token数=4*32=128

计算步骤

1、Non-first token时间总和:2.4s - (4*0.2s) = 2.4s - 0.8s = 1.6s

2、Non-first Throughput:(128-4) / 1.6 = 124/1.6 ≈ 77.5 Tokens/s

3、E2E Throughput:128 / 2.4 ≈ 53.3 Tokens/s

优化方向

硬件:利用昇腾NPU的向量计算单元加速矩阵运算。

模型:优化首Token生成逻辑(如预加载部分计算)。

调度:增大Batchsize以提升硬件利用率,但需平衡内存使用。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐