中文 英语

日益复杂与记忆之间的关系

压力也就变化与记忆相关的编程范式,但到目前为止经济理由阻碍进步。

受欢迎程度

处理器和内存使用之间的关系非常简单,但在现代soc有多个异构处理器和加速器,每个需要一个不同的访问内存最大效率的手段。

妥协是为了保留过去的统一编程模型,但压力增加对一些根本性的变化。紧要的部分市场的芯片设计。的结束摩尔定律对许多人来说,结束Dennard扩展对每个人来说,需要充分利用可用的晶体管,意味着建筑选择受到质疑。内存被仔细看着。

权力是一个司机。“大多数硅设计使用各种技术来降低功耗,“安普萨哈说,市场开发经理导师,西门子业务。“改善内存访问是最大的一个直接架构创新降低整体系统级功耗。这是因为一个芯片外DRAM访问消耗近一千倍的力量比32位浮点乘法操作。”

有非常重大的影响,改变了内存架构。“挑战是,在过去,人很好,考虑计算系统抽象模型,”史蒂文说哇,研究员、著名的发明家Rambus。“他们从未真正思考记忆。免费走过来,编程模型做到了这样,当你对内存的引用。它只是发生。你从来没有明确你在做什么。随着摩尔定律的放缓,开始发生什么权力扩展停止时,人们开始意识到有很多新型的记忆进入方程,但让他们真正有用的你必须摆脱非常抽象的观点,我们过去。”

甚至看内存以传统的方式意味着不断变化。“问题已经改变随着时间的记忆变得更大,这些记忆得到更多的接口带宽与他们有关,”马克·格林伯格说,集团产品营销主管节奏IP组。“我们今天看到的内存架构,记忆像DDR5或者LPDDR5 GDDR6,不同于我们就会看到DDR1 20年前。但是每个人都仍在试图解决同样的问题,这是我怎样才能正确的可用内存容量我处理元素在最少的时间内以合理的成本。”

需要反思
有一些行业标准技术依赖于过去,如缓存,移动数据接近处理器。“如果数据更接近,这意味着它耗能更低,这也意味着您可以运行这些接口更快,“说Rambus吸引。“现在我们可能没有更好的节奏,我们习惯于逻辑,挑战在于如何开始思考不同方式获得性能提升。这就是为什么人们关注的新架构,领域特定的体系结构和更多关注有效的数据移动,确保它是接近的地方。”

域特异性将是一个大的一部分。“设计师需要做出选择的背景下整体系统和应用程序或工作负载,“导师的萨哈说。“微体系结构的选择他们需要做出相关内存层次结构与延迟和带宽之间的平衡——当地和全球对片外共享vs。同样重要的是要优化算法来提高数据本地化,以减少数据移动。这些选择是依赖于特定的芯片设计运行的工作负载。例如,图像处理加速器使用行缓冲(只适用于小样本的图像),而神经网络加速器使用双缓冲记忆(就像他们需要操作图像多次)。”

我们看到类似micro-architectural选择是由高级合成工具。虽然它们创建自定义逻辑解决方案,逻辑与记忆之间的关系通常的核心micro-architectural合成过程中选择。“能够调整这些设计的微体系结构的选择不仅需要搬到一个更高层次的抽象,但也做频繁C-to-GDS流动测量PPA设计更改的影响,”萨哈补充道。

领域特定的体系结构通常是与新的语言和编程框架。“这些经常创建新层的内存和缓存方法或移动数据,使它更接近它需要的地方,”Woo说。“它增加了一个维度,大多数行业是不习惯。我们并不是真的在学校教这样的事情,这不是该行业几十年的经验了。所以它不是根深蒂固的程序员。”

高端系统不断寻找新接口和结构来帮助提高性能。“最大的瓶颈减少带到市场今天是相关联的HBM记忆,”布雷特•默多克说,高级产品营销经理Synopsys对此。“这是一个缓慢但稳定的突破帮助的情况。客户可以使用HBM内存来实现高带宽,因此这个名字,他们可以使用它像一个4级缓存系统中。得到大量的数据更接近处理器。他们仍然使用DDR5风格的大量的数据存储记忆,但这记忆是额外的周期。”

