极智芯 | 存算一体 弯道超车的希望

news2024/11/20 23:23:29

欢迎关注我的公众号 [极智视界],获取我的更多经验分享

大家好,我是极智视界,本文分享一下 存算一体 弯道超车的希望。

邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq

"话说芯片架构,分久必合,合久必分。这句话先留着,下面越说应该越有概念。先拿一张清华大学高滨老师的图开个场,

存算一体是什么呢,所谓的存算一体,用狭义的定义就是说存储和计算都同时在一个芯片上,用同一套电路来完成。而广义上的存算一体,还包括了 "近存计算",也就是尽可能地拉近运算器和存储器的距离。比较有代表性的就是 Google 的 TPU。

这一切要从冯诺依曼瓶颈说起,随着摩尔定律的推进,一颗晶粒上能够集成的晶体管的数量已经达到了空前的水平,特别是配合 "众核" 的堆叠,计算力不断升级,这个时候 "两堵墙" 越来越明显,一个是存储墙一个是功耗墙。

  • 存储墙;=> 在冯诺依曼架构下,CPU 和内存之间 或者 GPU 和内存之间要频繁地进行数据读写,而内存的带宽远远跟不上 CPU 性能的提升。拿英伟达 H100 来说,H100 的 FP32 Tensor Core 算力是 1000 TFLOPS (而 FP8 Tensor Core 的算力甚至达到 4000 TFLOPS),但其显存带宽只有 3TB/s (已经是目前顶尖带宽,片外更低),这样导致算力和带宽之间差距巨大,表现往往是算的很快但传输很慢,真实能发挥出的算力有限,往往需要通过并行计算的 Pipeline 优化来将拷贝延迟隐藏掉;

  • 功耗墙;=> 在冯诺依曼架构下,超过 60% 以上的能耗被用来做了数据搬运,而非数据运算,这很明显非常不划算;

所以首先能想到的就是拉近 CPU/GPU 和内存之间的距离,或者说拉近计算单元和存储单元之间的距离。比如增加多级缓存来作为一个中间过渡地带,一层层把数据传递下去。但是这也不够用,那怎么办呢?想到的办法是通过先进封装来把内存尽可能靠近计算单元以缩短搬运路径,尽可能地增加带宽。然后通过 TSV 通孔把内存堆叠起来增加容量,这个呢就叫做 HBM 技术,而 H100 中 3TB/s 高带宽的带来者就是这个(HBM3),全称是 High Bandwith Memory。但是这些技术也都还是计算和存储分离的,这样永远也绕不开冯诺依曼瓶颈,说到底只有摆脱了冯诺依曼架构,才能真正的破除这个瓶颈,才能真正的破局。

这个时候存算一体就登场了,直接让存储器来计算数据,"没有任何的数据搬运" (这是相对的)。其实早在上个世纪 70 年代,存算一体的概念就已经诞生了,但是为什么这么先进的架构没有得到普及呢?一方面是没有大规模的应用需求,另一方面是芯片的制造工艺在当时还不太行。现在在这两个问题都得到了解决的前提下,还有个重要的推力是美国的芯片技术封锁,这让咱们对于芯片架构的 "破局",到了 "天时地利人和" 的阶段。

现在是大模型时代,随着 AI 对算力需求的增长,咱们的数据中心不可能是无止境扩大,这其中会有计算速度和成本的考量。深度学习 AI 中的计算基本都可以表达为 "乘、加" 计算,而存算一体芯片恰好擅长这个 (所以说到底,存算一体芯片应该是属于专用芯片,而非通用芯片,它更加适合于 AI 计算)。我们常见的 CPU、GPU 都是由晶体管来运行的,虽然说晶体管可以表示 0 和 1,但它无法存储 0 和 1。这应该比较好理解,一个晶体管的状态无非是 开 和 关,它无法维持在一个唯一的状态,所以要存储信息,就必须锁住维持一个状态。相比于 CPU、GPU 这类计算芯片,还有专用于存储的芯片,先来说说他们。比如 SRAM (缓存 / 静态随机存储器)、DRAM (内存 / 动态随机存储器),比如 Flash (固态硬盘,闪存,如手机、相机里的存储卡),他们的实现原理是不一样的。这里还会再引入两个概念:数字计算 和 模拟计算。

  • SRAM => 通过至少 6 个晶体管,通过反相器来锁止一个状态,实现双稳态电路,由此来存储 0 和 1;==> 适合数字计算;
  • DRAM => 利用一个电容和一个晶体管来存储数据,其中这个电容电荷的有无表示 0 和 1,而晶体管是用来控制开断的;==> 适合模拟计算;
  • Flash => 利用一种带有浮置栅极的晶体管来存储 0 和 1,这个浮置栅极中可以通过量子遂穿效应来存储电荷;==> 适合模拟计算;

