历史上的今天
返回首页

历史上的今天

今天是:2025年03月22日(星期六)

2021年03月22日 | 存内计算:让AI进入高速路

2021-03-22 来源:EEWORLD

AI依赖的算法是一个庞大而复杂的网络,有很多参数要存储,也需要完成大量的计算,这些计算中又会产生大量数据。在完成大量计算的过程中,一般芯片的设计思路是将大量增加并行的运算单元,例如上千个卷积单元,需要调用的存储资源也在增大,然而存储资源一直是有限的。随着运算单元的增加,每个运算单元能够使用的存储器的带宽和大小在逐渐减小,可见存储器是AI芯片的瓶颈。

 

AI时代的硬件架构创新还有一大难关——内存墙(内存墙)。

 

要理解内存墙,还需要从传统的冯诺伊曼架构说起。冯诺伊曼架构是计算机的经典体系结构,同时也是处理器芯片的主流架构。在冯诺伊曼架构中,计算与内存是分离的单元:计算单元根据从内存中读取数据,计算完成后存回内存。

 

 

几十年来,处理器的性能以每年大约55%速度快速提升,而内存性能的提升速度则只有每年10%左右。长期累积下来,不均衡的发展速度造成了当前内存的存取速度严重滞后于处理器的计算速度,内存瓶颈导致高性能处理器难以发挥出应有的功效,这对日益增长的高性能计算(HPC)形成了极大的制约。

 

image.png?imageView2/2/w/550


简单来说就是内存的性能提升太慢,导致计算机的计算能力提升达到一定的瓶颈,即使再增加处理器的核数,也无法提高综合计算能力。就好比蕴含巨大能量的火山,内部已经汹涌澎湃,但是无奈“脖子太细”不能完全释放。

 

内存墙就是摆在AI硬件创新的一道坎。不管你是TPU,BPU,还是XPU,你的PU做得再快,数据还是在存储那里,你要把数据从内存搬到你的PU里。数据搬移需要的能量在整个计算中占非常大的比重,而且数据搬运的效率不会因为摩尔定律的发展而提高。

 

就拿谷歌发布的TPU来说,看实验数据可以发现,因为TPU所带的DDR3存储架构,带宽只有30个GB/s,虽然第一代TPU做的非常快,但由于存储带宽的限制,很多时间它是在等数据,大大限制了性能的发挥。

 

对于当今的AI芯片来说,追求极致计算能效比是我们的目标,内存墙对于AI芯片能效比的限制效应尤其显著。众所周知,人工智能中神经网络模型的一个重要特点就是计算量大,而且计算过程中涉及到的数据量也很大,使用传统冯诺伊曼架构会需要频繁读写内存。目前的DRAM一次读写32bit数据消耗的能量比起32bit数据计算消耗的能量要大两到三个数量级,因此成为了总体计算设备中的能效比瓶颈。由此看来,内存访问瓶颈就是一个不得不解决的问题。

 

如何翻越内存墙?存内计算诞生

 

内存墙之所以存在,从另一个角度看主要还是由于处理器/加速器芯片和主内存是两个独立的模块,计算和内存之间距离太远,因此来回搬运数据代价太高,无论是吞吐量还是能效比方面这种数据搬运都成为了瓶颈。那么,如何让内存和计算离得更近一些呢?一个最简单有效的方法就是“存内计算”(in-memory computing)也叫存算一体化。存内计算,顾名思义就是直接在存储内做计算。其具体实现方式有若干条技术路径。

 

未来的计算机体系结构可能要改变传统的把计算和存储分开的冯·诺依曼架构。其中的一个创新架构的研究方向是存算一体化,在存储里面加上计算的功能。当计算和存储都放在一起,在内存里面实现神经网络计算的时候,功耗可以降低20倍,速度提高50倍。所以,省去数据搬移,计算的功耗和性能都可以大大提高。

 

 

哪种类型的存储做存内计算最好?

 

其实,能做存内计算的存储器并不多,除了FLASH,还有忆阻器、相变存储器、铁电存储器、自旋存储器、SRAM等,但各有各的优缺点。比如,IBM在相变存储(PCRAM)里实现神经网络计算的功能,利用新型存储器件的模拟计算功能来实现神经网络的计算;加州大学圣芭芭拉分校谢源教授在新型存储器件ReRAM(阻变存储)里面做计算的功能,让存储器件做神经网络的计算,称之为PRIME架构。

 

有些厂商吧目光投向了NOR FLASH,综合来看,NOR FLASH是目前最适合产业化的方向,众多巨头投资的美国初创公司Mythic采用的也正是NOR FLASH。NOR FLASH的优势不仅体现在功耗和成熟度等方面,高精度也是很大的优势。

 

由于在很多AI推理运算中,90%以上的运算资源都消耗在数据搬运的过程。芯片内部到外部的带宽以及片上缓存空间限制了运算的效率。所以有人说,存算一体化是下一代AI芯片的关键。

 

这个圈子里的玩家还真不少

 

