Salomea
V2EX  ›  问与答

ARM 比 X86 的局限是什么

  •  
  •   Salomea · Sep 5, 2023 · 8278 views
    This topic created in 1158 days ago, the information mentioned may be changed or developed.

    当服务器用,很多人推荐 x86 ,那 arm 有啥缺点?我自己用的闲鱼买的黑豹 x2 ,刷的 armbian ,个人感觉 arm 机子的几个优点,精致小巧,省电,不过可刷的固件有限,但是限制 arm64 也有很多软件适配下来了

    63 replies  •  2023-09-06 09:35:46 +08:00
    rojer12
    rojer12
    Sep 5, 2023❤️1
    1
    你自己不是说了么,“可刷的固件有限”、“很多软件适配”
    用 x86 需要考虑的是哪些特定场景/应用不好使(不是说用不了)
    用 arm 需要考虑的是能用于哪些场景和哪些场景还没法用/doge
    OceanBreeze
    OceanBreeze
    Sep 5, 2023
    2
    我们公司很多 web 服务器都是 arm
    Salomea
    Salomea
    OP
    Sep 5, 2023
    3
    @rojer12 🐶是这样的,感觉 arm 在服务器上快赶上 x86 了
    hatw
    hatw
    Sep 5, 2023
    4
    貌似是指令集少了?然后很多东西用不了还是啥的。。。看过文章,忘了。。。。
    cpstar
    cpstar
    Sep 5, 2023❤️2
    5
    局限就是没有替代 x86 成为主流,当 80%的市场份额都是 ARM 的时候,什么适配什么有限,全都不存在。
    gpt5
    gpt5
    Sep 5, 2023
    6
    局限性就是很多 软件/包 不支持 arm 或支持的不好啊
    tool2d
    tool2d
    Sep 5, 2023
    7
    就是算力的区别,x86 能在高压的情况下,把并发拉上去。

    arm 自己用用可以,商用一般要改散热,默认风扇都不太给力。
    julyclyde
    julyclyde
    Sep 5, 2023
    8
    可刷的固件没必要太多
    操作系统对硬件的适配,那个所谓 board support package 才是对各设备不同的
    上层软件基本都源码级别通用
    crysislinux
    crysislinux
    Sep 5, 2023 via Android
    9
    ARM 驱动不好搞,x86 通用很多。ARM 大部分都是一个板子焊接到一起的,x86 标准接口的东西多。
    luckyrayyy
    luckyrayyy
    Sep 5, 2023❤️1
    10
    生态
    duke807
    duke807
    Sep 5, 2023
    11
    未来是 risc-v ,当下是 x86 ,arm 只是过度
    wanguorui123
    wanguorui123
    Sep 5, 2023
    12
    ARM 的生态相对落后,但是自从 M1 问世现在基本上模糊化了
    cutiechi
    cutiechi
    Sep 5, 2023
    13
    现在政企很多服务器全换成 arm 了
    ljrdxs
    ljrdxs
    Sep 5, 2023
    14
    @superchijinpeng 为什么? ARM 是公司出售的产品,并不是纯开源的吧?
    cutiechi
    cutiechi
    Sep 5, 2023
    15
    @ljrdxs 我指的是架构

    happy32199
    happy32199
    Sep 5, 2023 via iPhone
    16
    @OceanBreeze 请问你们 arm 服务器 用的哪些型号啊
    ljrdxs
    ljrdxs
    Sep 5, 2023
    17
    @superchijinpeng 你发的图好像是 Linux 。似乎不相关。
    XyIsMy
    XyIsMy
    Sep 5, 2023
    18
    @OceanBreeze arm 用在 web 服务上稳定么。有没有遇到过问题
    suitts
    suitts
    Sep 5, 2023
    19
    arm 主打低功耗吧,x86 的生态和性能是优势。看你服务器需求
    cslive
    cslive
    Sep 5, 2023❤️2
    20
    x86 通用,随便刷机,arm 闭源驱动,刷个机费劲
    niantoudeyisi
    niantoudeyisi
    Sep 5, 2023 via Android
    21
    感觉是生态
    nothingistrue
    nothingistrue
    Sep 5, 2023
    22
    ARM 性能上不去(或者说能效比涨得比频率快),X86 待机功耗下不来。
    OceanBreeze
    OceanBreeze
    Sep 5, 2023
    23
    @XyIsMy
    @happy32199 暂时没遇到什么问题。用的是 AWS 上的 arm 机型。
    cutiechi
    cutiechi
    Sep 5, 2023
    24
    @ljrdxs #17 用的是这些发行版
    ljrdxs
    ljrdxs
    Sep 5, 2023
    25
    @superchijinpeng 我以为芯片都是国产。看来不是这意思。
    46fo
    46fo
    Sep 5, 2023
    26
    @ljrdxs 他这里的 CPU 有可能是国产的 Arm 比如华为
    qieqie
    qieqie
    Sep 5, 2023
    27
    没有 256bit 以上 SIMD 指令和寄存器,没有硬件层面的 strong memory model
    ljrdxs
    ljrdxs
    Sep 5, 2023
    28
    @xdeng 我的最初疑问是,既然 ARM 是公司售卖的产品,就算华为买了造,也不属于“开源可控”吧?
    当然官场上没那么看重技术。
    longbo666
    longbo666
    Sep 5, 2023
    29
    @qieqie 因为我自己看不懂哈哈,所以我把你说的发给 GPT——

    不完全正确。ARM 架构与 x86 架构在某些方面不同,但并不是完全没有 256 位以上的 SIMD ( Single Instruction, Multiple Data )指令和寄存器,也不是完全没有硬件层面的 strong memory model 。

    SIMD 指令和寄存器:
    ARM 架构在其 NEON 扩展中引入了 128 位和 64 位 SIMD 指令集,以支持向量化操作。虽然 128 位是主流的,但某些 ARM 处理器已经引入了 256 位的 SIMD 指令集(例如,ARMv8.5-A 架构引入了 SVE ,Scalable Vector Extension ,支持 256 位和更大的向量寄存器)。这使得 ARM 能够进行高效的数据并行计算。

    Memory Model (内存模型):
    ARM 架构实际上有一种称为 ARMv8-A 的硬件层面的内存模型,它提供了一种强内存模型,与 x86 的内存模型类似。ARMv8-A 引入了严格的一致性内存模型,确保多线程程序中的内存访问按照一定顺序执行,从而简化了并发编程。这个内存模型是面向多核和多线程应用程序的。

    总之,ARM 架构与 x86 架构在 SIMD 指令集和内存模型方面存在一些差异,但不是没有 256 位以上的 SIMD 指令和寄存器,也不是完全没有硬件层面的 strong memory model 。这些差异主要取决于具体的 ARM 处理器架构和版本。
    pagxir
    pagxir
    Sep 5, 2023 via Android
    30
    软件生态支持不够。比如多媒体硬件编解码,x86 的基本上 vaapi 直接用,arm 基本上除非是 Android 否则就只能 CPU 硬扛
    L4Linux
    L4Linux
    Sep 5, 2023
    31
    @cslive 也有支持 UEFI 的,基本都是服务器板子,就是 livecd 少。
    L4Linux
    L4Linux
    Sep 5, 2023
    32
    @nothingistrue Nervous-N1 开始就比较强了。
    adoal
    adoal
    Sep 5, 2023
    33
    自己拿来当“服务器”角色玩的盒子就别想那么多了。
    人家的 ARM System Ready 服务器是生产环境的正规服务器。
    jian0jian
    jian0jian
    Sep 5, 2023
    34
    软件生态, 有些软件只有 x86 版本,这就没办法了。 不过大部分 arm 没问题。
    yinmin
    yinmin
    Sep 5, 2023
    35
    现在,mac 的 m1/m2 芯片的加持下,几乎常用的 linux 软件都支持 arm64 了,不支持 arm64 的软件不是流行软件了。
    nevin47
    nevin47
    Sep 5, 2023
    36
    @ljrdxs #28 ARM 只是授权指令集,不负责成片销售,指令集只是芯片设计的基础而不是全部
    46fo
    46fo
    Sep 5, 2023
    37
    @ljrdxs 楼上说的对
    webcape233
    webcape233
    Sep 5, 2023 via iPhone
    38
    科学计算 ,行业软件,arm 可用性还约等于无
    ljrdxs
    ljrdxs
    Sep 5, 2023
    39
    @nevin47
    @xdeng 这下不止官场领导,我也看不懂了……
    Donahue
    Donahue
    Sep 5, 2023
    40
    自己做家用服务器用其实没什么区别

    可刷的固件少-> 大部分功能 armbian/openwrt 都能搞, 甚至你喜欢折腾的话黑豹 x2 也能刷 pve, 只是没那个必要。

    我自己用我家云/黑豹 x2 做旁路由,觉得挺稳定的,本来都性能过剩,毕竟我宽带才 100M, 完全没有上 x86 的意义。即使千兆,arm 旁路由也足够的

    arm 的缺点是可扩展性和 cpu 性能,如果你想加硬盘加内存这些就用 x86 , 相反如果你觉得黑豹 x2 的 4G 内存, 32Gemmc 或 TF 卡能满足你的要求,那我觉得 arm 其实是更优的选择。
    Jirajine
    Jirajine
    Sep 5, 2023 via Android
    41
    就是没有硬件可用。不要说软件适配,开发团队都买不到实际可用的硬件。arm 的服务器一直处于 experimental 阶段,只有少数云厂商、小型开发板,以及国内为了政治指标硬上的电子垃圾等少数产品能用到 arm 的服务器。
    bequt
    bequt
    Sep 5, 2023
    42
    请问 arm 能跑 python 吗?最近也考虑买一个 arm 。docker 能跑也行
    ivan_wl
    ivan_wl
    Sep 5, 2023
    43
    @longbo666 #29 SIMD 我不懂,这个内存模型的说法就是扯淡,GPT 还是一如既往的扶不上墙
    bt7vip
    bt7vip
    Sep 5, 2023 via Android
    44
    arm 使用的是复杂指令集,X86 使用的精简指令集,精简是把功能做成黑盒,你开发直接调用,精简是给你一块地自己想种啥种啥,但是开发难度大,相比精简指令集,复杂指令集的效率更高,定制自由度高,但是开发难度大。arm 也在做复杂指令集,但是生态实在是不行。
    bt7vip
    bt7vip
    Sep 5, 2023 via Android
    45
    精简是给你一块地自己想种啥种啥》》复杂是给你一块地自己想种啥种啥
    nevin47
    nevin47
    Sep 5, 2023
    46
    @ljrdxs #39 和官场没有半毛钱关系。相比于 X86 ,基于 ARM 的芯片全流程从设计到制造都可以做到可控,未来基于 RSIC-V 可控程度可以做到更高。
    nevin47
    nevin47
    Sep 5, 2023
    47
    @bequt 你这个问题就好像是问:现在的新能源汽车能左转吗😁
    Donahue
    Donahue
    Sep 5, 2023
    48
    @bt7vip 跟指令集有半毛钱关系,你写 c/cpp/python/js 需要写到跟指令集相关的东西么,这写都是写编译器的人才需要了解的
    firstlove
    firstlove
    Sep 5, 2023
    49
    这个 thread 的回复基本都是来搞笑的...
    Donahue
    Donahue
    Sep 5, 2023
    50
    @bequt x86 能跑的语言 arm 基本都能(应该是所有主流语言, 例如 c, c++, python, java, js, ruby, rust, golang), c#不太清楚能不能,我估计 c#也可以。
    haierspi
    haierspi
    Sep 5, 2023 via iPhone
    51
    我能感知的区别就是软件生态
    Inn0Vat10n
    Inn0Vat10n
    Sep 5, 2023❤️2
    52
    某些回复给我看傻了,似乎都没上过大学计算机专业课。。。。
    qweruiop
    qweruiop
    Sep 5, 2023
    53
    很多计算的库在 arm 上比 x86 慢了几倍。。。
    gtx990
    gtx990
    Sep 5, 2023 via Android
    54
    现代的 cpu 前端第一件事就是把指令译码成微指令
    指令长什么样根本不重要
    同一个架构甚至可以有多种前端
    比如原本 amd 还准备发布 arm 版的 zen ,也就是 k12
    Adelell
    Adelell
    Sep 5, 2023 via iPhone
    55
    提醒一下 Apple silicon m1 m2 就是 arm 架构。
    cookii
    cookii
    Sep 6, 2023 via Android
    56
    @Donahue 能跑是一回事,能稳定高性能的跑是另一回事
    jameskongawork
    jameskongawork
    Sep 6, 2023 via Android
    57
    IO 操作,或者说这是 RISC 必有的劣势
    另外因为 X86 实际上只掌握在两家手里面(AMD INTEL)所以基本上在预取,CACHE 还有 DMA 上面都会考虑的比较周全。
    ARM 的基本上则是根据具体的芯片实现厂商和应用场景去考虑,大量的消费 ARM 片子都是多媒体或者是通信为主,所以基本上 IO 吞吐都不会太强。
    xarthur
    xarthur
    Sep 6, 2023 via iPhone
    58
    差距是市占率不够高,生态还不如 X86 ,不过感谢 Apple 现在支持 ARM 的软件越来越多了,现代芯片行业最值钱的就是生态,而指令集只是生态的边界而已。
    这也是为啥 intel 到现在也放不下已经成包袱的 X86 了。
    jameskongawork
    jameskongawork
    Sep 6, 2023 via Android
    59
    @jameskongawork 另外多说一句,关于硬盘和外设链接,目前所谓的 arm 消费片子当服务器用的所谓 m2 或者是 sata 几乎都是通过内部 IP 转 USB 再转 AMBA 实现的,这是成本使然,所以必然还有的是延时和带宽的限制
    jameskongawork
    jameskongawork
    Sep 6, 2023 via Android
    60
    @jameskongawork 另外多线程多核操作估计也差目前主流 x86 很远,因为内部的 noc 往往都是 flexnet 这样的设计加个 CCI 。所以这样的话核间的 exchange 代价就比较高,如果做比较强 corelated 的多核操作性能就比不过。
    msg7086
    msg7086
    Sep 6, 2023
    61
    @Donahue 计算密集型项目会大量用到汇编指令集。用 C 然后让编译器去优化,那就不知道慢到哪里去了。
    你有兴趣的话可以试试看跑 x265 ,用--no-asm 路径跑(纯 C+编译器优化),看看比 AVX2 要慢多少。

    如果只是跑跑 php python 之类的,不追求性能的,那当然怎么搞都无所谓了。但是企业环境下对指令集的依赖是很大的。适配 NEON 是硬性成本,不适配就是性能狂掉。
    wm5d8b
    wm5d8b
    Sep 6, 2023 via Android
    62
    你有 DTS ,就没有固件数限制了,只能说大牛帮忙做好的现成固件少
    keenkiller
    keenkiller
    Sep 6, 2023
    63
    arm 各版本之间兼容性比较差,生态也没跟上,目前只能用在有限的场合。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2177 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1083ms · UTC 12:51 · PVG 20:51 · LAX 04:51 · JFK 07:51
    ♥ Do have faith in what you're doing.