Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference

这篇具有很好参考价值的文章主要介绍了Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Architecture

如果将LLAMA-7B模型参数量化为4bit,则存储模型参数需要3.3GB。那么,至少PIM chip 的存储至少要4GB。

  • AiM单个bank为32MB,单个die 512MB,至少需要8个die的芯片。
  • 8个die集成在一个芯片上。
    • 提供8×16bank级别的访存带宽。
  • 整个推理过程完全下放至PIM。
    • CPU把 prompt 传给 Controller
    • Controller 控制推理过程,将推理出的token返回给CPU
  • Controller
    • ALUs
      • 处理softmax、Norm和向量乘等。
    • CRAM
      • cache
    • CMEM
      • 推理过程中,保存中间结果
  • Die
    • DieRAM
      • 数据 buffer,Controller broadcast 数据时用到。
  • Bank
    • MACs
      • Multiply-And-Accumulate
      • 用于GEMV and GEMM
    • BRAM
      • cache
    • BMEM
      • capacity: 32MB

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

2 Data partition

2.1 LLAMA-7B

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

2.2 Model parameter

在 batch_size=1 的情况下

  • prefill 阶段,嵌入prompt,此时为GEMM算子
  • decode 阶段,推理出一个个token,此时为GEMV算子

模型参数划分就是将上图中的矩阵划分至8×16个bank中。

2.2.1 一维划分

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

2.2.2 二维划分
  • 在分布式计算场景下的常用划分
  • 优势:通信量小。但是,要求计算节点间存在通信能力。
  • 在PIM场景下,无法假设bank间存在通信能力,此时,Controller的reduction开销会很大。

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

2.3 KV cache

2.3.1 attention
  • NUM_HEAD 个相互独立的 attention 操作
  • max sequence length = (8×16×32×1024×1024 - 6607077376/2)/(32×4096/2) = 15128

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

2.3.2 a bank for a head
  • 一个head attention由一个bank执行
  • 优势:Controller 与 banks 通信少
  • 劣势:
    • NUM_HEAD < NUM_BANK,3/4的bank访存带宽和算力被浪费。
    • bank内不仅要支持MAC,还要支持softmax。

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

2.3.3 multiple banks for a head
  • 一个head attention由多个bank执行
  • 优势:所有的bank访存带宽和算力得到利用。
  • 劣势:
    • Controller 与 banks 通信开销变大
    • Controller 需要进行softmax和reduction。

Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

3 Demands

本节使用量化方法来分析PIM chip,希望能够回答以下几个问题:

  • CRAM、CMEM、BRAM做多大合适?

  • Bank级并行带宽需要多少?并行算力需要多少?

  • Controller 如何与bank通信?通信带宽需要多少?

  • Controller 需要提供多大的算力?

PIM chip面向端侧推理,一般来说,推理的batch size = 1。LLM在推理时,可以大致分为两个阶段:

  • prefill
    • 在prefill阶段,模型嵌入prompt。
    • 假设嵌入prompt的长度为N,则在这个过程中模型参数会被复用N次。
      • 典型算子为GEMM
  • decode
    • 在decode阶段,模型以自回归的方式推理出一个个token
    • 假设推理出S个token
      • 每推理出一个token,则在这个过程中都必须扫描一遍模型参数和kv cache。
      • 典型算子为GEMV

3.1 bandwidth

显然,LLM模型在decode阶段的瓶颈在于访存带宽。定量分析decode过程,也就可以分析出在给定访存带宽下,模型推理的速度。

3.1.1 hypothesis
  • 假设推理的sequence的长度为L

  • 在decode阶段,Controller和bank内的算力均可以吃满访存带宽。

    • 对于GEMV算子,Operational intensity = 2 Ops/weight byte
    • 这个假设完全合理。
  • 并行intra-bank bandwidth 总带宽为BM

    • 对于AiM,BM = 8 × 512 GB/s
  • Controler-bank bandwidth 总带宽为CBM

    • 一般来说,CBM << BM

    • 对于AiM,CBM = 8 × 32 GB/s

    • 这儿应该进行更加精细的讨论

      • 每次 Controler-bank 通信的基础开销(时延)设置为 λ \lambda λ

      Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

  • intra-Controler bandwidth 带宽为CM

    • 能够达到类似CPU 100GB/s的访存带宽?
  • 在decode过程,推理出一个token的时延 = bank内并行访存(GEMV)的时延 + Controler-bank 通信的时延 + Controler 内访存(softmax、Norm 和 reduction 等)的时延

3.1.2 intra-bank bandwidth