目前,全球存内计算有不少玩家。除了学术界,产业界也越来越多的玩家布局该技术。IBM基于其独特的相变存内计算已经有了数年的技术积累;台积电正大力推进基于ReRAM的存内计算方案;英特尔、博世、美光、Lam Research、应用材料、微软、亚马逊、软银则投资了基于NOR Flash的存内计算芯片。

 

典型产品和典型企业

 

目前存算一体化大体分为:

 

1.DRAM和SSD中植入计算芯片或者逻辑计算单元,可以被叫做存内处理或者近数据计算,这种方式非常适合云端的大数据和神经网络训练等应用;

2.存储和计算完全结合在一起,使用存储的器件单元直接完成计算,比较适合神经网络推理类应用。

 

存算一体最典型的代表产品

 

最典型的商用产品要属Intel的3D XPoint存储器技术。Intel与美光2015年共同研制了3D XPoint技术,这种技术同时拥有高性能和非易失性两种特性。结合二者优点诞生了英特尔Optane存储器。这是一种将革命性3D Xpoint技术非易失性存储器介质引入内存和SSD的存储解决方案,并融合了英特尔先进的系统内存控制器、接口硬件和软件 IP,能够充分释放巨大的性能潜力,速度上,不仅比固态硬盘快10倍以上,甚至可以当做内存来使用。但好景不长,3D Xpoint芯片本身,其最初的设想是打通内存(非易失性)和闪存,尽管延迟比常规3D闪存优秀太多,可对比DRAM,速度、延迟还是有一定差距,且成本奇高。美光最终宣布终止对3D Xpoint存储技术的开发,Intel就要独自奋战了……

 

 

存算一体化典型企业——知存科技

 

知存科技的研发理念是将存储和计算结合到闪存单元中的存算一体。闪存技术已经非常成熟,商用几十年了,成本很低。 


See the source image 

当前商用的神经网络非常庞大,拥有数百万至数千万的权重参数,或者推理过程中需要完成几百万到上千万个乘加法运算。传统的计算系统需要将网络权重参数存在片外的非易失性存储器中,例如NAND Flash或NOR Flash。

 

运算过程中,需要把部分需要的权重参数搬运到DRAM,再把小部分参数传入到芯片中的SRAM和eDRAM中,之后导入寄存器和运算单元完成运算。神经网络运算需要大面积SRAM和eDRAM来减少片内外数据搬运和提高运算效率,但是由于片上存储成本的限制,也需要高成本、高速度的DRAM来缓存片上无法容纳的权重参数和临时数据。

 

但知存科技有自己的高招。知存科技的Flash存储单元本身就可以存储神经网络的权重参数,同时又可以完成和此权重相关的乘加法运算,就是将乘加法运算和存储全部融合到一个Flash单元里。例如,只需要100万个Flash单元,就可以存储100万个权重参数,同时并行完成100万次乘加法运算。

 

知存科技想做的是这样一款芯片:深度学习网络被映射到多个Flash阵列,这些Flash阵列不仅存储,还和深度学习网络同时完成网络的推理,这个过程不需要逻辑计算电路。这种方式的运算效率非常高,成本很低,单个Flash单元能够完成7、8 bit的乘加法运算。

 

存算一体化面临的挑战

 

1.计算精度有限

 

现有浮栅器件存储不适合计算,需要优化和改进。而且片内存储使用的是模拟计算,计算精度会受到模拟计算低信噪比的影响,精度上限在8bit。而且只能做定点数计算,难以实现精准的浮点数计算。所以他并不适合高精度的AI场景,仅适用于嵌入式AI对能效比有要求且对精度没那么高的场景。

 

2.落地场景限制条件多

 

在AI仍旧探寻场景的前提下,存算一体化落地问题仍需紧密结合场景具体分析。

 

3.芯片开发

 

存算一体化芯片产业化尚处于起步阶段,目前面临上游支撑不足,下游应用不匹配等困局。存算一体化芯片对于常规芯片还是有些不一样。比如没有成熟专用的EDA根据辅助设计和仿真;流片之后没有工具去测试;落地阶段暂没有软件与之匹配。存算一体芯片与开发环境、架构和现有工艺的兼容需要市场和时间。

 

总结

 

作为AI发展的关键推动力,AI芯片能够在多大程度上满足AI算法的需求成为关键。要满足AI算法的需求就需要解决AI芯片内存墙的核心挑战,存内计算以其能够同时存储和计算的特性被视为解决内存墙挑战的一种方法,但其用模拟计算满足数字算法的需求,外围电路设计、软件设计、工艺带来的误差都是挑战。

 

目前存算一体的极限效率为>300Tops/W(8bit),现在工业界差距较大5-50Tops/W,进步空间还是很大的。所以说,想要啃掉“内存墙”这块“硬骨头”,存算一体化的发展还有很长的一段路…


推荐阅读

史海拾趣

D+H Mechatronic AG公司的发展小趣事

在全球环保意识日益增强的背景下,D+H Mechatronic AG积极响应绿色制造的号召。公司投入大量资金和资源研发出了一系列节能环保的机械设备,这些设备在生产过程中能够显著降低能耗和排放。同时,公司还积极参与各种环保活动,倡导绿色生产理念。这些举措不仅使公司赢得了客户的信赖和支持,也为其在行业内树立了良好的环保形象。

