问题

服务器 CPU 为什么不用 12 代酷睿的「大小核」?

回答
您好!关于您提到的服务器 CPU 为何不普遍采用类似桌面端 12 代酷睿的“大小核”架构,这确实是一个值得深入探讨的问题。简单来说,这背后涉及到服务器与桌面用户在需求上的根本性差异,以及架构设计上的取舍。

首先,我们要明白桌面端 12 代酷睿引入“大小核”(Performancecore 和 Efficientcore)的初衷是什么。英特尔这样做,是为了在提供强大高性能的同时,兼顾能效比,尤其是在应对日常办公、浏览网页、轻度娱乐等场景时,能让更小的“能效核”承担任务,从而降低功耗和发热。这对于延长笔记本续航、降低台式机电费、减少散热需求都有显著的好处。简单来说,桌面端的用户使用场景非常多样化,工作负载的波动性很大。

那么,服务器端的情况又如何呢?服务器的核心使命是持续、稳定、高效地处理海量并发请求,并且通常需要极高的计算密度和吞吐量。在这种背景下,“大小核”架构在服务器上的应用就显得没那么直接和普适了。以下是几个关键原因,我会尽量详细地解释:

1. 工作负载的性质差异:

服务器是“重度工作狂”: 大多数服务器的应用场景,如数据库处理、虚拟化、科学计算、大数据分析、Web服务器托管等,往往是持续且密集计算的。这些任务需要CPU长时间以较高的频率运行,并且期望所有核心都能尽可能地发挥性能。想象一下,一个数据库服务器在处理成千上万个用户请求时,它希望每一个核心都像一个全副武装的战士,随时准备战斗,而不是一部分战士在打仗,另一部分在休息。
桌面端是“多面手”: 桌面用户的使用场景则更加碎片化和多变。有时你在玩大型游戏,需要所有核心火力全开;有时你只是在浏览网页,只需要一个或两个核心提供基础算力。这时,“大小核”的优势就能体现出来,让能效核处理轻量任务,性能核保留给高负荷应用。

2. 核心一致性与调度复杂度:

服务器操作系统与应用程序的优化重点: 服务器操作系统(如Linux、Windows Server)和服务器应用程序在设计时,通常会针对同质化的高性能核心进行优化。它们期望所有核心都能提供一致的性能表现,并且调度器能够更简单、更直接地将任务分配到任意一个核心上。
“大小核”的调度挑战: “大小核”架构引入了一个新的复杂性:异构调度。操作系统需要智能地判断一个任务应该分配给性能核还是能效核。在服务器领域,这项任务的难度被放大了。如果一个关键任务被错误地分配到了能效核上,可能会导致性能瓶颈,影响整体服务质量。即使有改进的调度器,其复杂度和潜在的错误率也是一个需要权衡的因素。更何况,某些服务器应用可能对缓存一致性、线程抢占延迟等有极高的要求,异构核心的引入可能会对这些方面产生微妙但关键的影响。
同质化核心的优势: 相对而言,同质化的高性能核心可以提供更可预测和一致的性能。服务器的CPU调度器可以更轻松地在这些核心之间分配任务,无论是单个线程还是大量并行线程,都能获得相似的计算能力。这使得应用程序的开发和性能调优也更加直接。

3. 对“能效比”的定义不同:

服务器的“能效比”:是“每瓦特性能”:在服务器领域,能效比不仅仅是降低功耗,更重要的是在单位功耗下能够提供的计算能力(性能/瓦特)。对于数据中心而言,电力消耗和散热是巨大的成本。如果一个高性能核心能够以更高的频率、更低的延迟完成任务,即使它消耗的功率稍高一些,但如果它能更快地完成工作并返回待机状态,或者能够处理更多的并发请求,那么它可能比一个低功耗但速度慢很多的核心在整体能效上表现更好。
“大小核”的权衡问题: 英特尔的“大小核”是基于不同微架构设计的。通常,性能核(如Pcores)是基于更先进、更强大但功耗也更高的微架构(如Golden Cove),而能效核(如Ecores)是基于更小巧、更节能但性能较低的微架构(如Gracemont)。服务器更倾向于使用统一的高性能微架构来最大化所有核心的计算能力。如果非要引入类似“大小核”的概念,可能需要设计一套同质但具备动态性能调整能力的架构,而不是根本性的微架构差异。

4. 缓存和内存子系统:

