作为半导体设计和硅知识产权开发及授权的全球领导者,Arm与我们电子设计自动化(EDA)的合作伙伴关系以及他们开发的工具关联极其紧密,依靠这些工具我们的业务蓬勃发展了三十年。
这种紧密的整合不仅对授权使用Arm IP的公司的泛生态系统很重要,而且同时对我们IP开发的核心业务也至关重要。随着我们的工程师逐渐遍布全球,我们的项目也需要不分昼夜地并行使用各种EDA工具。
我们其实在4年前就启动了一项战略计划,即在Arm服务器上本地部署EDA工具并运行,从而进行Arm处理器的设计我们把这项计划称为Arm-on-Arm。从基于x86服务器的EDA工具,到本地基于arm的服务器,再到基于arm的处理器云端方案,得益于我们的EDA合作伙伴提供了这些模拟、验证和实现工具,现在发展十分迅速。
在本篇博客中,我们将着重介绍利用基于Arm Neoverse的AWS Graviton2处理器的本地服务器设计Cortex-M55 CPU的过程。通过降低关键项目的成本和调度风险以及经历相关团队6次的改进,大大提高了我们的总体效率。此外,与基于x86的Amazon M5的实例相比,基于AWS Graviton2的Amazon M6g实例节省了36%的成本并减少了20%的运行时间。
运行EDA Arm-on-Arm从本地到云端
云端基于Arm处理器上部署EDA工具的过程始于我们与EDA合作伙伴的在本地部署方面的密切合作。从我们与EDA合作伙伴就Arm上运行这些工具的益处有一定的共识,我们紧密合作陆续推出了这些工具。这使得我们可以准备好在2018年底随着Marvel ThunderX2系统的问世就能实现更高的单个服务器效率和更低的总成本。
对于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比同类型的第五代x86的性价比高出40%。这些基于Arm的运用实例自然成为云环境中EDA最高性能的主流选择。
转移到云端上让我们能够更好地在云端中扩展Cluster容量,具体是因为EDA的工作可能是间歇的。这使得如何提供足够的内部EDACluster容量(Fixed Server Farm)成为一个持续的挑战。构建更多的内部数据中心容量并不总是最理想的解决方案,因为会存在服务器资源未得到充分利用的情况。因此,我们开始考虑如何调整EDA处理过程和工作流程,以利用云在容量方面所具有的灵活性。在正确的时间获得正确的CPU容量是不仅云的主要好处之一,而且您还可以更好地配置内存、网络、存储等方面资源。当您需要时,我们有能力获得最理想的硬件配置,从而实现避免项目延误,并提供最大的灵活性,以及用更低的成本启动新的半导体设计项目。
将使用EDA转移到云上并不仅仅是对我们现有工具和工作流程的提升和转变。我们在云上运行EDA工具的长期目标是能够利用多云功能使我们能够根据工作负载选择性能最佳的云服务。此外,考虑到我们IP的高敏感性和高价值,我们能够实施成本监控和控制,并能做到访问和安全控制。最后,一切都必须像在本地Cluster中一样可靠和一致地工作。因此,仅仅试图提升和转变我们现有的工具链是不符合这些要求的。
为了实现前面的目标,我们开发了一个内部编译调度器RESTful API工具,用户可以向该工具提交工作并在云上运行这些工作。我们的工具考虑到了可扩展和云不可知的需求的。我们使用了大量的AWS服务,包括Elastic Kubernetes Service(EKS)容器管理、Lambda“无服务器”功能、Amazon Kinesis、API网关管理器、DynamoDB、PostgreSQL、AWS Batch,当然还有EC2计算实例和S3存储。我们还使用到了RabbitMQ,Celery,Elasticsearch,FluentBit,和Kibana。我们不是这些技术的专家,为了理解这些技术是如何工作和相互作用的,我们经历了一个艰难的学习过程。我们发现并克服了许多难题,从而弄清楚了如何使该工具在云环境中可拓展,可靠和高效。
在AWSGraviton2处理器上运行生产Cortex-M55
图一展示了利用我们的内部Orchestration Scheduler工具运行EDA作业的高级工作流程。 我们使用AWS Batch服务来扩展大量Amazon M6g实例,从而以高生产量在容器图像中运行Mentor Questa。
图一:在AWS Graviton2上设计Cortex-M55的高级工作流程
图二和三分别显示,与M5相比,在M6g实例上使用Mentor QuestaSim时,作业运行时间缩短了20%,成本节省了36%。 我们对Mentor QuestaSim的初步测试表明,与基于M5 Xeon的实例相比,使用EC2 M6g实例可以将工作运行时间减少20%,并节省36%的成本。
图二:M6G和M5实例之间的Mentor QuestaSim运行时间的比较(越少越好)
图三:Mentor QuestaSim M6g和M5实例之间的运行时成本的比较(成本基于AWS按需定价)
下图显示了我们将在Cortex-M55上进行的Mentor QuestaSim生产验证从M5转换到M6g的结果。 x轴显示时间,您可以看到,提交到基于M6g实例的作业比提交给基于M5g实例的作业所完成的时间更短,这符合我们的预期。 y轴显示正在运行的并发EDA工作的数量,在转移到M6g时,我们发现与M5相比,能够同时进行更多的工作。
图四:Arm Cortex-M55的生产验证– M6g和M5之间的比较。 X轴:完成工作的时间。 Y轴:同时工作数
总结
从EDA工程师的角度来看,这是他们真正关心的一件事—在尽可能最快的时间内获得运行他们的工作所需的容量。 借助AWS Graviton2,我们可以更快,更低成本地完成更多EDA工作。 而且,我们在保持高度可靠性和访问控制的同时,获得了更大的操作灵活性。
Arm在云端迁移到EDA的工作才刚刚开始。 Cortex-M55 CPU项目的成功使我们确信能够在生产环境中迁移到云上。 而且我们已经设定了一个目标,即在未来几年内将大部分预置的EDA计算迁移到云上。 我们与所有领先的EDA合作伙伴都积极合作,以使Arm可以使用更广泛的EDA工具。 我们迁移到云端Arm上的EDA上已经看到了巨大的好处,并且我们邀请Arm硅合作伙伴的丰富生态系统加入我们的行列。
我们正在向着获得更多Arm架构上的EDA的工具和基础支持方向迈进,并期待与社区共享我们的最佳实践和经验教训。 如有任何直接疑问,请在这里与我们联系。
相关阅读
·使用Arm Neoverse N1和AWS Graviton2进行地震建模
·对基于Arm Neoverse的AWS Graviton2的NEMO海洋模型的评估
·在AWS Graviton2 M6g实例上使用Nalu演示低机器数CFD建模
Tim Thornton 2020年12月17日
合著者:Tim Thornton - Arm工程总监,Kushal Koolwal -软件生态系统高级经理
原文链接:https://community.arm.com/developer/tools-software/hpc/b/hpc-blog/posts/designing-arm-cortex-m55-cpu-on-arm-neoverse-powered-aws-graviton2-processors?\_ga=2.30831167.121864082.1609747058-2125784323.1573464306