赞
踩
如果将LLAMA-7B模型参数量化为4bit,则存储模型参数需要3.3GB。那么,至少PIM chip 的存储至少要4GB。
在 batch_size=1 的情况下
模型参数划分就是将上图中的矩阵划分至8×16个bank中。
本节使用量化方法来分析PIM chip,希望能够回答以下几个问题:
CRAM、CMEM、BRAM做多大合适?
Bank级并行带宽需要多少?并行算力需要多少?
Controller 如何与bank通信?通信带宽需要多少?
Controller 需要提供多大的算力?
PIM chip面向端侧推理,一般来说,推理的batch size = 1。LLM在推理时,可以大致分为两个阶段:
显然,LLM模型在decode阶段的瓶颈在于访存带宽。定量分析decode过程,也就可以分析出在给定访存带宽下,模型推理的速度。
假设推理的sequence的长度为L
在decode阶段,Controller和bank内的算力均可以吃满访存带宽。
并行intra-bank bandwidth 总带宽为BM
Controler-bank bandwidth 总带宽为CBM
一般来说,CBM << BM
对于AiM,CBM = 8 × 32 GB/s
这儿应该进行更加精细的讨论
intra-Controler bandwidth 带宽为CM
在decode过程,推理出一个token的时延 = bank内并行访存(GEMV)的时延 + Controler-bank 通信的时延 + Controler 内访存(softmax、Norm 和 reduction 等)的时延
bank内并行访存(GEMV)的时延包含两部分:模型参数相关的GEMV的时延和kv cache相关的GEMV的时延。
模型参数相关的GEMV的时延
kv cache相关的GEMV的时延
模型参数相关的通信时延
kv cache相关的通信时延
a bank for a head
通信次数
2 × NUM_LAYER
通信量
NUM_LAYER × (2H)
通信时延
(2 × NUM_LAYER) λ \lambda λ + NUM_LAYER × (2H) /2 / 1024 / 1024 / 1024 / (CBM/4)
64 λ \lambda λ + 1.91 × 10^-6 s
multiple (4) banks for a head
通信次数
2 × NUM_LAYER × 2
通信量
NUM_LAYER × (4H + NUM_HEAD × L + NUM_HEAD × L + 4H)
通信时延
(2 × NUM_LAYER × 2) λ \lambda λ + NUM_LAYER × (4H + NUM_HEAD × L + NUM_HEAD × L + 4H) /2 / 1024 / 1024 / 1024 / CBM
192 λ \lambda λ + 1.72 × 10^-5 s
模型参数相关的GEMV的时延
kv cache相关的GEMV的时延
a bank for a head
multiple (4) banks for a head
softmax 和 reduction
处理数据量
NUM_LAYER × (L + 4 × H)
处理时延
NUM_LAYER × (L + 4 × H) /2 / 1024 / 1024 / 1024 / CM
3.05 × 10^-6 s
sequence len = 4096,推理出一个token的总时延
a bank for a head
intra-bank 模型参数 | intra-bank qkv | Controler-bank 模型参数 | Controler-bank qkv | intra-Controler 模型参数 | intra-Controler qkv | total |
---|---|---|---|---|---|---|
7.5 × 10^-4 s | 4.9 × 10^-4 s | 450 λ \lambda λ + 4.61×10^-6 s | 64 λ \lambda λ + 1.91 × 10^-6 s | 5.87 × 10^-6 s | 0 | 514 λ \lambda λ+1.25 × 10^-3 s |
multiple (4) banks for a head
intra-bank 模型参数 | intra-bank qkv | Controler-bank 模型参数 | Controler-bank qkv | intra-Controler 模型参数 | intra-Controler qkv | total |
---|---|---|---|---|---|---|
7.5 × 10^-4 s | 1.2 × 10^-4 s | 450 λ \lambda λ + 4.61×10^-6 s | 192 λ \lambda λ + 1.72 × 10^-5 s | 5.87 × 10^-6 s | 3.05 × 10^-6 s | 642 λ \lambda λ+1.27 × 10^-3 s |
如果可以将Controler-bank通信时延优化掉,1s 可以推理出500+ token。这时候,性能是冗余的。
Controler要放在PIM chip上,否则Controler-bank通信基础开销会成为系统瓶颈。
削减成本,将上述三种带宽均减小一个数量级,系统吞吐 50+ token/s,性能也能满足需求。
LLM模型在prefill阶段的瓶颈在于硬件算力。
bank 承担GEMM算子
嵌入prompt的长度为N,模型参数加载进入cache可以重用N次
核心还是MAC
可以将 N 以 batch_size (例如16) 为粒度进行切分,以tile的方式进行GEMM
需要算力:BM×2×batch_size ops
如果decode阶段需要50+ token/s的推理速度:
CRAM、CMEM、BRAM做多大合适?
CRAM | CMEM | BRAM |
---|---|---|
256 KB | 256MB | 16 KB ~ 64 KB |
Bank级并行带宽需要多少?并行算力需要多少?
512 GB/s
512×2 ~ 512×2×16 Gops
prefill 阶段的embedding速度和并行算力相关。
512×2 Gops 对应50+ token/s的embedding速度
512×2×16 Gops 对应50×16+ token/s的embedding速度
Controller 如何与bank通信?通信带宽需要多少?
Controller 需要提供多大的访存带宽和算力?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。