平头哥杨平超:倚天CPU架构以及产品特性介绍

简介: 2023年8月8日,【倚天实例迁移课程】首节课程《倚天CPU架构以及产品特性介绍》正式上线,由平头哥倚天解决方案架构师杨平超主讲,内容涵盖:倚天710芯片概述;倚天710的主要特点;倚天710应用落地介绍,本期节目也在阿里云官网、阿里云微信视频号、阿里云钉钉视频号、InfoQ官网、阿里云开发者微信视频号、阿里云创新中心直播平台&微信视频号同步播出。

1360-336.png


2022年11月,阿里云ECS倚天实例正式开启商业化,在超高性价比、丰富的生态、安全增强三大优势的加持下,用户可以享受物理核的极致性能体验;同时倚天实例还可有效应用于云原生、视频编解码、高能效计算、基于CPU的机器学习和游戏服务等场景,在性能表现上,编解码场景实现80%的性价比提升,数据库场景、AI推理场景、大数据场景也都分别有着30%、70%、50%的性价比有效提升。


为了更好的方便各位开发者和用户了解并应用ECS倚天实例,阿里云弹性计算联合基础软件团队 & 平头哥 & 安谋科技(arm)等十余位专家、架构师、开发工程师等,共同发起【倚天实例迁移课程】,本次系列课程共计10节,共分为基础篇;架构迁移篇;性能优化篇三个篇章,从不同角度为用户带来更加丰富和专业的讲解。


2023年8月8日,【倚天实例迁移课程】首节课程《倚天CPU架构以及产品特性介绍》正式上线,由平头哥倚天解决方案架构师杨平超主讲,内容涵盖:倚天710芯片概述;倚天710的主要特点;倚天710应用落地介绍,本期节目也在阿里云官网、阿里云微信视频号、阿里云钉钉视频号、InfoQ官网、阿里云开发者微信视频号、阿里云创新中心直播平台&微信视频号同步播出。


杨平超_倚天CPU架构以及产品特性介绍 | 课程回放


以下内容根据杨平超课程整理而成,供读者阅览:


幻灯片2.JPG


一、倚天710芯片概述


1. ARM服务器芯片发展历程


我们知道,倚天710是基于ARM架构的服务器芯片,所以在介绍倚天710之前,先为大家介绍一下ARM服务器芯片的发展历程。


幻灯片4.JPG


第一波浪潮(2008-2013),ARM开始考虑做服务器芯片最早可以追溯到2008年从投资startup calxeda公司开始,当时还是ARM V7架构,32位处理器。后面ARM发布v8架构,在手机移动处理器上所向披靡,但相比于服务器上的多核高性能,ARM在服务器领域因为性能不足没有什么竞争力,所以很快就落下帷幕,基本上没有开始就结束了。


第二波浪潮(2011-2018)有三个标志性的时间点。第一个是2016年Broadcom,Vulcan说要开始做服务器芯片,这也是ARM联合一些合作厂商做出的一个尝试。第二个是2018年底发布了ARM SBSA,它是服务器的一个标准的加工模板,相当于给ARM服务器打了一个很好的基础。


第三个是2018年AWS Graviton2 发布。在此之前CPU厂商、芯片厂商做ARM的芯片基本都已经宣告失败了,直到2018年AWS Graviton2 发布,开启了ARM处理器在服务器领域成功的先河,它给ARM芯片在服务器领域成功指明了道路。云厂商基于ARM架构会有一定的优势,它可以通过自身iaas和paas这些云的标准服务,给用户提供的是一套ARM的解决方案,而不是一个单纯的芯片。因为如果只是ARM芯片,它在生态和软件上会导致用户的使用成本比较高。


第三波浪潮(2019~至今),2019年阿里巴巴开始自研ARM服务器芯片。此外,Google、Microsoft也都是陆续宣布要开始自研服务器芯片的开发。2021年,倚天710经过两年的研发终于进行了量产,目前已经在阿里巴巴集团、阿里云都实现了规模化使用。


2. 倚天710芯片规格


幻灯片5.JPG



接下来介绍一下倚天710这款芯片的主要规格。


  • 双 DIE结构,每个DIE 360 毫米2
  • 两个DIE 600 亿晶体管。
  • 业界首次使用ARM V9架构和CPU 核– Perseus。
  • 主频:3GHz。
  • 8 Channel DDR5 x4800。
  • 96 Lane PCIe 5.0。
  • Max Power: 300 W。