上面这三种常见的存储器只有 SRAM 是基于 CMOS 逻辑来构建的,全都是晶体管,而 DRAM 和 Flash 是利用电荷来存储信息的。从基本构造来讲,SRAM 是最适合做数字计算的,因为它本身就是 CMOS 逻辑,在已有的阵列上做改造,加入逻辑计算单元,就可以实现一定的运算能力,而相比之下 DRAM 和 Flash 就只能做模拟计算。这个 "而" 字转折,并不是说模拟计算不好,情况恰恰相反,AI 爆发之后它极有可能会挑大梁,这么说吧,咱们这里所说的 存算一体芯片 也是属于模拟计算。

到这里,可以明确一下 数字计算 和 模拟计算 的概念了,

  • 数字计算;=> 是一种离散、非连续的形式,使用二进制数据进行计算。数字计算通常使用电子开关(如晶体管)来执行计算操作;==> 代表:目前主流的计算芯片、SRAM;
  • 模拟计算;=> 使用连续、非离散的形式来进行计算。模拟计算可以模仿物理过程或连续量的变化,例如声音、光线或温度。模拟计算可以使用如电阻、电容和晶体管来实现;==> 存算一体芯片、RRAM (存算一体领域大名鼎鼎的忆阻器)、DRAM、Flash;

在 AI 时代,来分析这两种计算方式的利弊和前途。AI 是一个实时数据量非常庞大的应用场景,特别是大模型时代,神经网络的层数越来越深,模型规模也越来越大。这个时候用 CMOS 逻辑来操作的话,最显著的一个缺点就是能耗太大了。模拟计算的优势在于它的能耗很低,模拟计算你要说它难,它还真的不见得有多难。来看一个公式:V = IR,也就是 电压 = 电流 * 电阻,这就是个欧姆定律。那么模拟计算跟这个欧姆定律有什么关系呢,可以看到这个公式其实就是两个参数相乘,借助物理定律就自然而然地做了一次乘法,然后通过电路的串并联设计就可以把乘积累加起来,这样就完成了一次乘积累加运算,这样的电路设计如下,下面就完成了一次 3 x 3 的矩阵乘运算,是不是感觉豁然开朗,

这个模拟计算,用到的晶体管数量是非常少的,因为它并不是二进制的。而且由于电流、电压、电阻的取值是可以连续的,所以它可以直接相乘相加。而反观在晶体管二进制中,因为只有 0 和 1 两个数字,那么要表达其他数字,就得是一连串 0 和 1,这也就意味着要用到一连串的晶体管和复杂的电路连接。这样看来模拟计算电路会 "轻量" 地多,但是模拟计算电路也并非十全十美,它容易引入噪声,因为它是直接利用的一个物理现象。也就是说模拟计算并没有数字计算那么的准确,它的计算精度跟数字计算相比,显然不占优势。但我们考虑在 AI 的场景中,对于数据精度的要求,其实并没有那么高。比如对于分类任务,分类得分 96.9% 和 96.6%,对于分类结果的影响并不大。 所以在 AI 的场景中,其实是可以容忍模拟计算误差的。