bank内并行访存(GEMV)的时延包含两部分:模型参数相关的GEMV的时延和kv cache相关的GEMV的时延。

  • 模型参数相关的GEMV的时延

    • 这个时延非常好算,其实就是 模型总参数量/BM。
    • 对于AiM,这个时延为 (6607077376 / 2 / 1024 / 1024 / 1024)/(BM) = 7.5 × 10^-4 s
  • kv cache相关的GEMV的时延

    • kv cache 大小
      • L×H×NUM_LAYER×2
    • 与kv cache相关的attention算子的时延计算就比较复杂,因为其有两者计算方案。
    • a bank for a head
      • NUM_HEAD 的数量为32,bank数量为8×16
      • bank并行访存带宽的利用率为25%
      • 时延 = ((L × H + NUM_HEAD × L + L × H) × NUM_LAYER / 2 / 1024 / 1024 / 1024)/(BM / 4)
      • 如果L=4096,时延 = 4.9 × 10^-4 s
    • multiple banks for a head
      • 4 banks for a head
      • 时延 = ((L × H + L × H) × NUM_LAYER / 2 / 1024 / 1024 / 1024)/(8 × 512)
      • 如果L=4096,时延 = 1.2 × 10^-4 s
3.1.3 Controler-bank bandwidth
  • 模型参数相关的通信时延

    • 通信次数
      • 运算一个GEMV算子,需要两次通信,向bank发送向量,取回结果。
      • 通信次数 2 × (1 + NUM_LAYER × 7)
    • 通信量
      • (V + H) + NUM_LAYER × (4 × 2 × H + 3 × (H + DIM_MLP))
    • 通信时延
      • (2 × (1 + NUM_LAYER × 7)) λ \lambda λ + ((V + H) + NUM_LAYER × (4 × 2 × H + 3 × (H + DIM_MLP))) /2 / 1024 / 1024 / 1024 / CBM
      • UPMEM中 λ \lambda λ=0.0001s,AiM中CBM=8 × 32 GB/s,此时,时延 = 450 λ \lambda λ + 4.61×10^-6 s
  • 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

3.1.4 intra-Controler bandwidth
  • 模型参数相关的GEMV的时延

    • 主要是做处理softmax、Norm和向量乘等。
    • 处理数据量
      • V + NUM_LAYER × (H + H + H + 2 × DIM_MLP + H)
    • 处理时延
      • (V + NUM_LAYER × (H + H + H + 2 × DIM_MLP + H)) /2 / 1024 / 1024 / 1024 / CM
      • 5.87 × 10^-6 s
  • 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

3.1.5 summary
  • 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,性能也能满足需求。

3.2 Computing

LLM模型在prefill阶段的瓶颈在于硬件算力。

3.2.1 Controler
  • Controler 部分承担softmax、Norm 和 reduction 访存密集性算子
  • Controler 的算力只要能吃满 Controler 的访存带宽就可以。
  • CRAM容量
    • L最长16K,能够放入L长度的向量进行softmax就可以
    • CRAM容量最小 8KB,设置64KB是合理的。
    • 当然,如果追求更大的并行度,设置 NUM_HEAD × 8KB = 256 KB
  • CMEM容量
    • 在prefill阶段,要能够放入L×L的矩阵,最小128MB
    • 设置256MB是合理的
3.2.2 bank
  • bank 承担GEMM算子

    • 嵌入prompt的长度为N,模型参数加载进入cache可以重用N次

    • 核心还是MAC

      Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference,软硬件结合,near data processing,PIM for AI,llama,transformer

  • 可以将 N 以 batch_size (例如16) 为粒度进行切分,以tile的方式进行GEMM

    • 可以设置BRAM的大小为 16 KB ~ 64 KB,更大的BRAM可以允许更大的tile。
  • 需要算力:BM×2×batch_size ops

3.3 conclusion

如果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 必须在片内,降低通信时延
    • 4 ~ 32GB/s
  • Controller 需要提供多大的访存带宽和算力?文章来源地址https://www.toymoban.com/news/detail-829218.html

    • 16 GB/s
    • 32 Gops