二、倚天710的主要特点


1. 倚天710:云原生高性价比CPU


幻灯片7.JPG


倚天710芯片,我们叫它云原生高性价比的CPU,上图是这个CPU的架构,可以看到有两个die,die0和die1,两个die是完全一样的。


  • 每一个die有64个物理N2(perseus)core,1颗CPU有2个die 128 core。
  • 每一个die包含4个DDR5/DDR4 channels,1颗CPU有8个 channels。
  • 每一个die包含48个pcie5.0 lanes,1颗CPU有96个lanes。
  • 每一个core包含64KB的Icache和64KB Dcache,包含1MB的L2 cache。
  • 支持SVE/SVE2(2x128bit) ,以提升HPC、AI、视频解码类工作负载的性能体验。
  • 提供硬件支持的安全特性和RAS、MPAM等功能,以保护平台和数据的安全和完整性。
  • 提供有竞争力的能效比算力。


2. 倚天CPU N2 core架构优势


幻灯片8.JPG


CPU 的 cache 往往是分多级的金字塔模型。如上图所示,L1最靠近CPU,它的访问延时最小,但cache容量也最小。也就是离CPU越近,cache容量越小,但访问越快;离CPU越远,访问越慢,但容量越大。所以我们将离CPU近的L1、L2、L3都配置了较大的cache容量,这也是我们以前CPU性能得到保障的一个重要因素。


预取就是预先把程序需要的数据搬移到缓存中,而不必等到缓存缺失时再去搬运。一般CPU都有预取,但我们在ARM V9架构上新增了一个指针追踪类应用的预取。也就是说你不仅能取一个地址里的数据,还能对它周边的数据进行预取。如果你取的这个地址,它的指针指向了另外一个地址,这个地址你也可以进行预取。


和N1 core相比,N2 core在Rename width、Rename Checkpointing、ROB size、ALUs等等方面都得到了一个较大的提升。此外,V9架构还新增了微指令的cache,V9的综合性能得到了极大的增强,相对V8架构的N1 core 有40+%的性能提升。

3. 倚天CPU核特点:SVE2加速引擎


幻灯片9.JPG


SVE2加速引擎是Scalable vectors。比如之前用ABS256或者ABS512进行编程,当它的位宽发生变化的时候,软件就要重新编写了,因为位宽变化导致指令,接口可能发生了变化。但对SVE2来说,它是一个向量化的扩展指令集,一次编程后无论你是在128的处理器,还是256、512,甚至1024的处理器,都不需要重新编译,因为它就是一个可扩展的向量指令集,可在运行时根据实际位宽来运行程序。


此外,SVE2还支持Per-lane predication、Gather-load and scatter-store等等,极大的提升了数据访问的带宽。SVE2可以增强ML机器学习、DSP信号处理能力,提升了未来5G、虚拟现实、增强现实以及CPU本地运行ML的性能。还支持了矩阵算法,对AI的负载、influence都有非常好的算力支撑。


4. 倚天架构特点:高密计算更稳定不降频


倚天的架构CPU有非常高算力性能并且能够稳定高负载运行。和X86相比,倚天是是固定主频的,不会进行超频,也不会产生降频的情况。因为超频的时候实际上只是部分core超频,另外一部分core可能会降频,等到全部core都重负载的时候,就需要降频去控制功耗,但在倚天上就不会有这种情况。


幻灯片10.JPG


我们以Encoding for X264 FPS Per vCPU为例。从上图可以看到一个core的时候单core的编码能力,倚天C8y-x264的这个实例是9.88,C7-x264是12.75,但当这个core逐渐增多,达到12个的时候,平均下来倚天的单core能力由9.88减弱到9.46。

减弱的非常的小,这个和我们的内存访问带宽,cache共享有一些关系,所以整体的线性度是非常好的。但X86的架构,由于降频因素的影响,一个core和多个core运行的时候,单core的平均的算力下降了非常多,由12.75降到了7。


可以看出这也是我们的一个很大的优势,因为基频相对较为稳定,所以在高负载情况下,性能的线性度保持的是比较好的。所以倚天就特别适合应用在视频编码、数据压缩、科学计算、AI推理等重计算的场景。


