在基于Arm Neoverse的AWS Graviton2处理器上设计Arm Cortex-M55 CPU
作为半导体设计和硅知识产权开发与许可的全球领导者,没有过分夸大Arm与我们的电子设计自动化(EDA)合作伙伴之间的关系以及他们开发的使我们已有30年历史的企业蓬勃发展的工具的重要性。这种紧密的集成不仅对许可Arm的IP的广泛公司生态系统很重要,而且对我们IP开发的核心业务也至关重要。凭借我们遍布全球的工程师足迹,我们日以继夜地运行着多个并行设计项目,这些项目需要使用各种EDA工具。
在Arm服务器上运行这些EDA工作负载以设计Arm处理器是我们四年前着手的一项战略计划,方法是在基于Arm的服务器上本地部署EDA工具。我们称其为Arm-on-Arm。由于我们的EDA合作伙伴提供了这些仿真,验证和实施工具,因此现在可以将这种从基于x86的EDA工具和工作流程过渡到云中基于Arm的本地服务器到基于Arm的处理器的扩展。
在此博客中,我们将重点介绍设计生产环境中的Cortex-M55 CPU的过程,从本地部署到基于Arm Neoverse的AWS Graviton2处理器。通过降低关键项目的成本和调度风险,这极大地提高了我们的整体吞吐量,并且一些团队的工作效率提高了6倍。此外,与基于x86的Amazon M5实例相比,基于AWS Graviton2的Amazon M6g实例可节省36%的成本,并提高20%的运行时间。
从本地到云运行EDA Arm-on-Arm
Arm在云中基于Arm的处理器上部署EDA工作负载的旅程始于与我们的EDA合作伙伴与本地部署的密切合作。首先是与我们的EDA合作伙伴就在Arm上运行这些工作负载的好处以及在工具的移植方面进行密切合作产生了共同的愿景。随着Marvel ThunderX2系统于2018年底问世,这使我们准备好提高每台服务器的吞吐量并降低总体成本。
对于Cortex-M55的设计,Arm利用Mentor QuestaSim进行仿真,并利用Cadence JasperGold作为验证工具。我们的合作伙伴可以使用这两种工具在Arm服务器上运行。QuestaSim是Mentor Graphics的Questa验证解决方案的一部分,并且是用于功能验证的最新工具,为SystemC,Verilog,SystemVerilog和VHDL的最新标准提供仿真支持。
精心设计的本地EDA部署为Arm奠定了基础,以开始利用在2020年可用的AWS Graviton2处理器上运行Arm-on-Arm的好处。AWS使用64位Arm Neoverse定制构建了Graviton处理器核心可为Amazon EC2环境中运行的云工作负载提供最佳性价比。Graviton处理器使我们能够开始在云中进行测试,并使我们思考如何重新构造EDA工作流以在本地和云中运行。2019年秋季,AWS发布了基于Arm Neoverse N1内核的Graviton2处理器,其支持的EC2 C6g、M6g和R6g实例的价格和性能好40%。这些基于Arm的实例自然成为云中EDA的最高性能主流选择。
迁移到云使我们能够更好地扩展云中的群集容量,特别是因为EDA工作负载可能很突发。这使得调配足够的内部EDA群集容量(固定服务器场)成为一项长期挑战。建立更多的内部数据中心容量并非总是最佳的解决方案,因为在某些情况下服务器资源可能未被充分利用。因此,我们开始考虑如何调整我们的EDA流程和工作流程,以利用云在容量方面提供的灵活性。不仅在适当的时间获得适当的CPU容量是云的主要优势之一,而且您还可以在内存,网络,存储等方面调整服务器配置的大小。能够在需要时获得最佳的硬件配置,从而避免了项目延迟,并在以较低的成本启动新的半导体设计项目时提供了最大的灵活性。
将EDA工作负载移至云端并不一定意味着我们现有工具和工作流程的转变。我们在云中运行EDA作业的长期目标是能够利用多云功能,从而能够根据我们的工作负载选择性能最佳的云服务。此外,鉴于我们IP的高度敏感和宝贵的性质,能够实施成本监控和成本控制,以及实施访问和安全控制。最后,一切都必须像我们的本地群集一样可靠且一致地工作。因此,试图提升和转移我们现有的工具链并不能满足这些要求。
为了实现先前的目标,我们开发了内部编排计划程序RESTful API工具,用户可以向其提交作业并在云中运行这些作业。我们的工具被编写为可扩展且与云无关。我们使用大量的AWS服务,包括弹性Kubernetes服务(EKS)容器管理,Lambda“无服务器”功能,Amazon Kinesis,API网关管理器,DynamoDB,PostgreSQL,AWS Batch,当然还有EC2计算实例和S3存储。我们堆栈的其他部分包括RabbitMQ,Celery,Elasticsearch,FluentBit和Kibana。我们不是这些技术的专家,我们攀登了陡峭的学习曲线,以了解这些技术如何工作并相互交互。我们发现并克服了许多难题,从而弄清楚了如何使该工具在云环境中可扩展,可靠和高效。
在AWS Graviton2上运行生产Cortex-M55
图1表示利用我们的内部Orchestration Scheduler工具运行EDA作业的高级工作流程。我们使用AWS Batch服务来扩展大量Amazon M6g实例,从而以高吞吐量在容器映像中运行Mentor Questa。
图1:在AWS Graviton2上设计Cortex-M55的高级工作流程
图2和3分别显示,与M5相比,在M6g实例上使用Mentor QuestaSim时,作业运行时间缩短了20%,成本节省了36%。我们对Mentor QuestaSim的初步测试表明,与基于M5 Xeon的实例相比,使用EC2 M6g实例可以将工作运行时间减少20%,并节省36%的成本。
图2:M6G和M5实例之间Mentor QuestaSim运行时间的比较(越少越好)。
图3:M6g和M5实例之间的Mentor QuestaSim运行时成本的比较(成本基于AWS按需定价)。
下图显示了我们将在Cortex-M55上进行的Mentor QuestaSim生产验证从M5切换到M6g的结果。x轴显示时间,您可以看到,提交到基于M6g实例的作业比提交给基于M5g实例的作业所需的时间短,符合我们的预期。y轴显示正在运行的并发EDA作业的数量,在移至M6g时,我们发现与M5相比,我们能够启动更多的并发作业。
图4:Arm Cortex-M55的生产验证– M6g和M5之间的比较。X轴:完成工作的时间。Y轴:并发作业数
概要
从EDA工程师的角度来看,这是他们真正关心的一件事–获得在尽可能最快的时间内运行其工作所需的能力。借助AWS Graviton2,我们可以更快,更低成本地完成更多EDA工作。而且,我们在保持高度可靠性和访问控制的同时,获得了更大的操作灵活性。
Arm在Cloud上的云端迁移到EDA的工作才刚刚开始。Cortex-M55 CPU项目的可喜结果使我们能够在生产环境中迁移到云中。我们已经设定了一个目标,即在未来几年内将大部分本地EDA计算迁移到云中。我们与所有领先的EDA合作伙伴都积极合作,以使Arm可以使用更广泛的EDA工具。从云中的Arm迁移到EDA可以看到巨大的好处,我们邀请Arm硅合作伙伴的丰富生态系统加入我们的行列。
我们正在为启用Arm上的EDA的工具和基础架构而迈进,并期待与社区共享我们的最佳实践和经验教训。如有任何直接疑问,请在此处与我们联系。