在soc处理性能瓶颈

soc不断添加处理核心,但他们不太可能被充分利用,因为真正的瓶颈并没有被解决。

受欢迎程度

激增的数据量soc陷入困境需要过程性能,当处理器本身可以处理大量涌入,内存和通信带宽是紧张的。现在的问题是,能做些什么。

内存和CPU带宽之间的差距——所谓的“记忆墙是有据可查,绝对不是一个新问题。但它并没有消失。事实上,它继续恶化。

研究科学家的三年级学生早在2016年,约翰•麦卡尔平得克萨斯高级计算中心,给了一个说话他看着内存带宽和系统资源之间的平衡对于高性能计算(HPC)。他分析了当时排名前500的机器和解剖其核心性能,内存带宽、内存延迟,互连带宽和互连延迟。他的分析表明,峰值每个套接字失败是每年增加50%到60%,而内存带宽只有每年增加约23%。此外,内存延迟退化每年在4%左右,和互连带宽和延迟每年增加约20%。这些建议继续和扩大不平衡数据移动。

这意味着如果我们流数据,每一个内存传输尽可能多的时间100浮点算术运算。在内存延迟的情况下,你不能预取缓存小姐,你,你已经失去了机会去做超过4000浮点运算。

图1:元素的不平衡系统的性能。来源:约翰•McCalpin TACC,德克萨斯大学奥斯汀分校

图1:元素的不平衡系统的性能。来源:约翰•McCalpin TACC,德克萨斯大学奥斯汀分校

一个设计良好的系统是平衡的。“如果有两个解决方案,一个更有效地使用晶体管,它将获得更多的吞吐量/美元每瓦和吞吐量,这就是大多数人都想要,“说杰夫•泰特的首席执行官Flex Logix。“很难实现架构,利用率高,但是利用率可以得到越多,越好。晶体管仍然不自由。”

其他人也同意。“在查看系统性能时,要么是计算束缚,内存受限,或I / O,”比尔·詹金斯说,产品营销主管Achronix。”计算更快,你需要更加重视更快的内存来跟上计算,你也需要更高带宽接口获取数据的设备。”

但是这个行业有一个迷恋处理性能。“计算单元的功能,不管它是什么,很重要,但它们往往不是限制因素在实际系统的速度,”罗伯•艾特肯表示Synopsys对此的家伙。”系统速度器用户,由速度数据来自某个地方,不知怎么处理,并发送到哪里它是被使用,受到的所有杂项约束一切。”

这意味着它是不可能建立一个系统,对所有任务是最优的。关键是要确保它是均衡的,而不是在任何地区过度供给的。

移动数据
移动数据的成本肯定会影响系统的性能,但它也涉及到权力因为移动一块数据的数量级消耗更多的能量比进行计算。完成一项任务,它通过外部接口通常意味着移动数据到内存中,内存,CPU和内存和CPU之间的中间结果的最后结果被推迟通过外部接口。

“不管你的计算速度,或者多大内存数组,最终将决定是什么芯片的性能和系统总线的带宽连接两个,“Pradeep Thiagarajan说,主要产品经理在模拟和混合信号集成电路验证的解决方案西门子EDA。“这就是你最大的瓶颈。它不仅仅是一辆公共汽车。基本上你的收发器,串并收发器连接,它带来了完全不同的维度,一个需要解决的问题。”

最大的一个有效的内存带宽的进步一直在采用缓存。这有效地让记忆更接近处理器,和减少延迟,假设大部分内存访问来自这个内存而不是主要的记忆。然而,缓存性能下降,这是增加的一个主要贡献者延迟(如图1所示,上图)。甚至HBM的引入并没有设法扭转这一趋势,因为处理器性能提高如此之快,主要是通过核的数量迅速增加。McCalpin说延迟是由于缓存的退化是越来越复杂,特别是更多的内核保持连贯,多级缓存中查找被序列化来节省电能。