5. 倚天架构特点:独享物理core


幻灯片11.JPG


独享物理core和非独享物理core有什么差别呢?我们还是用X86的来举例。


比如用户从云上购买了一个2c 4G或者2c 8G的实例。这两个c实际上是两个vcpu,vcpu1和vcpu2。但这两个vcpu实际上共用了一个ALU计算单元,也就是说这两个vcpu对应到了X86上物理core的两个逻辑core,每一个vcpu代表一个逻辑core,但它的物理计算单元是同一个。因此你的算力是一个core的算力,只不过通过多线程的方式可以把这个物理core的算力发挥的更极致一点。


对于倚天来说,vcpu1和vcpu2都是单独的物理core,所以在ALU这个计算单元上也是两个完全独立的ALU计算单元。实际上用的就是两个物理core的算力,且它们之间也不会有任何干扰。那么物理core和逻辑core之间的差别,除了ALU计算单元的共享之外,像L1 cache、L2 cache在X86上都是属于共享的。


当在运行高负载的情况下,它对L1和L2的增强是比较大的。整体的算力和原来一个vcpu的算力相比高不了多少,一般在25%-30%左右。但对于倚天来说,物理core、cache都是分开的,所以如果一个CPU的算力是10,那么两个CPU差不多可以达到20。


6. 倚天重新定义安全水位—效率提升40%


幻灯片13.JPG


和原来传统意义上X86 core架构相比,倚天采用的物理core架构,会给用户带来怎样不同的体验呢?


在X86上,我们会有一个安全水位的概念,因为大家发现当CPU处在50%的水位以下的时候,应用算力会随着CPU的升高而升高。无论是QPS、TPS,还是计算的时间,都是和CPU完全关联的。当CPU超过50%的时候,这个应用的执行效率和服务时间就会变得比较差,导致我不能把CPU水位提的很高。造成这个的主要原因有两个,一个是降频,另外一个是两个逻辑core相互之间的争抢。


而在倚天上,因为我们是物理core,它们之间是完全独立的单元,所以我们的安全水位就可以比X86高,可以达到70%-80%,而且它的算力的线性度是非常平的。不会因为降频、ALU争抢,导致CPU高了之后应用的服务能力下降的情况。


7. 倚天710精简的架构和先进的工艺降低云数据中心TCO


幻灯片14.JPG


我们都说ARM的架构是属于精简指令集,那么倚天710就属于ARM精简的指令架构,再加上非常先进的生产工艺,这两块加起来最终就降低了云数据中心的TCO。云数据中心的TCO的模型主要包含CapEx(机房/机位成本、服务器成本、网络成本)、Opex(电费、维护/运维费用)。


而倚天在最开始就是基于云数据中心对于处理器的要求设计的,所以我们采用了ARM架构再加上先进的工艺,这样我们的极限功耗就只有300w。实际应用过程中的功耗差不多在100w-150w之间,只有在完全使用浮点、向量化计算等指令疯狂去跑的情况,才有可能接近300w。


如果拿倚天和X86的CPU去比,我们的能效比是非常好的。如上图所示,单位算力下的功耗,英特尔在X86的处理器差不多到0.936w,在ARM的一个友商处理器可以到0.49;在倚天710可以到0.3,能耗比是非常优秀的。


上图是某数据中心在一定的生命周期内所支付的所有费用按照各个要素的占比分析图,可以看出电费占所有支出的20%左右。而倚天因为能效比非常高,功耗控制的比较好,所以它的电费会比较少,这些构成了倚天TCO非常大的性价比优势。


所以我们CPU在云上售卖的时候,无论是X86还是其他ARM厂商,在同等算力的情况下,甚至整体性能优于x86的情况下,我们的价格定位仍然是比较低的,真正实现云上普惠算力。


8. 云原生CPU: 基于CIPU的倚天ECS硬件架构


为什么说倚天是一个云原生的CPU?因为现在很多芯片厂商在设计CPU的时候都会设计一个两路的架构,也就是一个服务器的板子上放两个CPU。因为这样核的密度会更高,那么在云上售卖的话,就可以卖更多的实例出去。


