[RAM] HBM 导论 | 为什么我们需要 HBM?

主页: 元存储博客

文章目录

    • 前言
    • 1. 什么是 HBM
    • 2. HBM 发展
      • 2.1 HBM 起源
      • 2.2 HBM 简史
    • 3. HBM 3D 结构原理
    • 4. 为什么需要 HBM
    • 5. HBM 生产商家
    • 6. HBM 封装厂家
    • 7. HBM 应用
    • 8. HBM 挑战
      • 8.1 工艺成本
      • 8.2 量产良率问题
      • 8.3 散热问题
    • 总结

前言

在AI时代的浪潮中,需要高效的内存来支持快速的数据访问和处理。而在这个追求速度和效率的世界中,HBM(High Bandwidth Memory)内存崭露头角。在这里插入图片描述

1. 什么是 HBM

HBM==High Bandwidth Memory, 是将很多个DDR芯片堆叠在一起后和GPU封装在一起,实现大容量,高位宽的DDR RAM 组合阵列。

HBM内存是一种创新的堆叠式内存技术,其特点是将多个内存芯片垂直堆叠在一起,并通过短而宽的通道将它们连接起来。这种设计不仅节省了空间,还大大提高了内存的带宽,使数据能够以更快的速度传输。

传统的DDR就是采用的"平房设计"方式,HBM则是"楼房设计"方式,从而可实现了更高的性能和带宽。

2. HBM 发展

2.1 HBM 起源

随着深度学习对算力需求的迅速增长,内存带宽已经成为一个重要的瓶颈,也被称为"内存墙"。[6]。

高带宽存储器(HBM)技术解决了与现代DRAM相关的两个关键问题[2]:
(1) 显著增加了计算设备(例如GPU)可用的带宽
(2) 降低了功耗

2.2 HBM 简史

文献[6]

HBM1
HBM1量产是在 2014 年,HBM1 单Stack 1024bit,最大容量1GB,带宽128GB/s。搭载4个HBM1 Stacks总容量4GB,总带宽为512GB/s。

HBM2
HBM2首发在2016年的NVIDIA P100上,P100采用4个HBM2 4GB Stacks,此时总带宽达到了720GB/s, 是采用GDDR的M40带宽的3倍。

2017年,也许是为了赶上深度学习热潮,仅隔一年,首次搭载Tensor Core的V100也正式发布,同样搭载4 HBM2 Stacks,内存翻倍至32GiB, 带宽来到了900GB/s。

HBM2e
2020年面世的A100搭载5个HBM2e 8Hi 16GB Stacks,此时总容量达到了80GB,带宽2039GB/s。

HBM3
2023年年底,AMD正式发布了MI300X,搭载了8个HBM3 12Hi 24GB Stacks,总容量192GB,总带宽达到了惊人的5.3TB/s。

HBM3e
H200尚未问世,应该是H100的完全体版本,采用6个HBM3e 12Hi 24GB Stacks,总带宽4.8 TB/s。

HBM4
to be continue

3. HBM 3D 结构原理

HBM的构建像楼房一样,将传输信号、指令、电流都进行了重新设计,而且对封装工艺的要求也高了很多。
在这里插入图片描述
来源: 知乎-EDA学习

  • DRAM通过堆叠的方式,叠在一起,Die之间用TVS方式连接
  • DRAM下面是DRAM逻辑控制单元, 对DRAM进行控制
  • GPU和DRAM通过uBump和Interposer(起互联功能的硅片)连通

4. 为什么需要 HBM

在这里插入图片描述
来源; AMD

我们把 HBM 和 GDRR5 比较, 可以看出 HBM 的优势所在[1] [5]。

  • 更高速,更高带宽
    HBM 最高带宽100GB/s 是 GDDR5 带宽 28GB/s 的近乎 4 倍。

  • 更高位宽
    HBM 位宽 1024 bit, 而GDDR5 位宽只有 32 bit。

  • 更低功耗
    HBM重新调整了内存的功耗效率,也即是功耗降低 3 倍多[5]。

在这里插入图片描述
图. 功耗效率对比(GB/每瓦, 值越小说明单位功耗下的速度越高, 值越大越好)
来源: AMD

  • 更小外形
    HBM比GDDR5节省了 94% 的表面积[5]。

5. HBM 生产商家

三星 Samsung
海力士 SK Hynix
美光 Micron

目前只有这三个巨头有 HBM 设计能力。

国产: 无

6. HBM 封装厂家

SK Hynix - 作为HBM的主要供应商之一,SK Hynix不仅生产HBM芯片,还提供封装和测试服务。

