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

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

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

邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接: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

​​​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++笔记】优先级队列priority_queue的模拟实现

【C笔记】优先级队列priority_queue的模拟实现 一、优先级队列的介绍与使用方式1.1、优先级队列介绍1.2、优先级队列的常见使用 二、优先级队列的模拟实现1.0、仿函数的介绍1.1、构造函数1.2、优先级队列的插入push1.3、优先级队列的删除(删除堆顶元素)1.4、获取堆顶元素1.5、判…

MATLAB仿真通信系统的眼图

eyediagram eyediagram(complex(used_i,used_q),1100)

【Java 进阶篇】Java 中 JQuery 对象和 JS 对象:区别与转换

在前端开发中,经常会涉及到 JavaScript(JS)和 jQuery 的使用。这两者都是前端开发中非常重要的工具,但它们之间存在一些区别。本文将详细介绍 Java 中的 JQuery 对象和 JS 对象的区别,并讨论它们之间的转换方法。 1. …

Amazon Aurora MySQL 与 Amazon Redshift 的 Zero ETL 集成已全面可用,一起轻松上手!

“数据是应用、流程和商业决策的核心。” 亚马逊云科技数据库、 数据分析和机器学习全球副总裁 Swami Sivasubramanian 如今,客户常用的数据传输模式是建立从 Amazon Aurora 到 Amazon Redshift 的数据管道。这些解决方案能够帮助客户获得新的见解,进而…

【C/C++笔试练习】内联函数、函数重载、调用构造函数的次数、赋值运算符重载、静态成员函数、析构函数、模板定义、最近公共祖先、求最大连续bit数

文章目录 C/C笔试练习选择部分(1)内联函数(2)函数重载(3)调用构造函数的次数(4)赋值运算符重载(5)静态成员函数(6)调用构造函数的次数…

微信小程序和H5之间互相跳转、互相传值

微信小程序和内嵌 H5 之间来回跳转,来回交互。 1 微信小程序跳转 H5 1.2. web-view 微信小程序官方提供了 web-view 组件来实现微信小程序跳转到 H5 页面,实现的方式也很简单,具体实现方式如下: 1、新建一个页面用来单独存放 we…

网页推理游戏

目录 python challenge (0) (1) (2) The Riddle (1) (2) (3) (4) Nazo (1)…

宋浩高等数学笔记(三)微分中值定理

首先是考研大纲包含的内容: 1.理解并会用罗尔(Rolle)定理、拉格朗日(Lagrange)中值定理和泰勒(Taylor)定理,了解并会用柯西(Cauchy)中值定理. 2.掌握用洛必达法则求未定式极限的方法. 3.理解函数的极值概念,掌握用导数判断函数的单调性和求函…

事务AOP

1事务: 事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体,一起向数 据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。 1.1实现:Transactional注解 Transact…

基于SSM的网络书店商城

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

电脑想要微信多开——打开多个微信的必胜法宝!

一个不知名大学生,江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion:2023.11.11 Last edited: 2023.11.11 导读:在生活当中经常遇到工作和生活相撞的事情,导致在处理私人的事情同时不得不处理…

分销cps外卖券电影票小程序开发

电影票外卖劵分销CPS小程序开发作 我们致力于为消费者提供优质、便捷的外卖服务。现在,我们推出全新的电影票外卖劵分销CPS小程序,以及更多具有深度和专业度的功能和服务,以满足消费者更高的生活服务需求。 首先,我们的分销模式…

服务日志性能调优,由log引出一系列的事故

只有被线上服务问题毒打过的人才明白日志有多重要! 谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:) 日志对程序的重要性不言而喻,轻巧、简单、无需费脑,程序代码中随处可见…

Python 使用tkinter复刻Windows记事本UI和菜单功能(一)

下一篇:Python 使用tkinter复刻Windows记事本UI和菜单(二)-CSDN博客 介绍: Windows操作系统中自带了一款记事本应用程序,通常用于记录文字信息,具有简单文本编辑功能。Windows的记事本可以新建、打开、保…

探索云世界的无限可能

文章目录 每日一句正能量前言云计算的定义和现状云计算能做什么?云计算市场的新特征需求方向:云计算的基础服务已经稳固,行业解决方案是新的发力点模式方向:分布式云模式方向:边缘计算是一朵新的云技术方向&#xff1a…

SQL 聚合函数

前言 SQL中的聚合函数是对一组值执行计算,并返回单个值的函数。 常用的聚合函数有: 函数作用AVG()求平均值MAX()求最大值MIN()求最小值SUM()求和COUNT&…

若依vue-初步下载使用

若依框架可以满足大部分的后台管理系统的开发,使用频率也是比较高的,所以这里讲一下如何使用若依框架 若依框架代码克隆 首先去若依官网 http://www.ruoyi.vip/ 这里演示的是若依-vue版本的使用 我们点击下载 会跳转到码云仓库 或者直接点击下面的链接去码云仓库 https://git…

第一章《补基础:不怕学不懂微积分》笔记

微积分包含众多知识点,例如极限概念、求导公式、乘积法则、链式法则、隐函数求导、 积分中值定理、泰勒公式等。其中,研究导数、微分及其应用的部分一般称为微分学,研究不定积分、定积分及其应用的部分一般称为积分学。微分学和积分学统称为微…

动态规划学习——多状态dp(打家劫舍问题)

一,打家劫舍I 题目: 一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自…

Gold-YOLO最新YOLO系列模型

论文地址https://arxiv.org/pdf/2309.11331.pdf 代码地址https://github.com/huawei-noah/Efficient-Computing 目录 01论文介绍 01摘要 02模型训练过程 01安装环境 02修改train中参数 01修改--data-path参数 02修改--conf-file参数 03其他参数设置 03训练 04出现问…