但在倚天设计的时候,我们用的是阿里云CIPU+倚天的双单路的设计模式,即CIPU接了两颗倚天的CPU。这两个CPU是完全隔离的,它们之间没有进行互联去保持cache一致性。


幻灯片15.JPG


那么这样设计有什么好处呢?


  • 高密度:通过阿里云CIPU实现整机核的高密度,可达256个物理core,未来会更高。
  • 高能效:采用双单路架构避免了多路互联的性能损耗和跨numa访问。
  • 高可靠:爆炸半径减半:独立OS,独立PCB软硬件故障互补影响。


三、倚天710应用落地介绍


1. 倚天CPU全栈技术优化


我们知道倚天是基于ARM架构的,ARM架构相较于X 86比较晚,所以它在软件生态这一部分存在一些问题。基于此,我们以客户体验为中心,打通基于CIPU+ 倚天CPU的全栈生态链,针对用户的应用进行端到端优化。


幻灯片17.JPG


如果我只有一个高性能的CPU和CIPU的话,对于用户来说不一定能感受到完全的性价比优势。因为X86毕竟是已经做了这么多年了,很多软件都对它进行了非常极致的优化,所以它更能发挥硬件的能力。而倚天的CPU ARM架构在软件生态上相对就弱一点,因此我们会在芯片的基础上,提供更多的软件能力去发挥倚天CPU的能力。


在OS侧我们适配了OpenAnolis、Dragonwell JDK、Alinux、centos。另外,在此之上我们做了一些核心的软件加速库。


  • 基础加速,比如ptg_optimize,主要针对一些比较通用的计算接口,比如内存拷贝、CRC、加密指令、string等操作,都相比原来有30%-50%的提升。
  • 压缩,我们针对ZLIB、LZ4、ZSTD都进行了核心的加速。这样和开源相比都会有50%以上的性能优势。
  • 视频编解码,我们也做了倚天基于开源的一些加速,相比开源有15%到30%的优势。
  • SIMD,我们还做了一个X-SIMD,它相当于X86到ARM的一个桥梁。我们之前在英特尔上可能用的是AVX512的编程,如果在用ARM处理器的时候,还需要对ARM做向量化的编程,这样的话我们的研发成本就很高了。所以我们做了X-SIMD这个软件库,主要和X86的接口保持兼容,不用改任何代码,就可以实现在倚天上的SVE的向量化指令使用。
  • 计算,我们提供了一个YCL的AI数学计算库、提供了在高性能计算HPC以及AI场景的高性能应用。


无论是在操作系统或者编译器上做的一些针对倚天的加速,还是在CPU硬件算法以及软件加速,我们最终都把它做成了一键使能,开箱即用,通过ECS boost的方式为云上的用户提供服务。


因为如果每个特性、每个库都让用户自己去集成,这个研发成本就会比较高。所以在你购买ECS产品的时候,只要勾选相应的加速特性,就会把我们在这之上做的一些系统加速和硬件特性的加速全包含在里面,让你一站式的体验到我们对倚天CPU所做的加速能力。


再往上是我们的PaaS产品,目前阿里云很多PaaS产品都已经适配了倚天,比如EMR、ODPS、ALB、CFW、Redis、RDS、ACK等等。也就是说你可以基于之前在阿里云上使用的PaaS产品,都可以用到ECS倚天实例。我们主要聚焦的也是数据中心里比较大的一些场景,包括大数据、数据库、视频,WEB、AI/HPC。


此外,我们还做了生态迁移,我们在阿里云的官网上构建了一个倚天的开发者社区。我们会把阿里巴巴内部各个业务做的应用从X86迁移到倚天ECS,以及把我们使用倚天ECS的经验分享到倚天技术社区。


为了让大家更好的从X86的生态迁移到我们倚天的生态,我们也开发了一些相应的工具,倚天迁移适配工具。在从X86迁移到倚天ECS的时候,你可以用这个工具进行扫描,扫描出哪些可以直接迁移到倚天ECS上,哪些要经过一些小的改动,还会给你一些建议等等。


此外,我们还会提供一些应用构建工具,比如云原生的镜像构建、镜像部署、k8s调度等实践。很好的屏蔽了倚天ECS和X86的一些差异,让用户更好的从X86迁移到倚天ECS,无需太多的开发和改变,让迁移更平滑。


