英伟达的GPU(4)

打印 上一主题 下一主题

主题 556|帖子 556|积分 1668

更第四篇,上周有点私事,恢复更新
前次的文章 英伟达的GPU(3) (qq.com)
书接前文,我们上章说要更新GPU的内存机制,本次就讲点这个

   先做个定义,我们说内存(显存),也分物理内存(SRAM,DRAM.HBM)和逻辑内存(逻辑可访问地址,这个倒和物理不一定1:1对应),这个和处置惩罚CPU的项目标时候没啥区别。
      我们之前讲过CUDA编程体系块和线程等逻辑概念。这块不认识的可以看第二章 英伟达的GPU(2) (qq.com)。
      block,thread啥的各自有各自的工作范围,这些范围其实就是分配GPU逻辑内存和管理线程,block之类资源的一个标尺



  • Local Memory:每个线程都有本地内存,存储临时变量。范围最小因为就服务于每个单独的线程。
  • Shared Memory:同一个Block内的线程可以用共享内存共享数据。与访问全局内存相比,这允许同一块内的线程更快地通信和访问数据,因为近一阶。
  • Global Memory:这是GPU中最大的内存,可以被所有块上的所有线程访问。但是慢吗,离得远。
  • Texture and Constant Memory:GPU 中的特殊内存,针对访问特定数据类型(例如纹理或常量值)进行了优化。所有块中的所有线程都可以访问这些内存类型。
     


      然后我们看实际的物理内存上半部分是CPU的维度,下半部分的On-chip才是GPU的维度,然而这里有一个小误区,HBM虽然是GPU上面的,然后被换分在了Off chip的范畴。就是上面的绿色部分的Device memory。
      绿色的HBM(Device memory),由于操作系统也不在CPU那边,以是比如你要是训练,或者推理时候读取数据,模型,还得从能掌管IO的CPU的内存那边拿数,CPU的内存和HBM显存之间想通信,一样寻常是经过PCIE,这个图有点老,PCIE还显示6.4Gbps, 实际上如今的PCIE Gen5都15.6G了,下一代Gen6能到256。
      另外我比力推崇的GH200,或者GB200架构



      如图所示,Hopper也就是H100GPU,不光是用Nvlink链接到NVswitch上面,而且可以和Grace CPU之间有900GB/s的双向通信的C/2链接。
      这个怎么理解?
      NV虽然不停耍心眼总标双向带宽,比如900GB其实是单向450GB,但是究竟是大B啊,以是合3.6T/s的单向传输速率。
     贵肯定是贵,但是你要比PCIE的呢?H100标准的Gen5 PCIE 的CPU和GPU之间应该是2根PCIE GEN5, 编码是128b/130b的,传输速率能跑到128Gbps已经是极限。
     差28倍!
     固然有"懂"的兄弟这时候会及时的抛来一个challenge ,例如“你到底懂不懂啊?Nvlink也就链接GPU的时候有效,负责做本机箱内的GPU联合通讯源语的时候有效,跟CPU有啥关系",其实如果能喷出来到这个级别的哥们还是挺专业的,但是我的增补一下,在如今NVlink5一根都1.8TB/s的情况下,其实压力不特别在机箱这侧,因为满打满算8个。至于为什么在CPU这,懂的兄弟就不表明白,也没什么可表明的,做个train的都懂。不懂的我卖个关子,后面讲(其实看我原来的一些文章都有表明...)。
     



     然后比如拿H100举例,从HBM把模型和tokens读上来之后,就进入到缓存体系了,GPU目前主流计划还是以2级缓存为主。你们常常玩的flash-attention也主要工作在这个部分。
    NVIDIA A100 GPU 的缓存架构包括两级缓存:

  • 一级缓存(L1 Cache):每个流式多处置惩罚器(SM)都有自己的一级缓存。A100 的一级缓存为每个 SM 提供 192KB 的缓存。一级缓存在 A100 中被实现为共享内存/缓存组合,提供低延迟访问每个 SM 中常常使用的数据和指令。
  • 二级缓存(L2 Cache):A100 GPU 具有一个环球二级缓存,所有 SM 共享这个缓存。二级缓存的巨细为 40MB,显著大于一级缓存。二级缓存有助于减少跨 SM 数据访问的延迟,并减少对高带宽内存(HBM)的需求。
     一级缓存(L1 Cache)位于每个 SM 内部,由于其需要低延迟操作,通常使用 SRAM(静态随机存取存储器)实现。二级缓存(L2 Cache)也通常使用 SRAM 实现,以满足高速率访问的需求。
    一级在SM内部,纯粹的片上片,以是虽然两个缓存都是SRAM,但是巨细区别很大,因为就近的和tensor core或者cuda core通信,以是L1那边也是速率起飞
     这两级缓存协同工作,提高了 A100 GPU 的团体效率和性能,减少了对 HBM 内存的延迟和带宽需求
     从下到上,速率的和延迟也是成线性的递增状态,延迟出现线性递减(图上左边有标准)
      再往上就是寄存器了,那也不能和这些标准存储来相比,也没啥可谈的。
     下面这个表是在不同传输存储介质里面A100的延迟,带宽,盘算密度,线程的一些对比


     本日内存,缓存就讲到这里,后面deepdive一下,tensor core和显存,cache的合作机制,workflow,然后讲Nvlink,再后面讲讲A,H,B和R的架构,然后基本这个系列就竣事了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

大号在练葵花宝典

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表