Samsung -三星也提供HBM封装和测试服务。

Intel - 英特尔也涉足HBM封装领域。

ASE Group - 作为全球领先的封装和测试服务供应商之一,ASE Group也提供HBM封装服务。

Amkor Technology - Amkor Technology是另一家全球领先的封装和测试服务供应商,也提供HBM封装服务。

国产: 无
虽然国内没有厂商有封装能力, 像国外封装厂如 Amkor 在国内也有建封装厂。

7. HBM 应用

HBM 内存产品广泛应用在高性能计算、图形处理和人工智能领域, 还有数据中心、游戏和虚拟现实等。

专用AI加速板卡、高端GPU、用于HPC的FPGA板卡抑或是最先进的CPU服务器,都搭载了HBM的。HBM以其高吞吐高带宽的优势,活跃在工业界和学术界。

HBM 体验
想象一下,使用HBM内存的计算机游戏,可以实现更逼真的图形效果和更流畅的游戏体验;使用HBM内存的人工智能应用,可以实现更快的模型训练和更准确的预测;使用HBM内存的大规模数据分析,可以实现更快速的数据处理和更准确的结果。

8. HBM 挑战

8.1 工艺成本

HBM较高的工艺而大大提升了制造成本。

8.2 量产良率问题

现在(2024Q1)的良率只有 65%[3],远低于传统DRAM 良率(已达黄金良率95%[4])。 堆叠的RAM 只要有一层是坏的, 整个都报废。

封装环节限制了良率的提升,封装(包括封装代工、塑封设备、封装材料等)将是HBM产业链最关键的环节。

8.3 散热问题

大量DRAM堆叠,和GPU封装在一起,性能越高发热就越凶,如何散热是极大的挑战。

总结


参考文献
[1] EDA学习,HBM火了,它到底是什么?
[2] HBM内存介绍
[3] https://zhuanlan.zhihu.com/p/685958450
[4] https://new.qq.com/rain/a/20231030A08HTI00
[5] https://zhuanlan.zhihu.com/p/671539540
[6] https://zhuanlan.zhihu.com/p/681519240

声明
本文仅为学习交流目的。
文中部分文字和图片来源于互联网,列在参考的文献,但可能有遗漏。如有侵权,请告知我删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/797804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是性能优化?如何性能优化?

FP (First Paint) - 开启体验之门 场景说明:当用户访问一个新网站时,首次绘制(FP)就像是网站的大门第一次打开。用户期待着的不只是白色的加载屏幕;他们希望有个迹象表明网站正在努力加载。 为何重要:即使…

vue项目入门——index.html和App.vue

vue项目中的index.html文件 在Vue项目中,index.html文件通常作为项目的入口文件,它包含了Vue应用程序的基础结构和配置。 该文件的主要作用是引入Vue框架和其他必要的库,以及定义Vue应用程序的启动配置。 import Vue from vue import App …

Android Studio学习8——点击事件

在xml代码中绑定 在java代码中绑定 弹出一个toast 随机,数组

H5 点击图片翻转效果