2. 倚天CPU业务应用情况


基于前面提到的特性以及我们在软件方面的努力,倚天CPU无论是在阿里云的PaaS产品,还是阿里巴巴集团的业务(电商、蚂蚁、ODS、存储)都已经大规模的进行了落地,一些外部的客户也在倚天ECS上落地了很多。


幻灯片18.JPG


在阿里云产品方面,无论是PaaS产品还是集团电商,在使用基于倚天710的ECS实例之后,相较于X86架构下的集群都得到了比较好的性价比。比如EMR 10 TB数据量下, 倚天架构下的集群Hive任务耗时相对X86架构下的集群减少约20%,Spark任务耗时相对减少约15%,Trino任务耗时相对减少约10%。


大数据是我们非常重要的一个领域,因为它是一个重负载的计算场景,对于倚天这种高性能的CPU来说是非常适合的场景。在集团业务方面,倚天ECS实例已经有效支持阿里618、99大促以及双十一压测等多个活动,涉及电商、数据库、存储蚂蚁支付多个业务场景。其中电商核心交易系统相比于X86竞对产品有20%-30%的成本优势。


倚天ECS实例在ODPS大数据业务侧相比X86竞品有30%以上性能优势。ODS也是我们非常重要的一个大数据的PaaS场景。


在阿里云外部客户方面,X短视频客户,基于自身业务测试视频编解码场景,性能收益高达30%以上,性价比收益高达80%+。Y游戏客户,基于自身游戏对于计算和网络的高要求,倚天c8y在客户实测中跑分是X86架构同级的120%,综合性价比近乎200%。目前基于倚天710的ECS实例已经成为了外部客户降本增效的利器。


3. 倚天的持续优化和演进


最后来介绍一下倚天持续优化和演进的趋势。


我们一直在追求更极致的芯片优化和整机性能。比如我们提高了CPU 核心主频以及DDR5的内存频率,最开始128 core的核心主频是2.75 GHz,我们通过硬件上的一些优化和服务器上的一些联合创新,把主频已经提到了目前的3GHz,DDR5也达到了4800的频率。


幻灯片19.JPG


在软件优化上,我们会去做内核里的Kernel、JVM都做了非常多的优化,而且也会持续做下去。


下一代倚天产品已经在研究中了,进步也从来没有停止过。2021年11月,我们发布了倚天710芯片;2022年2月公有云倚天实例的邀测;2022年11月,集团电商双十一规模上线。


通过阿里内部的业务,把一颗芯片打磨成一个服务器、云实例,最终在阿里巴巴业务内部大规模应用后,这款产品逐渐打磨成熟。我们在2022年11月15日才开始真正对外去提供阿里云倚天实例的服务。目前已经有众多的外部客户,在倚天ECS实例上规模化的落地,并实现了降本增效。大家可以期待一下,下一代倚天产品的发布。


想要关注更多【倚天实例迁移课程】直播的同学可以点击原文进入活动官网了解更多资讯!


杨平超-广告机海报9-16-含二维码.jpg



相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
5天前
|
人工智能 云计算 数据中心
云计算演进问题之阿里云自研CPU倚天710的部署如何解决
云计算演进问题之阿里云自研CPU倚天710的部署如何解决
|
21天前
|
Kubernetes 关系型数据库 分布式数据库
PolarDB产品使用问题之PolarDB-X的架构形态有什么区别
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
1天前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何管理企业的组织架构
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1天前
|
存储 监控 Java
实时计算 Flink版产品使用问题之随着时间增加,作业的CPU繁忙度增加,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
26天前
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
1月前
|
运维 DataWorks 安全
DataWorks产品使用合集之如何查看空间资源、CPU、内存和存储空间容量
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
机器学习/深度学习 人工智能 并行计算
GPU 和 CPU 处理器的架构
CPU(中央处理器)和 GPU(图形处理单元)是计算机系统中最重要的两种处理器。它们各自的架构设计和技术体系决定了其在不同应用领域中的性能和效率。
47 1
|
22天前
|
存储 运维 Serverless
函数计算产品使用问题之如何规避因提高CPU规格而导致的内存规格不必要增加的问题
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
1月前
|
敏捷开发 前端开发 测试技术
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
217 1