在Arm Neoverse加持的AWS Graviton2上设计Arm Cortex-M55 CPU
首发极术社区
作者:Amiya
如对Arm相关技术感兴趣,欢迎私信 aijishu20加入技术微信群。
作为半导体设计和硅知识产权开发及授权的全球领导者,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的工具和基础支持方向迈进,并期待与社区共享我们的最佳实践和经验教训。 如有任何直接疑问,请在这里与我们联系。
相关阅读
• 使用M1芯片的Macbook开发TF-M
• ARM各种Memory类型理解
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
在Arm Neoverse加持的AWS Graviton2上设计Arm Cortex-M55 CPU相关推荐
- arm linux 工控,基于ARM和Linux通用工控平台设计 - ARM - 电子发烧友网
交叉编译 交叉编译就是在一个平台上生成另一个平台上的可执行代码.所谓平台,实际上包含两个概念:体系结构及操作系统.根据上述建立的开发环境,目标平台是基于ARM体系结构的运行嵌入式Linux操作系统,而 ...
- 解密Arm Neoverse V1 和 Neoverse N2 平台 为下一代基础设施带来计算变革
在去年 9 月更新的产品路线图基础上,Arm 近日公开了Arm® Neoverse™ V1 和 N2 平台的产品细节.为满足基础设施应用的各种需求,这两个平台的设计旨在解决当前正在运行的各种工作负载和 ...
- Arm Neoverse 路线图再添新品,基于四项关键原则打造
正值数字经济蓬勃发展之际,企业数字化转型带来大量的数据,人们对系统的可扩展性和计算能力有了更高的需求. 洞悉这些变化,近日 Arm 更新了 Arm® Neoverse™ 路线图, 重磅推出 Neov ...
- 2021极术通讯-Arm Cortex-R52+ 增强时间关键型汽车设计
首发极术社区 如对Arm相关技术感兴趣,欢迎私信 aijishu20加入技术微信群. 导读:极术社区推出极术通讯,引入行业媒体和技术社区.咨询机构优质内容,定期分享产业技术趋势与市场应用热点. 芯方向 ...
- 十年厚积!Arm Neoverse 重磅推出 V1 和 N2平台,加速基础设施转型
9月23日,Neoverse解决方案的推出是Arm跨向基础设施的第一步,该解决方案正驱动着各个领域的创新,从超级计算机,到持续部署的全球最大型的数据中心,一路延展到边缘计算. 为了进一步加速基础设施转 ...
- aws fargate_我如何在AWS Fargate上部署#100DaysOfCloud Twitter Bot
aws fargate After passing my last certification, I asked myself how much time I spent studying cloud ...
- 在AWS Lambda上运行脚本语言:PHP、Ruby和Go(外文翻译)
本文来自Mobingi官方技术专栏,欢迎关注 本文翻译自Scripting Languages for AWS Lambda: Running PHP, Ruby, and Go 备注:Go已经在20 ...
- aws v2.2.exe_如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服务器...
aws v2.2.exe by Sumeet Kumar 通过Sumeet Kumar 如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服 ...
- 如何使用CloudFormation自动在AWS EC2上安装Anaconda
by Daniel Barker 丹尼尔·巴克(Daniel Barker) 如何使用CloudFormation自动在AWS EC2上安装Anaconda (How to automate Anac ...
最新文章
- Spring消息之WebSocket
- H3C 交换机S5130S软件版本升级
- vscode php输出,js程序如何在vscode控制台输出
- frp 后台地址_Frp后台自动启动的几个方法
- javascript高程3 学习笔记(三)
- 女朋友当众甩了我一巴掌,我扑上去......
- java8 两个list取差集_java8 多个list对象用lambda求差集操作
- LeetCode 61. Rotate List
- 【NIPS2018】Spotlight及Oral论文汇总
- 点积和叉积和凸包背诵用模板
- Flutter进阶—自定义主题风格
- win7 优化后的问题
- 《大型网站技术架构:核心原理与案例分析李智慧》pdf版电子书网盘附下载链接+仪式感技术书阅读法
- windows下的内存泄露检测工具VLD使用
- mybatis 逆向工程 思维导图
- 【Linux os7】--详细搭建LAMP+安装Zabbix4监控服务
- ios vue 添加本地音乐_VUE怎么添加音乐 本地音乐添加教程
- 量化城市︱计算机视觉技术在街道品质量化评估中的应用
- 寺庙公众号开发:vue实现祈福牌位的前端部分
- mysql 中外码和主码_数据库原理与应用(6)——关系的候选码、主码和外码、关系完整性、关系代数、元组关系的演算、域关系演算...