V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LeeReamond
V2EX  ›  程序员

话说,微软的大小核概念是好设计还是坏设计?

  •  
  •   LeeReamond · 2023-06-23 21:08:01 +08:00 · 7994 次点击
    这是一个创建于 548 天前的主题,其中的信息可能已经有所发展或是发生改变。

    姑且不论目前产品如何,想知道在理想状态下大小核前景如何,是未来发展方向 or 是依托答辩?

    我个人比较好奇的点是,在传统计组工作原理的整个流程中,具体到指令集和 pipeline 的层面,CPU 是如何选择哪段用户代码在哪个核心上执行的?会产生什么优势吗?

    55 条回复    2023-06-25 17:43:16 +08:00
    liyang5945
        1
    liyang5945  
       2023-06-23 21:10:56 +08:00
    英特尔???
    Aloento
        2
    Aloento  
       2023-06-23 21:12:25 +08:00   ❤️ 9
    微软:我何德何能去设计通用芯片的
    jklove123bai
        3
    jklove123bai  
       2023-06-23 21:12:46 +08:00
    好奇为啥扯到微软了,Intel 表示这就是 Wintel 联盟是吗
    yedanten
        4
    yedanten  
       2023-06-23 21:16:24 +08:00 via Android
    微软估计是最想骂娘的吧,大小核的调度适配集齐难做。怕是内部在疯狂骂煞笔设计
    hello2090
        5
    hello2090  
       2023-06-23 21:16:41 +08:00 via iPhone
    微软的 13900K 好还是 AMD5900X 好?
    jklove123bai
        6
    jklove123bai  
       2023-06-23 21:17:42 +08:00
    @hello2090 你这差代了啊 13900K 打的是 7950x
    uncleben
        7
    uncleben  
       2023-06-23 21:18:25 +08:00 via iPhone
    是微软设计了大小核吗?
    xiaowowo
        8
    xiaowowo  
       2023-06-23 21:21:26 +08:00
    坏设计
    junkun
        9
    junkun  
       2023-06-23 21:29:46 +08:00
    首先大小核是芯片厂推的。其次,在移动设备比如笔记本上,大小核应该是有续航优势的。由于大小核在手机上的应用,手机的两大系统都已经适配很久了。但是在 windows 上可能依然有各种历史遗留的问题,目前还没有很好地适配。
    在实现上,每个核心都有独自的寄存器,由内核来对代码进行调度。除了同步等问题外,每个核心运气起来与单核差不多。
    LeeReamond
        10
    LeeReamond  
    OP
       2023-06-23 21:46:42 +08:00
    @liyang5945
    @Aloento 口误,脑袋里在想别的事,忽略细节
    flyqie
        11
    flyqie  
       2023-06-23 21:53:37 +08:00 via Android
    大小核在功耗上有优势。

    仅此而已,windows 是因为历史遗留问题导致的。。
    deorth
        12
    deorth  
       2023-06-23 22:03:44 +08:00 via Android
    微内核
    luhe
        13
    luhe  
       2023-06-23 22:16:50 +08:00 via iPhone
    我们 Wintel 是这样的
    plasticman64
        14
    plasticman64  
       2023-06-23 22:22:18 +08:00
    Apple Silicon 也是玩大小核设计的,我相信这以后是一个趋势
    mooyo
        15
    mooyo  
       2023-06-23 22:41:17 +08:00
    大小核对提升多核能力有优势
    cpstar
        16
    cpstar  
       2023-06-23 22:43:52 +08:00
    还能提到计算机组成原理,难道没学过操作系统这门课程么,CPU 调度主要靠谁啊,靠 CPU 自己啊?!
    ziseyinzi
        17
    ziseyinzi  
       2023-06-23 22:55:22 +08:00
    主要还是单核性能提升越来越困难了,所以开始打核战争,桌面平台是 intel 先搞的,但 AMD 以后也会搞。与其说是未来发展方向,不如说只剩这一个方向了。
    okakuyang
        18
    okakuyang  
       2023-06-23 23:12:53 +08:00
    前台任务用大核,后台任务用小核
    tool2d
        19
    tool2d  
       2023-06-23 23:38:45 +08:00
    我觉得是 arm 起的坏头,手机设计是没办法,电池有限,必须大小核。

    但是普通的 x86 桌面 CPU ,统一用大核+节能动态降频,也是完全没问题的。
    cest
        20
    cest  
       2023-06-23 23:54:07 +08:00
    大小核猜猜那个是主要任务就行

    7950X3D 这种一边大 cache ,一边高频的怎么搞

    程序自己给 os hint 现在这个 function 偏好大 cache, 下个 function 偏好高频?
    shutongxinq
        21
    shutongxinq  
       2023-06-24 00:04:02 +08:00
    @tool2d 同样成本,大小核提供相同的单核性能和更强得多的多核性能
    cnbatch
        22
    cnbatch  
       2023-06-24 00:05:02 +08:00   ❤️ 3
    如果是指 Intel 的大小核,那么在我看来,目前的大小核处理方式实在不怎么好。无论 Windows 还是 Linux 。
    Windows 有目共睹,Win10 的大小核调度实在非常差(微调电源管理设置项可以解决,比较麻烦),Win11 才优化了不少。
    至于 Linux ,优化适配 Path 一次又一次地更新,反正还没稳定下来。

    看起来,x86 的大小核调度并不能照抄 ARM 的方式。


    不过我觉得有一项功能很适合大小核调度。

    Intel 前一段时间公布了纯 64 位架构的“x86s”,意思就是不再启动到 32 位模式,但 64 位环境仍然可以兼容运行 32 位程序。

    如果 Intel 愿意更进一步,大核完全纯 64 位(不运行 32 位程序),小核专门运行纯 32 位程序,就如同 ARM 的做法一样。这样的玩法确实很适合大小核。
    leoleoasd
        23
    leoleoasd  
       2023-06-24 00:06:21 +08:00   ❤️ 1
    > 具体到指令集和 pipeline 的层面,CPU 是如何选择哪段用户代码在哪个核心上执行的?会产生什么优势吗?
    CPU 不选择,是 操作系统的调度器决定的
    所以确实应该骂微软
    agagega
        24
    agagega  
       2023-06-24 00:18:13 +08:00   ❤️ 1
    没有用过 Intel 的大小核 CPU ,只是在网上听说 Windows 调度的逻辑是简单的前台大核后台小核。如果真的是这样那也太 naive 了,不清楚微软是不是有什么历史包袱。至少 Apple Silicon 在 macOS 的调度比这个强(除了基于 QoS 还有啥?),另外也好奇 Asahi Linux 是怎么调度的
    mmdsun
        25
    mmdsun  
       2023-06-24 00:19:49 +08:00
    @flyqie
    @junkun
    “一核有难,多核围观”。这种最早就是手机上,安卓系统上的高通、联发科 CPU 搞出来的垃圾调度。
    相反,CPU 调度 Win 到没啥遗留问题。虽然 PC 大小核还没多久,但 Wintel 联盟明显比早些年前安卓高通或者联发科好多了。Intel 上来就出了 Intel Thread Director 来和 Win 配合。微软 Win11 还对大小核有特别的优化还有机器学习等智能调度的加持。

    chevalier
        26
    chevalier  
       2023-06-24 00:24:19 +08:00
    Intel 被 AMD 摩擦,但是自身单 Ring 设计又不能像 AMD 那样堆高频大核心,迫不得已联合微软搞出来了大小核,为了就是重夺跑分冠军

    Intel 的服务器 U 就没有大小核
    mmdsun
        27
    mmdsun  
       2023-06-24 00:36:42 +08:00   ❤️ 1
    PC 上,英特尔 CPU 是由 Intel Thread Director ( ITD )将负载信息反馈给操作系统,后者决定给予哪个核心来执行。ITD 和操作系统配合识别一些高负载的指令,如果有会立即将其分配给大核,同时将部分默认负载转移到小核,来减轻大核压力。另外,Win11 会使用机器学习等 AI 算法来智能调度。目前可供参考的外部文档不是很多。

    https://www.intel.com/content/dam/develop/external/us/en/documents-tps/348851-optimizing-x86-hybrid-cpus.pdf


    CPU 的指令集和流水线设计会影响操作系统的调度决策,但是决定哪段用户代码在哪个核心上执行的最终决定是由操作系统的调度器来做的。根据安卓调配大小和的经验,至少要过个一年半载,大小核才能优化好。
    wowodavid
        28
    wowodavid  
       2023-06-24 00:58:48 +08:00 via iPhone
    intel 的大小核,主要还是缓存设计的问题,强行上核心,缓存的成本太高了;再不上核心,距离 amd 越来越远了(在单核 ipc 无法进步的时代,核心才代表了生产力)
    yyfearth
        29
    yyfearth  
       2023-06-24 01:46:56 +08:00
    @chevalier 服务器要要啥大小核 可以理解成全部是大核 或者全部是小核
    实在需要做 offload 就加 IPU 之类的辅助芯片就是
    bnull
        30
    bnull  
       2023-06-24 01:56:43 +08:00
    @yyfearth 下一代设计就是有全大核和全小核的两种服务器 u
    wwbfred
        31
    wwbfred  
       2023-06-24 06:05:07 +08:00   ❤️ 1
    从应用开发者的角度来说,这应该和全大核没有区别,要是留个接口选大小核那可就太操蛋了。
    写操作系统和内核的应该会很蛋疼,本来跑得好好的,现在代码都得改,日。
    INTEL 应该很开心,毕竟换条跑到就又可以和 AMD 一战了。
    kawaiidora
        32
    kawaiidora  
       2023-06-24 07:27:26 +08:00 via Android   ❤️ 2
    英特尔出大小核是因为核心数量和多核性能干不过 AMD ,所谓的权宜之计。手机的调度做起来简单,前台大核后台小核就完事了,PC 的场景更加复杂,理论上让性能需求不同的应用或线程跑在不同的核心,当然是好的,但实际上软件不愿意跟进,推广的阻力更大,目前体验较差
    opengps
        33
    opengps  
       2023-06-24 08:36:30 +08:00
    既要续航又要性能,大小核是个更廉价解决方案
    opengps
        34
    opengps  
       2023-06-24 08:37:57 +08:00
    @bnull 服务器重视计算,没有续航问题需要兼顾,在解决小核不支持浮点加速功能之前估计一时半会不会给服务器 U 设计大小核
    Donahue
        35
    Donahue  
       2023-06-24 08:43:47 +08:00
    @opengps 但好像最近的 amd 笔记本续航也不错了
    Songxwn
        36
    Songxwn  
       2023-06-24 09:24:21 +08:00
    在笔记本是好设计,在桌面台式机没任何必要
    leonshaw
        37
    leonshaw  
       2023-06-24 09:33:57 +08:00 via Android
    答辩,既要省成本又要跑分,牺牲了软件复杂度和用户体验。要低功耗降频或者关核就行了。
    Donduck
        38
    Donduck  
       2023-06-24 09:56:25 +08:00
    @agagega #24 Windows 当然有 QoS ,还可以手动部署不同 QoS level 的电源设置
    https://learn.microsoft.com/en-us/windows/win32/procthread/quality-of-service
    LeeReamond
        39
    LeeReamond  
    OP
       2023-06-24 10:07:25 +08:00
    @mmdsun 感谢回复,目前你提供的信息最多。我感觉用 AI 辅助判断调度挺矛盾的,机器学习算法本身就是比较耗算力的行为,很可能入不敷出,也许以后 CPU 都要另外嵌入一些矩阵推断芯片。。。按照你的说法现在的英特尔实际上做的就是单独烧录了一个单元,用来以线程为单位分析负载,必要时发送中断,然后操作系统再调用接口做大小核线程切换这样。我感觉这个概念似乎并没有什么美感,本身硬件烧录很难做得智能,核心切换本身又只能依赖三缓,感觉开销很大啊。。。
    Donduck
        40
    Donduck  
       2023-06-24 10:15:29 +08:00
    @LeeReamond #39 并没有 AI 判断,英特尔的说法是算法预先使用机械学习生成,出厂时就完全固定了算法,并不存在使用中学习
    documentzhangx66
        41
    documentzhangx66  
       2023-06-24 11:25:27 +08:00
    1.Intel 的大小核设计,主要是针对移动设备的发展路线,台式机、工作站,的确是受害者。但你这样想:小核其实是额外送给你的,会不会有一丢丢的安慰?

    有人可能会杠,那我还不如买 AMD 。但 AMD 有个问题,很多软件的开发,受限于成本问题,只会在 Intel CPU 上测试,而 AMD CPU 会看情况进行延后适配。前不久塞尔达最新 D 版出来时,就有这个问题,同价位的 AMD ,因为没适配,导致经常黑屏闪退。

    2.你需要单核的高性能时,只需要把小核关掉就行。或者通过软件调节,把需要性能的进程,手动或自动绑定到闲置大核去。当然,这两个方案,都会有一些心理上,或技术上的缺陷。

    3.当你需要整体算力时,打开所有核就行了。
    bt7vip
        42
    bt7vip  
       2023-06-24 12:52:40 +08:00 via Android
    到现在为止,我都不理解,我台式机要节什么能,买桌面 CPU 是干嘛的,节能的吗,后台调到小核运行。那后台不动,其他核直接顶上去,那个更简单。笔记本要节能,AMD 投靠台积电,纯大核的笔记本耗电吗??

    遇到两个很可笑的事
    1:win10 ,hyper-v 虚拟机部分 window 系统不支持,要升特定版本以上。(装个虚拟机还要动宿主机)
    2:Intel 大小核 win11 以上支持,升级个电脑还要升级到 win11 。
    以上两条笑点都是基于不怎么折腾的前提。爱折腾的巴不得测试版就要上的略过。
    icyalala
        43
    icyalala  
       2023-06-24 13:10:47 +08:00
    大小核进入大众的视野最开始是 ARM 的 big.LITTLE 吧。。
    ARM 的大小核目的是省电,但是 Intel 的大小核主要是为了刷分。
    想要调度好,系统需要对开发者强势才行。macOS 那套 QoS API 开发者必须接受,绑核什么的根本不支持,线程被调度到哪个核心全都由系统控制。
    zzhzero
        44
    zzhzero  
       2023-06-24 13:17:04 +08:00   ❤️ 3
    不管苹果还是微软
    桌面端搞大小核的都是狗屎
    我 tm 都插电了还在乎什么功耗
    cwbsw
        45
    cwbsw  
       2023-06-24 14:44:03 +08:00
    AMD 也有类似的设计,跨 CCD 访存,X3D 上的缓存核和频率核,体质问题导致的各核心最大 boost 频率不一致等等,可以说 AMD 早就是大小核了。各核心不能一视同仁是操作系统必须要解决的问题。
    shijingshijing
        46
    shijingshijing  
       2023-06-24 15:32:34 +08:00
    服务器全部是大核,说服务器不考虑能耗的纯属扯淡,数据中心对能耗要求不仅是刚需,而且比普通 PC 要求高多了,PUE 什么的都是实打实的硬指标,而且很早就有专门为存储设计的低功耗 ATOM 处理器,要是大小核效果这么好,调度这么容易,服务器早就把 Core 和 Atom 集成了。

    而且也不是体积因素,数据中心对单位面积能部署的机器数量也是刚需.
    shijingshijing
        47
    shijingshijing  
       2023-06-24 15:34:14 +08:00
    说到底就是:大小核纯粹是 Intel 为了和 AMD 比拼核心数搞出来的嵌合体怪物,没啥卵用还占晶体管数。
    fox0001
        48
    fox0001  
       2023-06-24 17:58:17 +08:00 via Android
    现今,不整个新东西,谁会换 CPU ?
    JensenQian
        49
    JensenQian  
       2023-06-24 18:23:50 +08:00
    笔记本上觉得不错
    台式机根本不用在乎功耗的,根本没必要
    不过 12 ,13 代 intel 真香
    jklove123bai
        50
    jklove123bai  
       2023-06-24 19:06:08 +08:00
    Intel 是异构大小核,AMD 是同架构大小核
    Greatshu
        51
    Greatshu  
       2023-06-24 19:59:18 +08:00
    Apple 有,就是好设计,没有,就是坏设计。
    cy18
        52
    cy18  
       2023-06-25 01:59:05 +08:00
    跟功耗关系不大,主要还是为了提高核心数量(跑分)、省芯片面积(成本)。
    youmilk
        53
    youmilk  
       2023-06-25 09:17:51 +08:00
    不是说 amd 下一代也要跟进大小核,嘤特尔大小核的最大作用就是拉高大核的性能
    xqk111
        54
    xqk111  
       2023-06-25 13:34:43 +08:00
    设计肯定是好设计,就是算法得跟上,一核有难八核围观可不行
    luozic
        55
    luozic  
       2023-06-25 17:43:16 +08:00
    大小核得调度 和之前 核心占用多少得搞分配的调度,从来就是很难问题,除非学习手机上,直接切换核心作为调度方式。 这么容易就不会一直计算机工业和 linux 内核有新算法 新论文了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2315 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:57 · PVG 23:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.