另一个替代方法是移动计算接近的记忆。“内存计算的时代才刚刚开始,”马克·格林伯格说,产品营销组主任节奏IP组。“我看到三种方式,这可能发生。通常情况下,我们没有看到大量的DRAM模复杂的逻辑,因为经济学的DRAM制造业。我们可以看到的是一个小数量的非常具体的功能添加到那些死去——例如,积累或multiply-accumulate函数,它是常见的在许多DSP和人工智能算法。第二个可能CXL等技术。mem,很可行的计算功能添加到逻辑控制内存数组中死去。从技术上讲这是在内存中处理内存而不是附近的处理。第三是介于这两个概念。某些堆叠的记忆像HBM,通常是一个逻辑的DRAM死co-packaged相同的堆栈,这逻辑死是总线之间的接口,面临着CPU和DRAM的设备。逻辑死给低到中等的空间复杂性处理元素的逻辑死。”

HBM当然有帮助的成功推广chiplets的概念,在芯片已成为十字线有限,或产量有限,现在可以在多个chiplets捏造和集成到一个包中。然而,现在需要die-to-die连接性解决方案,可能会比在一个慢死。“当芯片公司分裂成多个均匀死了,你想要同样的操作从一个分裂的芯片,在不降低性能,或准确性,”苏米特说Vishwakarma,产品经理在西门子EDA。“你想确保两者之间几乎是零延迟。”

实际上,这些chiplets正在设计的系统,反之亦然。“这不仅仅是内存或控制器的设计,“尼尔斯·Fache说,副总裁和总经理PathWave软件解决方案Keysight技术。“集成电路设计,介绍自己的寄生进入包。所以你必须看公用事业和潜在的阻抗变化的水平。你真的需要把它作为一个系统,看看眼图,看看如何优化,根据操作条件的系统”。

为此,设计团队正在考虑把成包的一些功能,以前包之外的存在,大大增加带宽和减少延迟。“根据源,接收端,这些的目的是什么决定了接口和协议,“西门子Thiagaraja说。“这将是一件事compute-to-compute。同样的compute-to-memory接口将会非常不同。它可以非常不同于compute-to-I / O。我们现在看到HBM栈,在相同的包中,并且他们需要连接。你有那么多的协议——USB, SATA,作为PCIe, CXL, DDR, HMC, AXUI MIPI——的例子不胜枚举。新协议正在形成,因为需求的,需要新的接收器die-to-die连接。”

multi-die系统的巨大优势之一是可用的连接的数量变得大很多。“从I / O的角度来看,我们曾经有1024位公交车,然后我们去了串行接口,”詹金斯说。“但最近发生了什么是这些串行接口现在已经成为并行,如x32作为PCIe由32通道的高速串行连接。”

并行扩展到多核系统。“四系统运行操作系统,你有一些操作可以并行化和其他那些本质上是连续的,“说罗迪厄克特、高级技术营销总监Codasip。“这就是Amdahl法则适用。然后,还有其他等新兴挑战AI /毫升,可以利用数据并行性,通过使用数据并行性可以开发非常专门的架构来处理具体问题。也有一些机会在嵌入式设备。我们一直在做一些研究使用一个相当传统的三级管道,32位RISC-V核心使用谷歌TensorFlow Lite微控制器来进行量化,然后创建自定义RISC-V指令加速神经网络使用非常有限的计算资源。现在,这将在物联网的边缘工作得很好,也许你已经有了简单的传感或简单的视频处理。但对于增强现实或自主驾驶,你处理更大量的视频数据。利用这种方法是利用固有的并行数据。”

帮助明显在加工方面,但这只是解决方案的一部分。McCalpin说,重点是使后发展出更大,而不是让他们更快。DRAM周期基本上保持不变在过去20年里,和所有性能的改善来自发送更大量的数据作为一个破裂。如果更多的通信通道通过HBM可用,这也许会使记忆周期的瓶颈。

工作负载
如前所述,系统性能取决于工作负载。不可能优化通用机为我所做的一切。“找出平衡是迫使人们重新思考人们如何处理这个问题,”艾特肯说。“这取决于你是谁和你在做什么,解决的问题,“我有一个非常具体的工作,我理解,我有足够的控制我自己的计算宇宙,“是,我可以设计定制优化我的工作量,或工作负载,如我的工作量,不管它的方式好处是我想做的。”

甚至一个任务像AI代表不同的工作负载。“如果你看看AI有两个方面,“西门子Vishwakarma说。“一个是培训,培训你需要经常访问的内存,因为权重驻留。和你经常改变重量,因为你训练模型。在那里,沟通是关键。然而,如果你看看推断,该模型已经训练有素,你所要做的是MAC的操作。你不改变权重。权重是固定的。”