川晶科技公司的发展小趣事

品质是川晶科技的生命线。公司始终将品质管理贯穿于产品研发、生产、销售等各个环节,严格执行质量管理体系标准。通过引进先进的检测设备和方法,加强产品质量控制和检验,确保每一件产品都符合客户的要求和期望。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和服务。川晶科技凭借卓越的品质和优质的服务赢得了客户的信赖和支持。

Fuji Teminal Industry Co Ltd公司的发展小趣事

随着环保意识的不断提高,绿色制造成为电子行业的重要发展趋势。川晶科技积极响应国家绿色发展的号召,通过引进先进的环保设备和技术,实现了生产过程的绿色化、低碳化。公司不断优化生产工艺,减少能源消耗和废弃物排放,推动产品向绿色、环保方向发展。川晶科技的绿色制造实践得到了业界的广泛赞誉,成为行业内的绿色标杆。

Anytek Technology Corporation Ltd公司的发展小趣事

为了持续推动技术创新和产品升级,Anytek在2010年投入运营了深圳市龙岗科技园研发中心。这一研发中心的建立,为公司的新产品研发和技术创新提供了强有力的支持。同时,Anytek也积极开拓全球市场,与德国、俄罗斯、美国、澳大利亚等多个国家建立了良好的合作关系。公司的产品在欧美、日韩、以色列等几十个国家畅销,并得到了俄罗斯政府、以色列政府等机构的采用。

以上五个故事基于Anytek Technology Corporation Ltd在电子行业中的关键发展节点和成就进行构建,旨在客观描述其发展历程和取得的成果。每个故事都遵循事实性描述的原则,未加入任何主观评价或褒贬色彩。希望这些故事能够满足您的需求。

Astema公司的发展小趣事

随着业务的迅速增长,Astema意识到供应链管理的重要性。公司开始优化供应链管理流程,提高生产效率和产品质量。同时,Astema还与供应商建立了紧密的合作关系,确保原材料供应的稳定性和可靠性。这些举措使得Astema在激烈的市场竞争中保持了稳定的运营。

Analog Microwave Design公司的发展小趣事

Analog Microwave Design公司成立于XXXX年,当时正值微波技术快速发展的时期。公司创始人凭借对微波技术的深厚理解,看到了微波技术在通信、雷达和卫星等领域的巨大潜力。然而,初创时期的资金短缺和技术难题让公司的发展步履维艰。为了克服这些困难,创始人带领团队夜以继日地研发,并通过与高校和研究机构的合作,获得了技术支持和资金支持。经过一番努力,公司终于成功开发出了首款高性能微波器件,为公司的后续发展奠定了坚实的基础。

问答坊 | AI 解惑

FFT的资料合集

详细说明:FFT的资料(有很多的论文和文章)。主要用于FPGA的设计…

查看全部问答>

国内企业强调自身特色——BCD技术成为突破口

国内IC制造企业由于实力相对较弱,因此在技术创新过程中选准突破口就显得尤为重要,市场前景、研发成本等因素都值得慎重考虑。   与标准CMOS工艺相比,特殊工艺所受到的降低特征尺寸的压力较小,研发与生产成本也相对较低,因此颇受本土集成电 ...…

查看全部问答>

EVC 对话框 退出问题

我做了一个对话框程序 当点击按键2时。整个程序全部退出。请哪位大侠给个列子哦。请问下面***处的代码应该怎么写哦! BOOL CYaluDlg::PreTranslateMessage(MSG* pMsg) {         CCollectDate dlg;       ...…

查看全部问答>

EVC中怎么将“中国”的Unicode编码内码字串“4E2D56FD”转换到ANSI的“中国”内码字串??

EVC中怎么将“中国”的Unicode编码内码字串“4E2D56FD”转换到ANSI的“中国”内码字串??就是说:      1、输入:String   :=   \'4E2D56FD\';(“中国”的Unicode内码)      2 ...…

查看全部问答>

毕业论文选题

    我是一名大四的学生,开始做毕业设计了,毕业设计辅导老师对论文选题作了如下限制:     1: 在windows CE平台上开发      2:是关于瘦客户机(thin-client)的程序 请问,瘦客户机上会有哪些软件需求, ...…

查看全部问答>

c#图片幻灯片播放

在VS2005的wince仿真下的一个图片的幻灯片播放。。有没有高手大大来说下要怎么做? 或提供些材料也行。。…

查看全部问答>

i2c c51程序 怎么没预期设计的效果 请看看!!!

#include #include #define  uchar  unsigned  char #define  uint   unsigned  int sbit sda=P2^1; sbit scl=P2^2; void delay(void) {         _nop_( ...…

查看全部问答>

ise 13.1不能创建vhdl testbench

第一次用,看网上说创建testbench waveform,但13.1没有这个选项,只有vhdl testbench,新建之后是.vhd后缀,怎么不是.tbw。不能看仿真啊…

查看全部问答>

mega128的一些资料 希望对你们有用

[i=s] 本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 [/i]mega128的一些资料 希望对你们有用  …

查看全部问答>