突破SoC的性能瓶颈

来源:内容由半导体行业观察(ID:icbank)编译自semiengineering,谢谢。


SoC 不断增加处理核心,但它们不太可能得到充分利用,因为真正的瓶颈没有得到解决。

SoC 需要处理的数据量激增正在拖累性能,虽然处理器本身可以处理这些涌入的数据,但内存和通信带宽正在紧张。现在的问题是可以做些什么。

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

早在 2016 年,德克萨斯高级计算中心的研究科学家 John McCalpin 发表了一次演讲,他在演讲中研究了高性能计算 (HPC) 的内存带宽和系统资源之间的平衡。他分析了当时排名前 500 的机器,并剖析了它们的核心性能、内存带宽、内存延迟、互连带宽和互连延迟。他的分析表明,每个插槽的峰值 FLOPS 每年增加 50% 到 60%,而内存带宽每年仅增加约 23%。此外,内存延迟以每年约 4% 的速度下降,而互连带宽和延迟每年增加约 20%。这些表明数据移动方面存在持续且不断扩大的不平衡。

这意味着如果我们是流式数据,每次内存传输花费的时间相当于 100 次浮点算术运算。在内存延迟的情况下,您无法预取并且错过了缓存,您已经失去了进行 4,000 多次浮点运算的机会。

突破SoC的性能瓶颈
图 1:系统性能要素的不平衡。资料来源:德克萨斯大学奥斯汀分校 TACC 的 John McCalpin

一个设计良好的系统是平衡的。“如果有两种解决方案,其中一种可以更有效地使用晶体管,那么每美元的吞吐量和每瓦特的吞吐量就会更高,而这正是大多数人想要的,”Flex Logix 首席执行官杰夫泰特说。“很难交付获得高利用率的架构,但您可以获得的利用率越高越好。晶体管仍然不是免费的。”

其他人同意。Achronix产品营销总监 Bill Jenkins 说:“在查看系统性能时,事情要么受计算限制,要么受内存限制,要么受 I/O 限制。” “随着计算速度的加快,您需要更加重视更快的内存来跟上计算的步伐,并且还需要更高带宽的接口来将数据传入和传出设备。”

但业界对加工性能着迷。“计算单元的能力,无论它是什么,都很重要,但它们通常不是实际系统速度的限制因素,” Synopsys研究员 Rob Aitken 说。“系统速度取决于工作负载,它取决于数据从某个地方获取、以某种方式进行处理并发送到使用它的任何地方的速度有多快,并受到沿途一切事物的各种限制。”

这意味着不可能构建一个对所有任务都最优的系统。关键是要确保它是平衡的,并且在任何区域都没有过度配置。


▎移动数据

移动数据的成本肯定会影响系统性能,但它也与功耗有关,因为移动数据所消耗的功率比对其执行计算要多几个数量级。完成一个任务,一般意味着数据通过外部接口进入内存,从内存到CPU,中间结果在内存和CPU之间来回跳动,最后通过外部接口推回。

“无论你的计算速度有多快,或者你的内存阵列有多大,最终决定你的芯片和系统性能的是连接两者的总线带宽,”模拟技术首席产品经理 Pradeep Thiagarajan 说。以及西门子 EDA的混合信号 IC 验证解决方案。“这就是你遇到的最大瓶颈。它不仅仅是一辆公共汽车。它基本上是您的收发器、SerDes 链路,它为需要解决的问题带来了一个完全不同的维度。”

有效内存带宽的最大进步之一是缓存的采用。这有效地使内存更接近处理器,并减少延迟,假设大多数内存访问来自此内存而不是主内存。但是,缓存性能一直在下降,这是延迟增加的主要原因之一(如上图 1 所示)。即使 HBM 的引入也未能扭转这一趋势,因为处理器性能增长如此迅速,主要是通过快速增加的内核数量。McCalpin 说延迟的下降是因为缓存变得越来越复杂,尤其是当更多的内核保持一致时,并且多级缓存中的查找被序列化以节省功率。

另一种选择是将计算移动到更靠近内存的位置。“内存计算时代才刚刚开始,”Cadence 产品营销组总监 Marc Greenberg说的 IP 组。“我看到这可能发生的三种方式。通常,由于 DRAM 制造的经济性,我们在 DRAM 芯片上看不到很多复杂的逻辑。我们可能会看到少量非常具体的功能被添加到这些模具中——例如,累加或乘法累加功能,这在许多 DSP 和 AI 算法中很常见。第二种可能是像 CXL.mem 这样的技术,在这种技术中,将计算功能添加到控制内存阵列的逻辑芯片是非常可行的。从技术上讲,这是在内存附近处理,而不是在内存中处理。第三个介于两者之间。对于像 HBM 这样的某些堆叠式存储器,通常有一个逻辑芯片与 DRAM 共同封装在同一堆栈中,而该逻辑芯片是面向 CPU 的总线与 DRAM 设备之间的接口。