上面介绍的都还是存储器层面的存算一体,想象一下,将这种存算一体模拟计算应用到 AI 计算单元来替代掉 GPU,是不是前景十分客观呢。而未来的主流计算芯片架构,会不会变化成下面这样呢 (蜜汁潦草抽象图)...

现在最鼎盛的、最繁荣的 AI 芯片都是基于晶体管的数字计算,这对于芯片的制程工艺要求特别高,而芯片的先进制造正是美国卡咱们脖子的地方。采用基于模拟计算的存算一体技术,可能才是咱们能够 "破局" 的突破点。这就像造车,在燃油车领域咱们拼不过人家,我们可以在新能源汽车领域实现弯道超车

好了,以上分享了 存算一体 弯道超车的希望,希望我的分享能对你的学习有一点帮助。


【极智视界】

《极智芯 | 存算一体 弯道超车的希望》

畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您加入我的知识星球,星球内我精心整备了大量好玩的AI项目,皆以工程源码形式开放使用,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等。一定会对你学习有所帮助,也一定非常好玩,并持续更新更加有趣的项目。https://t.zsxq.com/0aiNxERDq

​​​

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

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

相关文章

win11下安装odoo17(conda python11)

win11下安装odoo17 odoo17发行了,据说,UI做了很大改进,今天有空,体验一下 打开官方仓库: https://github.com/odoo/odoo 默认的版本已经变成17了 打开odoo/odoo/init.py,发现对python版本的要求也提高了…

揭秘南卡开放式耳机创新黑科技,核心技术剑指用户痛点

随着科技的进步和人们娱乐方式的升级,大家对听音工具的选择,从传统的耳机到蓝牙耳机再到AirPods这样的真无线耳机,而今年,也有一种全新的耳机爆发式涌入人们之中,那就是开放式耳机。 开放式耳机的出现,满足…

Vuex:模块化Module

由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。 这句话的意思是,如果把所有的状态都放在/src/store/index.js中,当项目变得越来越大的时候,Vue…

小白版SpringMVC执行流程

目录 从MVC聊起 认识核心组件 SpringMVC执行流程 从MVC聊起 相信大家在刚接触到springMVC的时候,上手时接触的第一个理论应该就是mvc的含义,我们先简单的回顾一下,什么是MVC。 MVC的全名是Model View Controller,是一种使用“…

快块手多功能全自动引流软件-引流工具-引流脚本-自动引流技术功能介绍

脚本功能: 功能1_养号功能 功能2_评论区关注 功能3_评论区私信 功能4_评论区用户作品评论 功能5_评论区点赞 功能6_粉丝回关 功能7_自己粉丝私信 功能8_已关私信 功能9_好友私信 功能10_关键词搜索关注 功能11_关键词搜索私信 功能12_搜索ID关注 功能13_搜索ID私信…

Windows7+vs2005源码安装subversion

Windows源码安装subversion 一、运行环境 windows7 32位系统 VS2005完整安装 二、源码编译环境配置 1、python环境安装 python-2.4.msi2、perl环境安装 ActivePerl-5.8.8.822-MSWin32-x86-280952.msi3、openssl编译 C:>cd openssl-0.9.7f C:>perl Configure VC-W…

element ui中Select 选择器,自定义显示内容

正常情况下,下拉框选项展示内容,就是选择后展示的label内容 如图所示: 但是要想自定义选项内容,但是展示内容不是选项label的内容,可以在el-option标签内增加div进行自定义选项label展示,但选择后结果展示…

【STM32】STM32Cube和HAL库使用初体验

1.STM32Cube和HAL库模式开发流程 1、流程介绍 (1)环境搭建:STM32CubeMX安装、STM32xxFW安装、MDK5安装、pack包安装【顺序很重要】 【STM32】STM32的Cube和HAL生态-CSDN博客中的3.STM32CubeMX工具入门 (2)STM32CubeMX中创建工程,选择芯片型号&#xff0…

跟着openai学编程

装饰者模式 class Component:def operator(self):passclass ConcreteComponent(Component):def operator(self):return "ConcreteComponent operator"class Decorator(Component):def __init__(self, component) -> None:super().__init__()self.component compo…

