中文 英语

跟上生产力的挑战

向多核架构的迁移对EDA行业有何影响?这告诉我们其他行业是如何应对这种转变的?

受欢迎程度

直到最近,EDA软件还在不断提高处理器性能,作为其驱动的一部分,继续为设计下一代更快处理器的人员提供更快更强大的开发软件。这是一枚偶然的戒指。在世纪之交,随着向多核计算系统的迁移,这一切都改变了。为了提高性能,必须有效地利用多核体系结构,这就需要重新构建软件体系结构。EDA行业如何应对这种变化,这种变化与整个软件行业正在应对的变化相似?《半导体工程》向业界索要成绩单。

多核应用有三种主要方式。第一种方法是改变用于支持底层硬件架构的算法。第二种方法是改变运行软件的硬件。第三是把问题变成一个可以用更容易的方式解决的问题。EDA正在尝试所有这三种解决方案,有趣的是,它们都被用于帮助解决验证问题。

改变算法
,一个节奏以积极的态度开始讨论。“令人高兴的是,EDA世界有相当一部分本质上是平行的。”许多这样的应用程序很早就迁移到多核体系结构上了,多核的使用往往没有被注意到。

最大的限制因素往往不是算法本身,而是内存系统。“降低EDA工具中采用并行性的速度的一个因素是内存瓶颈,”at的首席技术官普拉纳夫•阿沙尔(Pranav Ashar)表示真正的意图.细粒度多线程可以快速触发延迟瓶颈,对于典型的多线程来说SoC这些限制很快就会达到基准。”

然而,Ashar鼓励继续发展。“即使目前的多核架构存在已知的局限性,EDA公司也必须推进软件的并行化。32核处理器上的8倍加速总比没有加速强。”

Michael Sanie,验证营销高级总监Synopsys对此,讨论了与加速a相关的问题模拟器.“我们可以划分一个设计,让每个核心模拟一个分区。这项技术已经存在一段时间了。结果与设计有关。如果每个核心都是独立运行的,你将获得一个非常好的加速。如果有很多相互依赖,就不会有什么加速。”

更多的核心肯定会有所帮助。Cadence的Rowen说:“分解不同的测试用例并在不同的cpu上运行每个测试用例更容易。”“这要简单得多,理论上我们应该能够在数百万个cpu上分发请求流。这有一些实际的限制,尤其是我们的客户更关心数据安全,而不是他们的互联网搜索。”

大卫·凯尔夫,营销副总裁OneSpin解决方案认为模拟是一个无望的问题。“这需要非常大量的测试向量来简单地使SoC进入正确的状态,这种方法正在迅速变得不切实际。自动化形式验证解决方案现在正在取代动态模拟测试,利用状态空间探索,允许对通信结构和IP提出问题。”

早在2013年5月,OneSpin就研究了解决安全问题的方法,并利用了正式验证的一些独特方面。Formal将问题分解为许多小的部分,其中每个部分都可以单独处理,并将结果集中在一起显示给用户。一个正式的问题在任何时候都适用于完整的设计,这也是很罕见的。

这种方法先找出一个待解决的问题,然后提取必要的设计片段。然后它使用一个内部映射表来混淆设计。OneSpin的首席执行官表示,没有办法从单个部件中重建设计。此外,在代码片段被加密并发送到云端由正式求解器进行处理之前,对设计进行了数学抽象。在云上,对抽象的、模糊的设计片段进行处理,当结果就绪时,在发送回本地机器之前再次对其进行加密。

Sanie描述了应用程序级多核的另一种方法。“如果你正在运行模拟和检查断言进行调试和管理报道在美国,每一项任务都可以放在一个单独的核心上。在这一点上,它们是相当独立的,但耗时最长的部分,通常是模拟,将占主导地位,但所有其他部分基本上都是免费发生的。模拟是非常内存密集型的,当您将设计划分为四个或多个核心时,内存访问就会成为瓶颈。这就是为什么设计级别的分区并没有真正给你那么多。

更换硬件
几乎自从引入仿真技术以来,各公司就一直在尝试设计能够加快这一过程的硬件。一个早期的例子是IBM约克镇仿真引擎,一种特殊用途的高度并行可编程机器,用于1985年建立的门级仿真。据估计,它将能够以每秒超过30亿个门模拟的速度模拟200万个门,或者以每秒370个指令的速度模拟IBM 3081处理器。这与目前可实现的水平相去甚远。

如今,更常见的方法是使用fpga或类似类型的结构来构建可执行的等效电路。我们知道这是模拟,模拟器正在迅速接管许多较大的模拟任务。但是模拟器往往体积大且价格昂贵。即使是成本低得多的原型平台,在开发的早期阶段,也存在一些问题,无法让设计可靠地运行。当设计不稳定时,模拟往往是更好的方法。