需求 ☑ h5 实现点击图片得到的是放大的镜像图片(不是放大镜效果 而是实现图片镜像对折,左右翻转) ☑ 鼠标点击后原图消失/隐藏,在原来的位置上取而代之的是翻转后的图(除了翻转之外不要改变其他的性质,比…

成员变量与局部变量的区别

成员变量和局部变量是两种不同的变量类型,它们有以下几个主要区别: 定义位置不同 成员变量定义在类的内部,方法外部。局部变量定义在方法、构造器或者代码块中,是在⽅法中定义的变量或是⽅法的参数。 作用域不同 成员变量的作用域为整个类。局部变量的作用域仅限于定…

Langchain教程 | langchain+OpenAI+PostgreSQL(PGVector) 实现全链路教程,简单易懂入门

前提: 在阅读本文前,建议要有一定的langchain基础,以及langchain中document loader和text spliter有相关的认知,不然会比较难理解文本内容。 如果是没有任何基础的同学建议看下这个专栏:人工智能 | 大模型 | 实战与教程…

【CicadaPlayer】demuxer_service中DASH的简单理解

DASH协议 dash 是属于demuxer模块的 MPEG-DASH是一种自适应比特率流技术,可根据实时网络状况实现动态自适应下载。和HLS, HDS技术类似, 都是把视频分割成一小段一小段, 通过HTTP协议进行传输,客户端得到之后进行播放;不同的是MPEG-DASH支持MPEG-2 TS、MP4(最新的HLS也支持…

Linux 多线程

目录 初识线程 线程的概念 Linux下的线程 线程优缺点 线程控制 线程创建 线程终止 线程等待 线程分离 线程取消 其它 线程互斥 互斥的概念 互斥锁的使用 锁的本质 线程同步 线程同步的概念 条件变量的概念 条件变量的使用 信号量 信号量的概念 信号量接口…

使用 C++ 和 Eigen 库理解 IMU 数据处理与可视化

使用 C++ 和 Eigen 库理解 IMU 数据处理与可视化 在本文中,我们将探讨如何使用 C++ 和 Eigen 库处理和可视化惯性测量单元(IMU)数据。IMU 数据在各种应用中至关重要,包括机器人技术、导航系统和虚拟现实。我们将探讨如何读取 IMU 数据,处理数据以估计姿态,并使用 Pangoli…

[Pytorch][缘来如此]:PyTorch中的广播机制

PyTorch中的广播机制 文章目录 PyTorch中的广播机制1. 广播代码示例 2. 不适合广播机制的情况:in-place操作 1. 广播 “广播”这一术语用于描述如何在形状不一的数组上应用算术运算。 在满足特定限制的前提下,较小的数组“广播至”较大的数组&#xff0…

windows WSL python 连接MySQL

安装环境 WSL >wsl -l -vNAME STATE VERSION * Ubuntu-18.04 Running 1 WSL2 无法与windows通信 >wsl -l -vNAME STATE VERSION * Ubuntu-18.04 Running 2 解决方案1:设置防火墙&#x…

非机构化解析【包含PDF、word、PPT】

此项目是针对PDF、docx、doc、PPT四种非结构化数据进行解析,识别里面的文本和图片。 代码结构 ├── Dockerfile ├── requirements ├── resluts ├── test_data │ ├── 20151202033304658.pdf │ ├── 2020_World_Energy_Data.pdf │ ├── …

MySQL-对象

MySQL-对象 对象描述表(TABLE)表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录数据字典就是系统表,存放数据库相关信息的表。约束(CONSTRAINT)执行数据校验的规则,用于保证数据完整性的规则视图(VI…

【Web】纯萌新的BUUCTF刷题日记Day1

目录 [RoarCTF 2019]Easy Java [网鼎杯 2018]Fakebook [CISCN2019 华北赛区 Day2 Web1]Hack World [BJDCTF2020]The mystery of ip [网鼎杯 2020 朱雀组]phpweb [BSidesCF 2020]Had a bad day [BJDCTF2020]ZJCTF,不过如此 [BUUCTF 2018]Online Tool [GXYCTF…

虚拟主机VPS和共享服务器有什么区别?VPS和共享服务器怎么选择,VPS和云服务器区别

今天易极赞小编来跟大家科普一个新的知识“虚拟主机和云服务器有什么区别?”看完这篇文章后你应该就能知道虚拟主机和云服务器哪个更适合你了。 如果你不知道服务器的常见类型有哪些,查看下面这篇文章: 服务器7中常见的类型,服务…

【C语言】如何判断一个机器的大小端

如何判断一个机器的大小端 一:什么是机器的大小端二:为什么会有大小端三:设计一个小程序来判断当前机器的大小端方法一:指针类型强转方法二:联合体 一:什么是机器的大小端 机器的大小端是指在内存中存储多…

【移动安全】对webview漏洞的一些分析

这次分析的app如下: 打开发现该app发现需要登录界面: 拖进jadx看一下,先来看一下AndroidManifest.xml文件 发现有两个类是导出,再来分析这两个类 这个RegistrationWebView类利用webview.loadUrl进行加载网页 java public class…

JS——判断节假日(假日包括周末,不包括调休上班的周末)

思路:创建两个数组,数组1为节假日数组,数组2为是周末上班日期数组。如果当前日期(或某日期)同时满足2个条件(1.在节假日数组内或在周末。2.不在周末上班日期数组)即为节假日,否则即为…

嵌入式学习第三十一天!(双向链表)

双向链表:在单向链表的每个结点中,再设置一个指向其前驱结点的指针域(即牺牲部分空间,添加了一个前驱结点的指针域) 1. 双向链表的定义: #ifndef _DOULINK_H_ #define _DOULINK_H_typedef struct stu {in…

SystemC入门学习Demo用例的工程化配置

背景:对不同的用例文件,使用CMakeLists.txt进行工程化管理的演示,这样开发者可以更加关注在代码开发上。 1,首先安装好系统环境的systemC库:ubuntu系统安装systemc-2.3.4流程-CSDN博客 2,准备好一个demo用…