MySQL最新2023年面试题及答案,汇总版(4)【MySQL最新2023年面试题及答案,汇总版-第三十四刊】

文章目录 MySQL最新2023年面试题及答案,汇总版(4)01、一个6亿的表a,一个3亿的表b,通过外键tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录?02、SQL语句优化的一些方法有哪些?03…

机器人入门(五)—— 仿真环境中操作TurtleBot

仿真环境中操作TurtleBot 一、实操1.1 查看姿态信息1.2 控制turtlebot移动的三种方式1.2.1 命令行发布指令1.2.2 键盘操控1.2.3 Python脚本控制1.2.4 使用rqt工具界面,发布运动指令 二、里程计(odometry)TurtleBot3 仿真 进行实操之前,先准备环境 $ sud…

【每日OJ——21. 合并两个有序链表(链表)】

每日OJ——21. 合并两个有序链表(链表) 1.题目:21. 合并两个有序链表 (链表)2.方法讲解:2.1.解法一:递归2.1.1.图文解析2.1.2.代码实现2.1.3.提交通过展示 2.2.解法二:迭代(无哨兵位…

网络运维Day09

文章目录 环境准备ssh远程管理远程管理进阶MobaXterm远程工具 环境准备 远程管理linux主机 环境准备如下方表格(主机名IP)使用CentOS7.9克隆一台新的机器 主机名IP地址som.tedu.cn192.168.4.7/24pc207.tedu.cn192.168.4.207/24 将虚拟机A、B的网络模式选择为vmnet1 真机网络…

Hololens开发笔记

1、关闭阴影 2、将相机渲染改为后向。因为默认是Forward,当在场景里面想使用点光源时,运行起来三角面会翻倍,影响软件运行流畅度。 3、第三人称同步相关。开启Host/Sever/Client前,需要将所有挂有NetworkObject/NetworkTransfor…

ai批量剪辑矩阵无人直播一站式托管系统源头技术开发

1.全店IP形象打造----剪辑 全店IP打造模式为场景组合,需要在每个场景内按照顺序分别上传短视频素材,会与选中的音乐、标题文案组合生成有逻辑顺序的视频。可调配标题字号大小、音频音量大小。如想要携带团购地址可设置POI。可开启团购引导动画、镜头转场…

HTML页面模拟了一个类似Excel的表格在线diy修改表格内容

html实现在线表格编辑,可以修改每个表格内容,并且可以添加行和列 这个HTML页面模拟了一个类似Excel的表格,可以添加和删除行和列,并且可以编辑每个表格的内容。通过点击按钮可以添加新的行和列,通过按钮可以删除最后一…

近日的ChatGPT宕机事件,竟是黑客组织的蓄谋攻击!?还声称要教训OpenAI和奥特曼

作者 | 王二狗 想必大家都知道了,近日无论是ChatGPT还是其API服务都出现了长时间的线上崩溃! Sam Altman还下场亲自道歉说是因为太受欢迎导致服务器负载超荷。 大模型研究测试传送门 GPT-4传送门(免墙,可直接测试,遇…

【算法与数据结构】131、LeetCode分割回文串

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题仍然使用回溯算法的一般结构。加入了一个判断是否是回文串的函数,利用起始和终止索引进…

YOLOv8模型ONNX格式INT8量化轻松搞定

ONNX格式模型量化 深度学习模型量化支持深度学习模型部署框架支持的一种轻量化模型与加速模型推理的一种常用手段,ONNXRUNTIME支持模型的简化、量化等脚本操作,简单易学,非常实用。 ONNX 模型量化常见的量化方法有三种:动态量化…

智慧工地源码:助力数字建造、智慧建造、安全建造、绿色建造

智慧工地围绕建设过程管理,建设项目与智能生产、科学管理建设项目信息生态系统集成在一起,该数据在虚拟现实环境中,将物联网收集的工程信息用于数据挖掘和分析,提供过程趋势预测和专家计划,实现工程建设的智能化管理&a…