返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

端侧大模型推理在NPU和CPU的对比

[复制链接]
链载Ai 显示全部楼层 发表于 半小时前 |阅读模式 打印 上一主题 下一主题


一、CPU和NPU推理涉及到的关键知识
这部分是属于基础知识,如果了解可以直接跳过到第二部分。
计算能力
•FLOPS (Floating Point Operations Per Second):测量计算设备每秒执行浮点运算的能力。例如,60 GFLOPS 表示每秒可以执行60 × 10^9次浮点运算。
•TOPs (Tera Operations Per Second):测量计算设备每秒执行操作的能力,通常用于NPU和其他加速器。例如,16 TOPs 表示每秒可以执行16 × 10^12次操作。
•DMIPS (Dhrystone MIPS):测量CPU整数运算性能的指标,主要用于反映CPU在执行Dhrystone基准测试中的性能。
DMIPS与FLOPS之间没有直接的转换关系,因为它们测量的是不同类型的运算性能。通常,假设1 DMIPS ≈ 1 FLOPS 或1 DMIPS ≈ 0.5 FLOPS是简化计算的常见方法,但实际情况依赖于具体CPU架构。
性能相关
•内存带宽:决定了数据在内存和处理单元之间传输的速度。例如,LPDDR5, 64-bit @ 6400 MT/s ≈ 51.2 GB/s 表示每秒可以传输51.2 GB的数据。
•数据传输时间:数据传输时间 = 数据量 / 内存带宽。例如,传输1.4 GB数据需要的时间 = 1.4 GB / 51.2 GB/s ≈ 0.027秒。
•并行处理:CPU和NPU通常具有并行处理能力,可以同时处理多个任务。例如,4核CPU可以并行处理4个任务。
•缓存:现代CPU和NPU通常有缓存用于存储频繁访问的数据,以减少内存访问延迟。
•模型架构:不同的模型架构(如Transformer、RNN等)对计算量和内存访问模式有不同的要求。例如,Transformer模型通常需要大量的矩阵乘法操作。


二、CPU和NPU推理性能
接下来我们通过数学计算的方式来推演端侧大模型分别在CPU和NPU的推理性能,为了方便计算,我们做基于以下背景进行验证:
1.模型参数: 2.8B(2.8 × 10^9)参数
2.输入长度: 250 tokens
3.模型架构: Llama
4. NPU性能: 16 TOPs(16 × 10^12 操作/秒)
5. CPU性能: 4核,每核15K DMIPS
6. 内存带宽: LPDDR5 64-bit @ 6400 MT/s ≈ 51.2 GB/s
7.每个参数4 bit
8.运算形式主要是矩阵运算
1. CPU性能计算
步骤1: 计算每个token的处理总运算量
•模型参数量:2.8B(2.8 × 10^9)个参数
•每个参数的运算量:假设每个参数需要2次基本操作(1次乘法和1次加法)
公式
总运算量= 2.8*10^9(参数)* 2 (操作/参数) = 5.6* 10^9 (操作)
•输入长度:250 tokens
公式
总计算量 = 5.6* 10^9 (操作)* 250 (tokens) = 1.4* 10^{12) (操作)
步骤2: 计算CPU的推理时间
•CPU性能:每核15K DMIPS,4核,总计60K DMIPS
•假设1 DMIPS ≈ 1 FLOPS(为了简化计算)
公式
每秒计算能力= 60K* 10^6 (FLOPS) = 60* 10^9 (FLOPS)
计算时间:
公式
计算时间 =总计算量/每秒计算能力= (1.4* 10^12) / (60* 10^9) = 23.33 (秒)

2. 内存带宽对CPU的影响
•内存带宽:LPDDR5, 64-bit @ 6400 MT/s ≈ 51.2 GB/s
•总数据传输量:

公式
总数据传输量 = 1.4 GB(模型存储需求) + 8 KB(输入数据存储需求) ≈ 1.4 (GB)
数据传输时间:
Plain Text
数据传输时间 = 1.4 (GB)/51.2 (GB/s) ≈ 0.027 (秒)
综合计算时间和内存带宽影响:

公式
总推理时间 ≈ 23.33 (秒) + 0.027 (秒) ≈ 23.357 (秒)


3. NPU性能计算
•NPU性能:16 TOPs = 16 × 10^12 操作/秒
•总运算量:1.4 × 10^12 运算
计算时间:
公式
计算时间 = 总计算量/每秒计算能力= 1.4* 10^12/16* 10^12(秒) = 0.0875 (秒)

4.结果总结
•CPU的推理时间: 约23.357秒(综合计算时间和内存带宽影响)
•NPU的推理时间: 约0.0875秒(内存带宽影响较小)
从这个结果来看,涉及大量计算的场景,NPU 的性能和成本明显优于 CPU。
三、可能的错误
上面的计算过程做了较多的计算模型简化,从计算严谨性的角度,这里把影响结果的前提假设梳理出来供大家参考。
1.DMIPS与FLOPS的转换假设:
○DMIPS(Dhrystone MIPS)是测量整数运算性能的指标,通常不能直接转换为FLOPS(浮点运算性能)。
○我们假设1 DMIPS ≈ 1 FLOPS 或1 DMIPS ≈ 0.5 FLOPS,这可能导致误差。实际情况依赖于具体CPU架构。
2.每个参数的运算量假设:
○假设每个参数需要2次基本操作(1次乘法和1次加法),这可能低估了实际运算量。实际的深度学习计算涉及更多复杂操作。
3.忽略了缓存和其他硬件优化:
○现代CPU和NPU通常有缓存、流水线等硬件优化,可能显著影响实际推理时间。
4.内存带宽与计算时间的独立性假设:
○内存带宽影响数据传输速度,假设数据传输和计算是独立的,实际中两者可能同时进行。
5.忽略了模型架构的复杂性:
○实际模型架构(如Transformer、RNN等)会影响计算量和内存访问模式。
四、 One More Thing
从结果可以看到,对于计算量要求高的推理场景,NPU 更适合于 CPU。但在实际工程化过程中,并不会完全放弃 CPU 而只用 NPU。行业内更多的是将 NPU 集成到 SoC 上,让 NPU、CPU、GPU 共同完成复杂任务。在实际工程化过程中,甚至会选择将一部分推理任务放在 CPU 上进行。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