统一缓存的重要性: 服务器CPU通常拥有非常大的共享二级缓存(L2 Cache)和三级缓存(L3 Cache),以支持大量核心的协同工作和数据共享。在一个拥有大量高性能核心的服务器CPU中,如何有效地管理这些缓存,保证各核心之间的缓存一致性,是设计上的一个重点。引入两种不同类型的核心,可能会增加缓存管理和一致性协议的复杂性,甚至可能影响缓存的命中率和延迟。
AMD EPYC的策略: 相反,我们可以看到像AMD的EPYC处理器,它们通常采用大量同质化的Zen架构核心(虽然不同代有不同微架构,但同一代内部是同质的),并通过Chiplet设计将这些核心集成在一起,并拥有庞大的共享L3缓存。这种设计策略在服务器领域获得了巨大的成功,证明了同质化高性能核心在服务器场景下的优势。

5. 虚拟化和隔离需求:

虚拟机性能一致性: 在虚拟化环境中,服务器会运行大量的虚拟机(VM)。每个虚拟机都期望获得稳定、可预测的计算资源。如果虚拟机运行在异构核心上,其性能表现可能会因为调度的不确定性而波动,尤其是在虚拟机之间需要频繁切换或共享资源时。同质化核心可以提供更公平和一致的资源分配。
安全隔离: 虽然大小核设计在安全隔离方面有其优势(例如,将安全敏感任务放在性能核上),但服务器在安全隔离方面通常依赖于更成熟和经过验证的技术,如CPU的内存加密、安全启动等,以及操作系统层面的虚拟化隔离机制。引入异构核心带来的潜在安全风险(如果调度或访问控制不当)可能是服务器厂商不愿意轻易尝试的。

那么,服务器是否会永远不采用类似“大小核”的技术呢?

这也不一定。随着技术的发展,我们可能会看到更精细化的核心设计或者动态性能调整能力的出现。例如:

同质化但具备动态频率和电压调整的核心: 英特尔在某些服务器CPU(如Xeon Scalable处理器)上,已经能够根据工作负载和温度进行非常精细的动态频率调整(Turbo Boost等)。未来可能会有更进一步的动态性能调节技术,使得同质化核心也能在不同负载下实现高效能。
特定场景的定制化: 也许在某些特定的服务器应用领域(如边缘计算服务器、物联网网关等),对功耗和性能的平衡要求更高,会催生出类似桌面端的“大小核”或者更细粒度的异构设计。
任务导向型核心设计: 未来可能会出现更专门为特定服务器任务设计的核心,比如专门为AI推理优化的核心,或者为网络处理优化的核心。这些“专用核心”组合起来,也可能构成一种“异构”但更具任务导向性的服务器CPU架构。

总结来说,服务器CPU不采用类似桌面端 12 代酷睿“大小核”架构,主要是因为服务器的工作负载性质、对核心一致性和可预测性的极高要求、以及服务器领域对“能效比”的独特定义。同质化的、高性能的核心设计在当前的服务器环境中,能够更好地满足其持续、稳定、高效处理海量并发请求的需求。 当然,随着技术和应用场景的演进,未来的服务器CPU架构也并非一成不变。

网友意见

user avatar

又不是桌面平台需求多变限制条件多,机房里用小核服务器搭配大核服务器的方法显然更灵活且稳定。

user avatar
  1. 服务器对所有硬件配置和需求的评估,都是以“业务最高峰值”(再乘个冗余系数)来计算的。也就是说,包括供电、散热等等的外围系统,全都要求可以保证长时间以最高性能运行。所以不太存在手机中“soc能支持,但是电池和散热扛不住”这类迫切需要降频(切小核)的客观需求。
  2. 服务器的总成本中,服务器和机房机架的采购建设成本是一次性投入,而且还要按时间折旧的。所以,为了榨取更高回报,都是希望能7x24全力压榨它们性能,不存在为了省一点电而让它们空闲下来的动机。
  3. 云化、虚拟化技术的普及,使得传统概念中的“峰谷落差”被尽可能填满(动机来源于上一条)。所以从服务器硬件的角度,也不太会出现空闲/轻载的状态。
  4. 从业务的角度来说,“性能抖动”这个指标的重要性可能远超很多人的想象。也就是说同一个复杂度的指令及响应,不能一次1ms,一次100ms,否则这会导致调用/监控方可能误判而导致一些不必要的连锁反应。而越是大型系统,这种连锁反应就越危险(不可控)。所以,很多时候,不怕慢,就怕抖——真要每次都慢的话,有的是办法去优化或者缓解,实在不行就加机器嘛。而大小核之后,在高并发高压力情况下,很难保证是否每次请求都在同一类型的核上。多说一句:很多大型系统的最核心组件,拒绝上云的重要理由也是这条,包括早年java的gc饱受诟病也是类似的。
  5. 综上,服务器CPU出“全小核”的概率可能要高于“大小核”的概率:毕竟不少以数据、存储为核心业务的服务器中,对计算性能的敏感度并不高,实际上现在arm也瞄准这个需求开始进军服务器市场了。