虽然很容易专注于高端系统,相同的问题被认为在最低水平,。考虑一个小型单片机使用闪存。“单片机来做所有的工作,”保罗•希尔表示高级营销总监Adesto的标准产品组。“这是当作一个孩子,并被告知一切。当你开始一个项目周期,单片机发送数据,项目周期开始,然后监控程序的情况直到最后周期。此外,当你不得不程序数据,你必须检查以确保它的内存能够接受数据。如果没有,你必须擦除部分和启动程序周期。每次单片机访问内存时,它必须执行检查和测试和执行控制功能。为什么不能记忆装置成为一个更加系统的组成部分和内存设备自己做很多的,为什么不能记忆装置成为一个智能外围?”

新的应用程序
它总是容易改变的东西在没有根深蒂固的解决方案。这就是发生在图形处理,计算范式不同,是不可能获得性能或效率使用的工具和流为通用cpu设计的。改变需要时间,但是最终它确实发生了。

今天另外两个应用领域正在推动改变。首先是人工智能(AI)的基础上神经网络。“大多数AI加速器取得了重大努力减少片外存储器访问,”萨哈说。“例如,一个主要的建筑变化在谷歌的第一TPU在芯片上的大幅增加静态存储器。避免溢出激活DRAM芯片外。其他asic极大地增加了内存带宽。一些公司也在寻找“内存计算”完全返工冯诺依曼结构从传统。”

的首席执行官杰夫•泰特Flex Logix解释说,人工智能记忆问题。“神经网络计算的关键元素是用/累积函数(MAC)。每一个需要访问一个重量值从内存(1 6200万年YOLOv3的情况下),而YOLOv3需要超过3000亿mac来计算一个像素的图像。权重的数量要求CNN对象检测/识别神经网络和其他上千万像素的图像处理算法。这是太多的存储芯片上的任何有效的芯片适合边计算,所以重量必须存储在DRAM。设计内存子系统的目标应该是减少DRAM转移,因为它们更高的权力比芯片上的每个字节访问,和存储信息尽可能接近mac电脑。”

尽管每个人工智能芯片是用不同的方式来解决这个问题,可以使用域特异性。例如,AI加速器过程分层技术,可以预测提前需要什么内存内容。

“虽然层在处理N, N + 1层的权重从DRAM,在后台,在N层的计算,”泰特说。“所以DRAM传输时间很少摊位计算,即使只是一个单一的DRAM。当N层计算完成,N + 1层的权重是搬几微秒从高速缓冲存储器内存直接相邻的mac。计算下一层时,权值用于每一个MAC直接从存储器位于毗邻每个集群的MAC电脑,所以权重很低功率的计算访问和非常快。”

另一个应用程序区域,正在迅速改变物联网(物联网)。仅仅几年前,大行业参与者建议会有数十亿的传感器,每个发送数据到云进行处理。

“很多人谈论边缘计算是一个答案,当你有所有这些连接设备,是不可能将所有的数据移动到云,“说Rambus吸引。“所以,这是一个很好的例子,处理正在接近的数据。还有一个有趣的安全方面,。处理数据生成的数据旁边留下更少的安全漏洞。那里仍然可以与设备安全问题,但最重要的是,它是一个分布式处理的问题。”

很多物联网系统是基于单片机,大多数利用闪存。闪存一直包含处理能力来处理问题,如穿平整,但总是试图保持其他内存类型的编程范式。“使用一些简单的技术,我们可以证明快5倍性能使用少70%的电能,“Adesto的希尔说。马“内存设备消耗5或6时无关紧要的单片机是消耗一个数量级以上。所以我们看内存如何与系统和问如果我们可以减少单片机本身的力量。这些变化修改单片机使用内存的方式。”

希尔指出,一种方法可以做到这一点。“左边(图1)是传统的串行flash。橙色块只是用于编程数据。你将数据写入缓冲区,一旦停用芯片选择flash数组缓冲区开始项目。我们做了一个简单的改变,我们SRAM缓冲双向的。这有大量的好处。另一个变化是,通常情况下,块数组是4 k, 32 k到64 k。如果你想修改一个字节的数据,在一个串行flash,你必须先确保整个块擦除。擦除块需要60 ms,这在一个用于单片机系统是一种永恒。在这60女士,你不能做任何其他的存储设备。 It is effectively offline. We changed the architecture by increasing the granularity of the block size down to 256 Bytes. This is what we call a page, and we made the device page erasable. Simply, if you want to erase and change 1 Byte, it makes sense to do that at the 256-Byte level.”


图1:建筑一个闪存设备中所做的更改。来源:Adesto