创建正确的平衡需要一个共同设计方法,艾特肯说。”是我的方式解决这个问题,和我的分布式算法的各种组件,理想的解决办法吗?一旦你建立了这是我想要的,一般的算法结构,你可以将它映射到一些对象预定义的计算能力,预定义的带宽,等等。如果我决定我需要一个定制的处理对象,我可以把它在一起。这些都是问题的元素。有很多机会在这个空间,这将成为明显的随着越来越多的人想试试这个东西。”

即使在硬件领域,有很多需要发生的合作设计。“有一个架构阶段你为multi-dies评估各种场景,“Thiagaraja说。“建筑师的主要焦点是真的吞吐量和带宽内的芯片,芯片和外出。另一方面,你的物理设计团队找出最优模具的大小。它不能太大,因为产量和力量。它不能太小,因为你必须处理少量的计算在每一个死。他们从权力和区域视角。然后你有设计团队建立的接口和协议。体系结构团队、物理设计团队和设计团队在一个常数的三方战斗找到一个最佳点,让每个人都高兴。”

计算模式
对于一些问题,利用传统的软件本身可能导致低效率的解决方案。这件事发生在从单核过渡到多核,和gpgpu的采用。这个行业正在等待它发生在新一代的人工智能硬件。

“GPU实现点,这是一个大规模并行计算对象,可以做各种各样的事情不仅仅是呈现形状,”艾特肯说。“有很多的努力被消耗,很多人,在这样的架构可能是什么样子。AI,采用TensorFlow之间的紧张关系,或者你对比,我可以变出一些新的方法,一个新的架构,将处理一些备用的方式解决类似的问题好吗?“有很多猜测。有很多人尝试,但我不知道谁有水平,有人可以做GPGPU,说这就是“前进之道”。如果他们确实将是一件很酷的事。”

有一些非常具体的,可以应用于人工智能硬件步骤来克服记忆转移问题。“模拟计算有不同的方法看同样的问题,但在一个不同的视角,“Vishwakarma说。“如果你想做一个加法器在数字,一个加法器将7或8门。每个门都有四个或五个晶体管。添加两个数字你看大约50个晶体管。但如果你用一个模拟方法中,你基本上加入两个电线。这是当前的。推论,你有这个MAC操作,大量增殖和积累,你可以使用模拟计算权重并存储在一个闪存。你正在采取一种不同的方法来计算整体。”

“我一直喜欢这种技术几十年来,“节奏的格林伯格说。”,然而它似乎总是要起飞的时候,它会取代进步在数字域。也许有一天我们会看到模拟计算摩尔多的技术,但我们不能完全的模拟是跳动的数字域。”

几种有前景的创业公司在模拟空间已经失败。它很难出售一个完全新的概念时很难比较。“计算能力通常是透过镜头的基准测试数据中心架构师作为一个方法来评估供应商的解决方案,”莫里斯·斯坦曼说,负责工程的副总裁Lightelligence。“基准测试结果通常表示为原始性能,或性能的东西很重要,诸如成本、区域,或能量,基本上能完成多少工作,代价是什么。”

和行业似乎生时盲目处理器性能。“CPU本身有一定的原始计算能力,基本上,这个东西的单线程性能,”艾特肯说。“即使它不是整个度量,它仍然是一个有用的度量系统能做什么。还有更广泛的指标为每瓦行动。这是一个系统的整体效率的关键指标。挑战搬过去的痴迷只是生在加速器上每瓦,但操作上和必要的数据怎么到那里?和了多少瓦?这是作为练习留给用户。”

结论
添加更多或更快的处理核心是伟大的,但除非你能让他们忙碌的你这是在浪费时间,金钱和权力。你可以让他们忙的可能性减少。算法的数量有正确的内存transfer-to-compute比例正在减少。

DRAM的迁移到这个包,我们可以预见潜在的持续增加带宽,越来越对DRAM性能并没有增加在过去的20年。如果DRAM制造商无法解决这个问题,那么该行业将不得不建筑师本身的问题。



留下一个回复


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

Baidu