移动数据或流程?

第1部分:移动数据是昂贵的,但决定何时以及如何将数据上下文相关的。系统和芯片体系结构正朝着相反的方向。

受欢迎程度

应数据转移到可用的处理器或处理器应放置接近记忆?这是一个问题学术界已经研究了几十年。移动数据是最昂贵的和能耗的任务之一,并往往是限制器系统的性能。

在一个芯片,摩尔定律使得设计师能够身体移动内存接近处理,这仍然是最经济的方法问题。在系统层面,不同的成本函数是导致选择的结论。(第二部分将分析决策系统级)。

从历史上看,只有大到足以包含处理器芯片,所以记忆芯片。摩尔定律使更多的功能需要移动到芯片上,以提供一个更大的性能提升耗电更少比通常可以通过提高处理器。

“我们的目标一直是把数据尽可能接近处理器,”迈克尔·汤普森说,高级产品营销经理DesignWare弧处理器Synopsys对此。“这是这记忆可以访问在一个循环。记忆仍是最慢的在这些系统组件。这就是为什么我们已经缓存和其他机制来管理内存的访问时间。”

随着时间的推移,缓存已变得更加复杂。“缓存的整个概念是想让数据更接近处理发生的地方,“说Anush莫汉达斯·,营销副总裁和业务发展NetSpeed系统。“这是简单的cpu主导的世界,和你可以做优化延迟和带宽或权力。许多方法崩溃当你来到世间的异构体系结构有多种计算引擎和每个人都有不同的特征如何处理其数据。”

视频处理的崛起也改变了方程由于需要大量的内存,和流率所需的最新视频标准。

多层缓存现在是正常的。“我们看到更大的和更深入的内存层次结构和更大的共享内存动态随机存取记忆体试图减少持续内存带宽要求,”补充说,首席技术官超音速。“我们看到一个推动HMB2和3和其他形式的很高的带宽DRAM,因为有一些应用程序的数据集的大小,它并不实用,即使有多级层次结构,获得足够的带宽。


图1:HBM2记忆。来源:三星

试图满足异构的要求,更复杂的层次结构成为必要。“有一件事是发生在一个集群的多个处理器,是实现L2高速缓存,直接连接到每个处理器,”汤普森说。“你有一个专用的L2和L3背后。这是一个试图将更多的数据更接近实时处理器。与512 k L2专用处理器,你不必保持一致性,因为你可以在L1缓存。在L2的机会成为高很多。”

但所有这些非常不同于学术工作,想植入记忆内处理。“人们称之为智能记忆,”Wingard回忆说。“对于某些类型的应用程序,需要的内存数量是如此之大,你永远无法把整个数据集到芯片上。所以他们问我们可以做得更好用一点处理成大量的内存,而不是相反。”

有几个问题,包括这一事实的记忆经常使用专业生产过程,不服从公司的逻辑。努力适应这个过程包括更多的逻辑将减少内存的成本效益。

“构建后发展出的过程往往没有好的晶体管构建数字逻辑,所以你最终付出重大的性能损失,“Wingard补充道。”同时,这些部分的密度是很难逻辑。我们还没有找到一个杀手级应用智能记忆。操作的类型,我们知道如何做是有限的好处。人们感兴趣的领域的认知计算因为一些非常记忆bandwidth-bound——特别是在训练阶段。然而,他们也被高度连接的性质和需要大量的通信,这是不容易实现的内存结构”。

改变编程范式
任何改变从一个连续的内存空间影响已经使用了几十年的编程范式。有这么多软件依赖,改变是很困难的。

“摩尔定律是死亡,我们必须找出一种不同的方式,”泰Garibay说,首席技术官ArterisIP。“我们看到增加异质性正是出于这个原因。为了继续我们需要特定于应用程序的数据处理规模。旧的软件模式会弯曲,可能被迫弹出一个水平。主机CPU仍叫一切作为一个软件叫,但这将是在GPU或执行FPGA或自定义块,和软件的人仍然认为它,就好像它是一个单线程或一组线程执行的更快。只要我们有很多工作,继续像一个线程,它相对简单优化这些异构处理器。”

软件可移植性仍然是重要的。“你想解耦的软件和硬件,莫汉达斯·补充道。“你不希望软件工程师考虑编码时的硬件架构。软件和硬件一起优化但它崩溃如果你有一堆软件人试图编写代码基于硬件结构。”