人们想要的是一种低成本的方法,可以使用标准硬件,现在许多处理器都包含了解决方案。

“还有其他方法,比如使用GPU,”Sanie说。“这使得问题更具内存可伸缩性。每个GPU都有许多处理器,每个核心可以在一个、两个或十个门或一行RTL上运行。把设计分成一万个部分可能比把它分成四个部分更容易。这是因为GPU的结构不同于CPU,内存处理也不同。”

Aveek Sarkar,公司副总裁Ansys-Apache对此表示赞同。“我们混合使用CPU和GPU架构来加速我们的算法。对于机械和网格问题、计算流体动力学或电磁问题,我们可以从GPU的架构中受益。我们需要看看哪种架构对我们最有利。GPU通信结构不同,可以运行的线程数量很高。以gpu为中心的方法的问题在于内存。你可用的内存是有限的。”

这种方法还有另一个缺点,它使得一般软件群体难以使用GPU。Sarkar承认:“我们必须与GPU供应商紧密合作才能做到这一点。“我们也有专门的小组负责实现这一点。”

Synopsys也发现了同样的问题,并指出目前还没有标准化的工具链。

改变问题
如果不能充分改变模拟器性能或不能利用其他可用硬件,还有第三种方法。改变问题,这是一个可行的方法,目前许多公司正在使用。

Synopsys公司虚拟原型产品营销总监约翰内斯•斯塔尔指出:“我们需要采取分而治之的方法。“如果你试图通过把硬件放在一起来优化一个系统,在模拟器中执行它,并尝试探索不同的架构和应用软件,你永远不会完成。你就太迟了。所以在设计项目的早期阶段,你必须抽象化,并在此基础上做出决定。”

抽象是成功的关键虚拟样机,可以在RTL设计之前在开发周期的早期创建和部署。这是在模拟成为可行的替代方案之前。虚拟原型可以在很短的实时时间内运行,并实现系统架构探索、早期硬件验证、电源配置文件的设计和优化、低级软件和驱动程序开发以及当今复杂soc中所必需的许多功能。

乔恩·麦克唐纳,公司战略项目经理导师图形解释虚拟原型的一些好处。“通过提供虚拟平台,系统设计人员可以根据系统的需求做出更明智的决策,软件开发人员可以根据系统的限制优化他们的代码,硬件开发人员可以对一个成功系统的实现需求充满信心。”

多核平台提供商的问题可能比EDA公司更大。“软件堆栈,即使来自开源,也必须进行修改,”斯塔尔指出。Real Intent的Ashar还提出了影响所有多核软件的最后一个问题:“编写无bug的多线程程序是一项挑战。改造现有的大型代码库,使其对多线程友好,这是一项艰巨的工程再造任务。”



3评论

EDA恐龙 说:

与其让行业自我评估,不如问问客户。

我很抱歉,但坦率地说,EDA行业已经在多核处理器上犯了错误。奔腾D和Athlon 64×2于2005年发布。它的2014年。如果您的软件支持在> 1处理器上运行,请举手。现在把它放下,如果它不是在2个cpu上快2倍。现在,对于那些仍然举着手的人,诚实地说,如果4个cpu的速度没有快4倍,请把手放下(因为2005年的机器是2个cpu,双核,所以4个cpu),最后,如果4个cpu的价格高于1个cpu,请把手放下。

那些放下双手的人,真可耻。你落后9年了。

现在,我去了戴尔的网站,花8500美元我就能买到一个带有2个12核处理器,支持超线程的刀片。是的,这还不包括内存升级或刀片…但我也不要求批量折扣或类似的东西。这是一台合理的主流机器。

行业目标应该是在24核机器上快20倍,如果我启用超线程,可能快30倍。这应该使用单一的基本许可证。这就是今天的目标。如果这是你今后2-4年的目标,那就把规模扩大到英特尔或Arm那时的水平。

让我们用任何接近我刚才所说的工具来回应。

乔·G 说:

我也是这么想的。为什么我们要为多核支持支付额外的费用?这是现在很好的编程实践,应该包含在基本软件包中。在过去6年左右的时间里,我使用过的每台高端机器都至少有4个物理内核。得了吧。

布莱恩•贝利 说:

我同意你的观点,谢谢你的评论。大多数时候,客户不允许在不违反保密协议的情况下提供具体信息。我希望,随着我们的发展,我们将有资源进行全面的行业调查。在那之前,我们只能要求供应商进行自我评估。从我做绩效评估的那些日子里,我知道当你问他们的时候,人们往往会非常诚实,我希望在公司层面也存在同样的事实。

留下回复


(注:此名称将公开显示)

Baidu