user avatar

会出的,但不是现在

首先要说的是,服务器早就用上小核了。13Q3发布的至强C就是采用和ATOM相同的小核架构Silvermont。

Silvermont的制程优化版Airmont架构也曾经用于代号为Knights Landing的Xeon Phi,KNL有两种形态,插卡形式的协处理器和直接作为CPU使用。


最新的基于ATOM架构的服务器基于Tremont的P系列,Tremont是12代酷睿的能效核的上一代架构。

虽然Xeon Phi系列已经终止了,但在服务器上使用小核的需求一直存在:在一定功耗限制下提供最大的多线程吞吐性能,也就是我们一直说的能效比。


诚然,因为CPU核心的复杂性,能效比肯定无法与GPU相比,面向专用应用设计的ASIC就更加不用说了。但反过来,CPU的通用性、处理非特定任务的响应速度却不是GPU、ASIC可以比拟的。这也是ARM在服务器市场的切入点。


但纯小核的话,单个核心的性能毕竟有限,并不能完全满足某些需要高速响应的运算的要求,这也是KNL虽然已经可以单独作为CPU使用,但依然有协处理器的形态的原因。虽然说服务器应用相对单一,但这也仅仅是相对而已。举个很简单的例子,一台网站服务器,处理浏览器请求看吞吐量,只要响应时间在设计范围内,自然是单位时间响应的请求越高越好;但仍然会有一定数量的其它线程如硬件访问、监控服务、维护服务,响应时间越短越好的。所以服务器也是有采用混合架构需求的,少量的大核处理这些需要高速响应的任务,大量的小核提供更大的吞吐性能。


但和纯大核、纯小核相比,混合架构的大小核在服务器上的调度要比桌面复杂得多。桌面上可以用最简单粗暴的调度策略:前台应用用大核跑,后台服务用小核跑,不好判断的线程大核闲着用大核跑,大核忙着用小核跑。但服务器上,几乎所有线程都是后台服务,单纯靠硬件、操作系统去判断哪些线程需要高速响应最好用大核跑,哪些线程用小核跑可以获取最大的吞吐性能,大概率是经常搞错的。


此外,混合架构还有另一个问题,就是指令集分裂。目前12代是简单粗暴的把性能核的AVX512禁用了,这是因为桌面应用很少有足够大量的数据可以利用上AVX512提供的强大理论性能,即使需要处理海量数据的应用也往往需要重新设计数据结构才用的上AVX512的性能;但在服务器领域,AVX512还是有相当部分应用用得上的,强行禁用AVX512的话,这些客户要掀桌子的。但小核上实现AVX512会消耗大量的晶体管,现在的12代,4个小核占用的面积大概是1.3~1.4个大核,如果小核也要加上AVX512,我很怀疑1.8~2个大核的面积能否做出4个小核。


在业界能妥善处理线程调度、指令集分裂这两个问题之前,我觉得不会在服务器上看到混合架构CPU的普遍应用。

user avatar

建议是先让子弹飞一会儿。

服务器是讲究稳定性的,新技术肯定是被市场验证之后才用吧。

现在下什么结论都为时过早,万一后边服务器真的上了大小核,你们今天说大小核无用,会不会显得有点不自在呢?

我个人倾向于认为:需要先在桌面平台大规模使用,看看具体效果之后再决定服务器要不要上。

user avatar

「个人电脑」往往意味着一个人一台电脑,大多数人不会买多台配置不一的电脑,但同一台电脑要做大小不同的活。如何能让这台个人电脑变得更有效率?使用大小核,应付不同大小的活。

服务器往往不止一台,而且愿意付大价钱的都是使用超大规模群集的。别人不需要大小核,因为别人可以大小机,可以大小群集……根据活的大小,分配合适的机器来做,甚至分配合适的群集来做,颗粒度完全不需要细小到核上面。

如果你同时拥有 Apple Watch、iPhone、iPhone Pro、iPad Mini、iPad Pro、MacBook Air、MacBook Pro、Mac Pro,那你应该明白我在说什么。你需要做什么,就选择最合适的机器来做,没必要为它内部是否高效而操心。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有