它不仅仅是执行。“任何复杂的不对称处理架构会有问题与引导,对整个系统的通信和IPC在子系统,“沃伦Kurisu指出,嵌入式系统产品管理主管部门导师,西门子业务。“OpenAMP解决一个复杂问题和改变范式人们如何开发一个系统,在本质上是异构的,无论是处理器和操作系统。虚拟I / O是必要的支持多台机器访问有限的I / O设备。OpenAMP使您能够引导操作系统的多个实例在不同的内核和在不同的操作系统实例建立沟通渠道。做这项工作你必须有共享内存。”

一件事改变与越来越多的集成的深度缓存层次结构。“当你通过记忆和子系统之间的通信,如果会发生在足够短的时间,涉及到一个足够小的数据集,你可以保持它的芯片,“Wingard说。“它可以是点对点传输,完成其中一个异构集群可以在另一个访问内存,或者通过某种形式的last-level-cache。这通常用于子系统之间的通信芯片。记忆是紧密集成到仅仅是有用的一个子系统,该子系统。”

但是有很多情况下加速器包含私有内存。通常这些是由专门的编程团队更紧密,从而理解硬件的主要软件流程不打扰。但这是越来越被视为一个不完美的解决方案。“当然是私有内存内一些处理器和在一个更高的水平,我们正在更多的可用内存的其他块SoC,”汤普森解释道。“例如,我们有一个低延迟记忆之间的核心坐在一个集群并允许它们之间的信息传递。我们感动,记忆让它相同级别的L2高速缓存可通过AXI总线。这意味着信息仍然可以在集群中的核心之间共享但它也可以与其他共享系统中功能块。这使得整个系统更加有效。”

结合数据和处理
所以聪明的记忆注定要保持学术兴趣的?“有很多的研究,但还没有任何已经批量生产,“Garibay指出。“有情况下视频内存,做了一些处理。,输给了拥有高容量的套接字的好处而不是定制的设备。”

gpu的另一种方式总延迟了仅仅通过一个专门的,宽,高速道路的记忆。

但有一个例子,商业上可行的在这一领域已有很长时间了。“与功能块,fpga交错记忆”Garibay说。“内存中处理与fpga是可能的,这是一种他们试图赢得AI推论之战。对于大多数事情FPGA并不是特别权力和区域有效,但推测您可以利用FPGA的可变位宽,你可以有类似内存或near-memory处理。使它更有效率比gpu。”

编程的fpga的人更容易意识到硬件架构,因此可以充分使用这些设备的功能。以及独立的FPGA芯片,我们看到嵌入式FPGA谈到了比过去更多的和商业设备已经开始出现。此外,FPGA的程序员正在迅速采用新编程技术,如OpenCL。这些都是更适合异构系统和并行执行。除了OpenCL并不取决于所有内存是共享的,可以利用以获得性能更加灵活的内存定义。

”层的软件保护的ASIC实现的程序员,”Frank Schirrmeister说高级组的产品管理和营销总监节奏。“FPGA市场出现更高级的,因为他们有更高的自由度。更重要的是可编程的硬件。层自动映射描述从OpenCL的实现变得更加重要。你不可能每一个软件设计师了解所有的细节,所以这是抽象到一个更高级的编程模型”。

所有这一切都指向变化和创新的建筑水平。

“我们将会看到更多的例子内存和计算系统之间建立更紧密的联系变得更加异构,“Garibay说。“为什么我们没有看到他们在过去是,历史上有一个巨大的奖金适用于同质性。如果有任务,可以使用内存中或附近的内存处理做得更好,没有人想建立芯片,因为它不会用于其他。如果增加异质性的趋势继续下去,我们能看到的一切。”

结论
设备为主流创建应用程序可能会继续沿着同样的道路他们几十年来一直在下面,这是减少电力和延迟的内存传输通过更复杂的应用程序缓存层次结构。异构架构使这更困难,因为每个核心优化要求可能不同,但是范式基本上可以被保留下来。新技术是新兴的包装和在系统水平将继续提高力量和延迟,如HBM内包和光子包之间的互连。

新应用程序以外的遇到传统的编程范式,如机器学习和推论,当合适的硬件架构存在,如fpga,我们可以看到很多更紧密的处理和内存之间的联系。然而,这些注定要留在少数。

这个报告的第二部分将研究同一个问题从系统的角度来看,看看范例有变化的速度有多快。

有关的故事
移动数据或流程?(第2部分)
成本与移动数据升级当我们从芯片到系统。额外的社会和技术因素驱动不同的体系结构。
缓存一致性如何影响力量,表现
第1部分:看看沟通跨多个处理器在一个SoC的影响以及如何更有效。
缓存一致性如何影响力量,表现
第二个两部分组成:为什么和如何添加缓存一致性到现有的设计
CCIX使机器学习
系统可以使或打破世俗方面的解决方案,通常和接口定义什么是可能的。



留下一个回复


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

Baidu