到了这里,关于Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 提高LLaMA-7B的数学推理能力

    这篇文章探讨了利用多视角微调方法提高数学推理的泛化能力。数学推理在相对较小的语言模型中仍然是一个挑战,许多现有方法倾向于依赖庞大但效率低下的大语言模型进行知识蒸馏。研究人员提出了一种避免过度依赖大语言模型的新方法,该方法通过有效利用具有不同注

    2024年02月16日
    浏览(27)
  • LLM__llama-7B模型试验

    llama模型已经开源很久了,所以拿做小的模型做了个简单尝试 因为做简单尝试并不打算长期持有,所以以便宜、够用、好退货为主要参考依据购买阿里云服务器、 我看7B的模型权重大小就13GB,所以先购入一个 32GB内存的虚拟机 CPU内存: 4核(vCPU) 32 GiB ~ 操作系统: Alibaba Cloud Lin

    2024年02月09日
    浏览(32)
  • 试运行llama-7B、vicuna-7b-delta-v1.1和vicuna-7b-v1.3

    Chatgpt的出现给NLP领域带来了让人振奋的消息,可以很逼真的模拟人的对话,回答人们提出的问题,不过Chatgpt参数量,规模,训练代价都很昂贵。 幸运的是,出现了开源的一些相对小的模型,可以在本地或者云端部署体验, 动手体验了下Vicuna-7b,翻译过来是小羊驼」(骆马)

    2024年02月13日
    浏览(31)
  • 基于LLAMA-7B的lora中文指令微调

    前言: 系统:ubuntu18.04 显卡:GTX3090 - 24G (惨呀,上次还是A100,现在只有3090了~) (本文旨在快速实现基于llama-7b的中文指令微调) 咱们还是用lit-llama(环境安装过程见上篇博客) 地址:https://github.com/Lightning-AI/lit-llama 模型下载 在huggingface上搜索\\\"llama chinese\\\",我们选以下这

    2024年02月12日
    浏览(35)
  • Llama-7b-hf和vicuna-7b-delta-v0合并成vicuna-7b-v0

    最近使用pandagpt需要vicuna-7b-v0,重新过了一遍,前段时间部署了vicuna-7b-v3,还是有不少差别的,transforms和fastchat版本更新导致许多地方不匹配,出现很多错误,记录一下。 更多相关内容可见Fastchat实战部署vicuna-7b-v1.3(小羊驼)_Spielberg_1的博客-CSDN博客 一、配置环境 切换到f

    2024年02月09日
    浏览(28)
  • [llama懒人包]ChatGPT本地下位替代llama-7b,支持全平台显卡/CPU运行

    LLAMA的懒人包: 链接: https://pan.baidu.com/s/1xOw8-eP8QB--u6y644_UPg?pwd=0l08  提取码:0l08 模型来源:elinas/llama-7b-hf-transformers-4.29 模型来源(LoRA):ymcui/Chinese-LLaMA-Alpaca 侵权请通知作者删除 也可以进我的群下载哦:904511841 下面是llama的输入样例   自我介绍一下llama 您好,我是llama。

    2024年02月12日
    浏览(31)
  • llama.cpp LLM模型 windows cpu安装部署;运行LLaMA-7B模型测试

    参考: https://www.listera.top/ji-xu-zhe-teng-xia-chinese-llama-alpaca/ https://blog.csdn.net/qq_38238956/article/details/130113599 cmake windows安装参考:https://blog.csdn.net/weixin_42357472/article/details/131314105 1、下载: 2、编译 3、测试运行 参考: https://zhuanlan.zhihu.com/p/638427280 模型下载: https://huggingface.co/nya

    2024年02月15日
    浏览(37)
  • LLM - Chinese-Llama-2-7b 初体验

    目录 一.引言 二.模型下载 三.快速测试 四.训练数据 五.总结 自打 LLama-2 发布后就一直在等大佬们发布 LLama-2 的适配中文版,也是这几天蹲到了一版由 LinkSoul 发布的 Chinese-Llama-2-7b,其共发布了一个常规版本和一个 4-bit 的量化版本,今天我们主要体验下 Llama-2 的中文逻辑顺便

    2024年02月15日
    浏览(24)
  • Mistral 7B 比Llama 2更好的开源大模型 (三)

    Mistral 7B 比Llama 2更好的开源大模型 Mistral 7B是一个70亿参数的语言模型,旨在获得卓越的性能和效率。Mistral 7B在所有评估的基准测试中都优于最好的开放13B模型(Llama 2),在推理、数学和代码生成方面也优于最好的发布34B模型(Llama 1)。Mistral 7B模型利用分组查询注意力(G

    2024年02月05日
    浏览(29)
  • 大模型部署手记(11)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+llama.cpp+中文对话

    组织机构:Meta(Facebook) 代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models 模型:LIama-2-7b-hf、Chinese-LLaMA-Plus-2-7B   下载:使用huggingface.co和百度网盘下载 硬件环境:暗影精灵7Plus Windows版本:Windows 11家庭中文版 Insider Preview 22H2 内存 32G GPU显卡:Nvidia GTX 3080 Laptop (1

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包