另一个变化Adesto是在内存允许一定程度的自治。而不是处理器等待完成手术,记忆会发送一个中断时准备好了。处理器可以睡觉和节省电力,这个操作。

我们看到其他内存压力带来的物联网。“这个行业没有特别好过去五年是构建记忆足够小的使用在物联网应用,“节奏的格林伯格说。“他们想建立一个芯片,低功率,但利用一定数量的DRAM。他们的选择是什么?它可能不会LPDDR5。你可能需要看看老内存技术(如LPDDR3甚至更早的时候能够找到一个足够小的存储设备以适应应用程序。物联网是一个特例,在另一端的频谱从服务器、智能手机和智能生活。他们想要更多的内存比可以放在经济在SRAM或eDRAM死去,但低于所要求的高端应用程序。”

新方法
有几种运动部件——记忆本身,内存的接口,操作的范例。每一个正在看着基于需求的个人和集体。然而,可能达到的最大的收获是当硬件和软件的变化。

“程序员将不得不变得更加意识到内存层次结构是什么样子,”Woo说。“它仍然处于初期阶段,行业还没有选定了一种特殊的模式。但有一个大致了解,为了使它有用,你必须增加了解是什么。的编程模型,就像持久记忆(PMEM),呼吁用户了解数据,并思考如何把它并确保数据在需要的地方。”

观念硬件/软件合作设计恐吓许多业内人士。“行业正在开始意识到硬件本身不能没有输入的软件团队开发,”希尔说。“大多数软件消耗所有可用的资源,他们依靠稳步增加处理能力。当我们达到一个实时的情况下,他们倾向于把更多的马力的问题。但是内存设备可以不再被视为一个单独的硬件组件。得到最好的使用系统,软件工程师必须成为设计和开发周期的一部分。这些特性可以在硬件中实现,但除非软件工程师利用他们,他们会给系统带来任何好处。”

健康的怀疑仍然存在。”对于这个乌托邦,CPU制造商,操作系统提供商,内存制造商和应用程序设计人员都有合作设计他们的系统架构,利用真实的差异”格林伯格说。“我们还没有看到,除了少数的封闭系统,制造商可能控制硬件和操作系统。但是,作为一个行业,我们没有准备好或者能够生活在这样一个世界里:硬件协同设计的操作系统,应用程序协同设计与操作系统内存与硬件协同设计,一切都做在一起。所以我们段,每个链接的目的是独立于他人一道很好地工作。我们得到一个系统,可以接受,但可能留下一些潜在的优化。能够做计算的前景在内存中是无处不在的,但是我们从来没有在一个地方的经济意义构建一个真正的为特定的应用程序专用DRAM。”

尽管如此,没有人愿意说它不会发生。“我们继续看空间,因为它影响内存层次结构,”吴表示。“已经有很长一段时间新的记忆和新的内存层次结构已经进入市场,并得到了该行业意识到这样可能是非常有用的。”



4评论

凯文·卡梅隆 说:

AI /神经网络和内存计算是老问题,或者至少它们看起来就像我们以前解决问题。神经网络eval一样是电路仿真,和内存计算是早在1990年就Inmos在做什么。

PMEM也不是新的,一样的hdd(现在是固体)。

Tidwell威廉 说:

“每次单片机访问内存,它必须执行检查和测试和执行控制功能。为什么不能记忆装置成为一个更加系统的组成部分和内存设备自己做很多的,为什么不能记忆装置成为一个智能外围?”

谢谢你的想法至关重要的话题。关于上面你的语句,这正是gen z的问题“语义”模型旨在解决。希望我们将会看到一个健壮的采用曲线在接下来的几年里这个新的范式。

史蒂夫·胡佛 说:

另一个伟大的文章,布莱恩。共享内存和消息传递是一个激烈的辩论时,我在学校。我有点失望,共享内存通常被视为一个更简单的编程模型。(然后我最终支出年设计硬件处理的复杂性实现共享内存)。这是一个芯片外的问题,正如我们的规模,与计算机体系结构的一切,现在是一个芯片上的问题。很好的总结今天我们站的地方。

布莱恩•贝利 说:

虽然可能已经见过的问题,但是他们并没有圆满地解决了。要解决它必须是可部署的不止一个人。在很多情况下,软件方面从来没有妥善解决,中断水平被视为过于高。改变的风险/回报水平变化。

留下一个回复


(注意:这个名字会显示公开)

Baidu