HBM 的成功无疑帮助普及了 chiplet 的概念,在这种情况下,受到光罩限制或产量限制的芯片现在可以在多个 chiplet 上制造并集成到一个封装中。然而,这现在需要 die-to-die 连接解决方案,这些连接解决方案可能比单个 die 上的连接解决方案慢。西门子 EDA 产品经理 Sumit Vishwakarma 表示:“当公司将芯片拆分成多个同质裸片时,您希望从拆分芯片进行相同的操作,而不会降低性能或精度。” “你要确保两者之间的延迟几乎为零。”

实际上,这些小芯片是在系统环境中设计的,反之亦然。“这不仅仅是存储器或控制器的设计,”是德科技副总裁兼 PathWave 软件解决方案总经理 Niels Faché 说。“封装中的 IC 设计会引入其自身的寄生效应。因此,您必须查看实用程序和阻抗水平的潜在变化。你真的需要将其视为一个系统,查看眼图,了解如何根据系统的运行条件对其进行优化。”

为此,设计团队正在考虑将一些以前存在于包外的功能引入包中,从而显着增加带宽并减少延迟。“根据来源和接收方,这些目的决定了接口和协议,”西门子的 Thiagaraja 说。“计算到计算将是一回事。对于计算到内存,相同的接口将大不相同。它可能与计算到 I/O 有很大不同。我们现在看到在同一个包中的 HBM 堆栈,它们也需要接口。您有这么多协议——USB、SATA、PCIe、CXL、DDR、HMC、AXUI、MIPI——这个列表还在继续。由于要求,正在创建更新的协议,并且需要为这些芯片到芯片的连接提供新的接收器。”

多管芯系统的一大优势是可用的连接数量变得更大。“从 I/O 的角度来看,我们曾经有 1,024 位总线,然后我们转向了串行接口,”Jenkins 说。“但最近发生的事情是那些串行接口现在变成了并行接口,例如 x32 PCIe,它由 32 通道的超高速串行连接组成。”

并行化也扩展到多核系统。Codasip高级技术营销总监 Roddy Urquhart 表示:“四核系统运行类似操作系统,一些操作可以并行化,而其他操作本质上是顺序的。”. “这就是阿姆达尔定律适用的地方。然后,还有其他新兴挑战,例如 AI/ML,您可以在其中利用数据并行性,并且通过使用该数据并行性,您可以开发非常专业的架构来处理非常具体的问题。嵌入式设备也有一些机会。我们一直在使用相当传统的三级流水线、32 位 RISC-V 内核进行一些研究,使用谷歌的 TensorFlow Lite for Microcontrollers 进行量化,然后创建自定义 RISC-V 指令以使用非常有限的计算资源加速神经网络. 现在,这在 IoT 的边缘会很好地工作,在那里你可能需要进行简单的传感或简单的视频处理。但是对于增强现实或自动驾驶之类的东西,您要处理的视频数据量要大得多。

这对处理方面有很大帮助,但这只是解决方案的一部分。McCalpin 表示,重点是让 DRAM 更大,而不是让它们更快。DRAM 周期时间在过去 20 年中基本保持不变,性能的所有改进都来自突发发送更大的数据块。如果通过 HBM 可以使用更多的通信通道,这可能会使内存周期时间成为瓶颈。


▎工作负载

如前所述,系统性能取决于工作负载。不可能针对所有事情优化通用机器。“弄清楚这种平衡迫使人们重新思考人们如何处理这个问题,”艾特肯说。“根据你是谁和你在做什么,解决‘我有一个我理解的非常具体的工作负载,并且我对自己的计算世界有足够的控制’的问题的解决方案是我实际上可以设计一些东西它是为优化我的工作量或类似我的工作量的工作量而定制的,无论我想做什么,它都会从中受益。”

即使像 AI 这样的任务也代表不同的工作负载。“如果你看人工智能,它有两个方面,”西门子的 Vishwakarma 说。“一个是训练,在训练中你需要不断地访问记忆,因为重量就在那里。你不断地改变权重,因为你在训练模型。在那里,沟通是关键。然而,如果你看推理,模型已经训练好了,你所要做的就是 MAC 操作。你没有改变权重。重量是固定的。”

Aitken 说,创造正确的平衡需要一种共同设计的方法。“我解决这个问题的方式,以及我将算法分配到各个组件的方式,是解决问题的理想方式吗?一旦确定这是我想要的通用算法结构,您就可以将其映射到一些具有预定义计算能力、预定义带宽等的对象上。如果我决定我需要一个自定义处理对象,我可以将它们放在一起。这些都是问题的要素。这个领域有很多机会,随着越来越多的人想尝试这个东西,这一点会变得很明显。”

即使在硬件领域内,也需要进行大量协同设计。“有一个架构阶段,您可以在其中评估多管芯的各种场景,”Thiagaraja 说。“架构师的主要关注点实际上是芯片内以及芯片外的吞吐量和带宽。另一方面,您的物理设计团队必须找出管芯的最佳尺寸。由于产量和功率,它不能太大。它不能太小,因为这样您就必须在每个芯片中处理更少量的计算。他们是从权力和面积的角度来看的。然后你就有了设计团队,他们必须为他们构建接口和协议。


▎计算范式

对于某些问题,使用传统软件本身可能导致解决方案效率低下。这发生在从单核到多核的过渡以及 GPGPU 的采用期间。业界正在等待它发生在新一代 AI 硬件上。

“GPU 有一个实现点,它是一个大规模并行计算对象,可以做各种事情,而不仅仅是渲染形状,”Aitken 说。“很多人都在努力研究这些类型的架构在未来会是什么样子。对于 AI,在采用 TensorFlow 或你拥有的东西与“我能想出一些新方法、一种新架构来处理更好地解决类似问题的替代方法吗?”之间存在紧张关系。对此有很多猜测。有很多人在尝试,但我不知道有没有人达到可以用它做 GPGPU 的水平,并说这是从现在开始的前进方向。如果他们这样做会很酷。”

并且有一些非常具体的硬件步骤可以应用于 AI 以完全克服内存传输问题。Vishwakarma 说:“模拟计算有不同的方法来看待同一个问题,但从不同的角度来看。” “如果你想做一个数字加法器,一个加法器大约需要七八个门。每个门可能有四五个晶体管。只需将两个数字相加,您就会看到大约 50 个晶体管。但是如果你采用模拟方法,你基本上连接了两根电线。这是最新的。对于具有此 MAC 运算(乘法和累加)的推理,您可以使用模拟计算并将权重存储在闪存中。在这里,您采用了不同的方法来进行整体计算。”

“几十年来,我一直是这项技术的忠实拥护者,”Cadence 的格林伯格说。” 然而,当它即将起飞时,它似乎总是被数字领域的进步所取代。也许有一天我们会把模拟计算视为一种‘超越摩尔定律’的技术,但我们还没有完全达到模拟战胜数字领域的地步。”

模拟领域的几家有前途的初创公司都失败了。当难以比较时,很难销售一个全新的概念。Lightelligence 工程副总裁 Maurice Steinman 表示:“计算能力通常是通过数据中心架构师用作评估供应商解决方案的方法的基准测试来看待的。” “基准测试结果通常表示为原始性能,或根据‘其他重要因素’的性能,例如成本、面积或能源——基本上是完成了多少工作以及成本是多少。”

业界似乎对原始处理器性能视而不见。“CPU 本身具有一定水平的原始计算能力——基本上,这东西的单线程性能是多少,”Aitken 说。“尽管这不是全部指标,但它仍然是衡量系统能力的有用指标。然后还有更广泛的指标,例如每瓦操作数。这是衡量系统整体效率的关键指标。摆脱对加速器上每瓦原始 TOP 的迷恋是一项挑战,但它是在什么上运行的,以及必要的数据是如何到达那里的?那需要多少瓦?这留给用户作为练习。”


▎结论

添加更多或更快的处理内核固然很好,但除非您能让它们保持忙碌,否则您就是在浪费时间、金钱和电力。你能让他们忙碌的可能性正在降低。具有正确的内存传输与计算比率的算法数量正在减少。

随着 DRAM 迁移到封装中,我们可以预期潜在带宽将持续增加,人们越来越担心 DRAM 性能在过去 20 年中没有增加。如果DRAM制造商不能解决这个问题,那么行业将不得不自己解决这个问题。


转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。

最新文章