百科问答小站 logo
百科问答小站 font logo



如何看待苹果M1芯片跑分超过i9? 第1页

  

user avatar   mai-wen-xue-67 网友的相关建议: 
      

太令人振奋了。

期待超算用上 M1.



user avatar   maomaobear 网友的相关建议: 
      

1、苹果证明了,只要你舍得堆晶体管,搞多路解码。

低频率,低功耗也可以提供高频率的性能,3Ghz能战5Ghz,只要你不怕贵。

这种做法的好处,是3Ghz下功耗比较低。

而你为了省晶体管,不用先进工艺,缓存也省,只是拉高频,成本也许下去了,但是功耗就上去了。

一样的晶体管成本,是一个核心多放一些,还是多搞几个核心拉高频,选择问题。


2、手机上搞SOC是功耗所限,但是,PC上也是可以搞SOC的,把一些常用的功能集成上去,在工艺越来越进步的情况下,比用独立板卡更好。

你放个视频压缩解压的模块,常用加密解密算法的模块,用不了多大地方,比让CPU去算要好。


user avatar   maomaobear2 网友的相关建议: 
      

苹果在A7已经是6发射了。

当年苹果就说自己是桌面级架构。

当年性能和桌面还有巨大差距,是因为主频低,工艺落后。

现在A14已经是八发射了,执行单元远超桌面处理器。

主频也拉到3Ghz了,M1已经拉到3.2Ghz了。

而英特尔桌面的睿频很早就拉到4Ghz,现在不过5Ghz,架构进步挤牙膏,IPC增长幅度可怜。

工艺还落后了。

所以跑Geekbench就被超了。

不过,真正跑程序,是另外一回事。

因为现在测试苹果的测试软件Geekbench在不同平台不同指令集测试不太准。

一样的英特尔处理器,在MACOS下比较好。

而用户真正用的程序,是两码事。

譬如,用户真要做高密度计算。

他一定不会像测试一样,用苹果搞的编译器去编译自己的程序,而是会用高性能的ICC编译器尽可能快跑。

而苹果和英特尔都用自己最快的编译器。

苹国M1的性能距离最快的英特尔处理器,就有很大差距了。

anandtech用苹果编译器,英特尔跑60多分,苹果也跑60多分,结论和geekbench基本一样。M1已经追上英特尔。

而用icc编译器,一样跑spec2006,其他测试显示英特尔能跑80-90分。

两者在单核性能上还有比较大的差距。

所以,现在还不能说苹果全面超越英特尔,只能说苹果搞的编译器编译的性能测试,苹果超过了英特尔。


user avatar   mu-tou-long 网友的相关建议: 
      

氪金一时爽,一直氪金一直爽

在对M1评价的那个回答里面,我没有具体评价M1的CPU部分,一方面是苹果公开的资料极少,另一方面也是当时产品未开卖,具体性能表现不明,所以只是针对整个SoC进行了评论。就在这个问题下补充一下对M1 CPU部分的评价吧。


创作声明:写苹果M1的CPU分析是痛并快乐着。作为硬件爱好者看到一个性能这么强的CPU总是忍不住去关注想去深入了解,但苹果不公开技术细节的尿性又让我只能到处找一些其它资料来管中窥豹。本文会有大量的间接推测结论,我无法对其正确性负责。


IPC王者

我写这个答案的现在,相信很多朋友都看到过M1的各种评测了,如果说M1是单核之王可能AMD Zen3的5950X不服,但说是IPC之王应该毫无争议了。仅仅工作在3.2 GHz的M1,和最高睿频4.9 GHz的5950X打的有来有往。至于多线程性能,受限于只有四个FireStorm的高性能核心,肯定不如16核的5950X,但和只有6核的Zen3 5600X,8核的i9-9980HK比,却是不落下风。(别忘了,搭载M1的Mac Mini,整机满载也就30W出头,而5600X是桌面CPU,9980HK是45W TDP还往往轻松跑出80W+的功耗,这两个CPU还都支持超线程的。)


这里简单贴一下Anandtech评测搭载M1的Mac Mini的几个结果[1]

Anandtech的原文后面还有SPEC2006、SPEC2017的评测,图比较多我就不贴了。而且A站统一用Clang编译SPEC的方式,时不时就有人说用ICC编译成绩可以更强之类的,这里就不提了。


另外,Geekbench官网提供了大量用户上传的测试成绩来方便比较,有兴趣的朋友,可以拿不同的CPU来和M1进行对比,看看M1强在什么地方。例如我就随便贴一个M1的MBP13和i9的MBP16的对比链接:


ARM的胜利?

其实,M1是苹果自研的A系列SoC中最新的A14的变种,自从苹果第一款支持ARMv8指令集的A8开始,A系列的IPC、单核性能一直很强,吊打一众安卓SoC,多次在一些跨平台的评测软件中跑出和x86相近的得分,GeekBench更是因此一直被戏称为AppleBench。


在M1之前,A系列仅用于苹果自家的移动设备:iPhone和iPad,独有的操作系统,移动设备有限的功耗,使得A系列和其它CPU,尤其是主要用于笔记本、台式机的x86 CPU的性能对比结果一直难以回避“软件平台不同”的质疑。即便是相对来说业界比较认可的SPEC评测,也因为需要自行编译,运行结果会因为操作系统、编译器、编译参数不同而有所偏差。所以这些年来,很多人逐渐接受“苹果的A系列很强”这个结论,但“到底有多强,能不能比x86强”则一直没有一个获得普遍认可的结论。


这次的M1,应用在苹果自家的Macbook、Mac Mini上,功耗限制放宽了不少,同样基于苹果的macOS,第一次正面挑战x86,苹果交出了一份让大家满意甚至惊讶的成绩。


M1:高成本换来的高性能

苹果目前并没有公开太多M1的细节,Anandtech使用Veedrac的架构测试软件[2],根据测试结果,推测的架构图如下(仅供参考):

192 KB的L1I(Leve 1 Instruction Cache,一级指令缓存),8路解码,630条目的ROB(ReOrder Buffer,指令重排缓冲区),6个ALU(Arithmetic Logic Unit,算术逻辑单元),两个乘法单元,一个除法单元,两个分支控制单元,4个内存读写单元(其中一个可以进行读写操作,一个写入操作,两个读取操作),4个128bit浮点/SIMD单元。此外,还有约354个条目的整数寄存器文件,384个条目的浮点寄存器文件,128 KB的L1D(Leve 1 Data Cache,一级数据缓存)。


作为对比,这里列一个x86最近几款CPU核心架构的参数:

可以看到,最重要的执行单元部分,M1/A14的6个ALU,4个FPU带来的最高理论性能直接就比其它CPU高50%~100%(暂不考虑x86 256bit的AVX)。而M1的L1/L2容量、解码宽度、ROB规模都非常大,往往是其它CPU的两三倍(其中12 MiB的L2容量是四个大核共享,平均3 MiB/核心,但运行单线程应用的时候,理论上可以全部由单个核心使用),前端、调度单元、缓存的庞大规模,保证了执行单元能最高效率发挥性能。


所以,不考虑更多细节的话,假设大家性能效率发挥基本一致,理论上M1的IPC,整数方面应该比Zen2/3、SKL、SNC都高50%;不考虑AVX,浮点方面比Zen2/3、SKL/SNC高100%。而x86的高频率所必须的长流水线,在分支预测失败需要重新填充流水线的时候,惩罚会比M1高,所以实际IPC要更低些;Intel家的FPU和ALU共享发射端口,IPC估计会更低一点。


可能会有人问,既然宽架构的性能这么强,为什么别的CPU厂家不做呢?答案很简单:成本。上面这些规模庞大的单元,每一个都要比其它CPU多消耗不少的晶体管。在这里做一个不靠谱的估算:

已知条件:M1总晶体管规模160亿,Anandtech放出来的下面这张高清Die Shot分辨率1180×1125,单个Firestorm内核大约150×168像素。

假设整个M1的晶体管密度基本均匀,可以推算出,不含L2的单个内核,使用了接近3亿晶体管。

作为对比,AMD的Zen2,单个CPU核心(含L2+L3Cache,共4.5 MiB)的晶体管规模大约是4.75亿,面积7.83 mm²,不含L3的面积是3.64 mm²,算下来核心部分大约使用了2.2亿晶体管。Firestorm消耗的晶体管大概比Zen2单个核心(含L2不含L3)多了38%。


而且其中比较消耗晶体管的SIMD单元,Zen2是256 bit×2,Firestorm是128 bit×4,可以假设:

  • M1和Zen2的SIMD单元消耗的晶体管数量相近
  • Zen2的浮点单元占比和同样支持256 bit×2 SIMD的Intel SandyBridge相近,75%(从Intel提供的CPU内核功耗分布推算[3]


M1除SIMD单元外的其它部分,消耗的晶体管数量为Zen2的250%。即便把Zen2的SIMD占比降低到50%,其它部分M1消耗的晶体管也是Zen2的175%。M1这个超宽架构,消耗的晶体管大概是Zen2的两倍左右,几乎可以直接用来做两个Zen2性能级别的核心。PS:i9就不说了,不管是14nm工艺,还是Skylake内核,都是五六年前的东西,对于日新月异,一两年一换代的半导体行业来说,现在还能被人拿出来鞭尸,鞭的时候还能动弹一下,已经足以说明Intel的强大了——只是要加个前缀,“当年”。


对于苹果来说,想要获得高性能,这个晶体管成本是必须付出的。用于移动设备的A系列因为电池技术、散热方式、续航时间的要求,功耗有限,无法让CPU工作在高频率下,只能用晶体管数量来换取高IPC来获得高性能,由A14派生出来的M1自然也只有这个选择。好在以苹果的产品价格和利润率,还是足以覆盖这个成本的。移动设备用户需要处理的数据量有限,iOS/iPad OS的杀后台机制也保证了需要的内核数量有限。常见的几种需要处理大量数据的应用所需要的高性能,则是由SoC上的专用处理单元如GPU、NPU、视频编解码单元、图像处理单元、加密解密单元等来提供。


然而对于主要面向笔记本平台、桌面平台、服务器平台的x86来说,只要频率提高到4.8 GHz左右就能获得同样的性能——而这些平台的功耗要求并不算严格,即便是只有15W的低压笔记本平台,通过睿频技术也足以允许1~2个核心运行到4 GHz以上,那么就变成了另一道选择题:到底是用200%的晶体管来实现150%的单线程性能?还是保持单线程没有变化,用200%的晶体管来实现200%的多线程性能?


不同于苹果,x86的用户,下有大量成本敏感的低端用户,他们对CPU的性能要求是够用就行,不会接受过于高昂的CPU售价;上有大量的企业级用户,各种各样的应用和算法对CPU性能的要求多种多样,无法用有限的专用单元来满足,只能由CPU来提供——如果企业没有GPU开发能力,或者需要的算法在高性能但相对不灵活的GPU上效率很低的话。


对于这些企业应用来说,同等规模的晶体管多实现几个核心,不见得比架构宽但核心少的CPU差。上面Anandtech的测试中,15W的4800U的Cinebench成绩,单线程即便频率比M1高了近30%性能还落后20%,但凭着8核心+SMT,已经超过了四大核+四小核的M1。即便在苹果相当占优的Geekbench中,部分散热好的机型也能获得超过M1的多线程成绩。


CISC的困境

即便x86厂商不在乎成本,想做一个类似的超宽架构旗舰来和M1对标,那就要面对CISC指令集的一个缺陷了:变长指令造成的解码性能限制。


采用x86指令集的PC属于CISC(Complex Instruction Set Computer,复杂指令集计算机),上世纪70年代末业界提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)的概念并为一众高性能服务器厂商所实现,如IBM的POWER、DEC的Alpha、Sun的SPARC等。RISC的理念是CISC中,20%的常用指令占了80%的比例,因此只需要保留这20%的简单指令即可。和CISC相比,RISC没有内存操作数,指令定长,早期的RISC指令数量少。因此RISC CPU的解码、执行电路实现简单,指令执行速度快可以工作在更高频率。但RISC也有其缺点,例如CISC中的某些指令在RISC中需要使用多条指令实现来实现相同的功能,定长指令浪费内存空间,对内存带宽压力更大等。


此后的时间内,CISC和RISC之争就没真正平息过。90年代中期Intel推出了P6架构的奔腾Pro,内部做了一个把CISC的x86指令转换、分拆为类似RISC的内部μOPs(Micro Operations,微操作),对简单的指令使用硬件电路直接解码,对常用的复杂指令使用复杂解码器解码,对不常用复杂的指令使用微码序列器进行分解(题外话:微码序列器是现代x86 CPU可以采用微码修复硬件bug的根基)。P6之后的x86凭着这个机制实现了和RISC相近的性能,也是进入新世纪后x86打垮一众RISC服务器的基础。此外,随着半导体工艺提升,CPU频率突破3 GHz后因为功耗问题频率提升困难,RISC也不得不加入更多的新指令来提升性能,CISC和RISC的差异也越来越少。


但即便到了今天,x86的变长指令一直是实现高性能解码器的噩梦:解码器需要解析完一条指令得知本条指令长度后,才能计算出下一条指令的起始地址;在此之前,CPU无法知道下一条指令从哪里开始,对连续的指令序列无法分拆后并行解码。虽然程序中会有类似跳转(JMP)、调用(CALL)这样的分支指令,其操作数是某条指令的起始地址,另一个解码器可以从该地址开始解码,实现对指令序列进行并行解码。但毕竟程序中这样的指令密度有限,即便CPU中有更多的解码器对更多分支的指令并行解码,往往某个解码器解码后的μOPs在多个时钟周期内也不会进入执行序列。今天的x86 CPU,AMD已经是四个复杂解码器,Intel是一个复杂解码器+四个简单解码器,已经有点过于富裕,这也是两家的CPU都支持SMT(Simultaneous MultiThreading,同时多线程,也就是Intel的Hyper Thrading,超线程),并且开启SMT后多线程性能往往有相当幅度提升的一个重要原因,因为对两个线程并行解码后可以进入执行序列的μOPs数量更多。


而RISC的定长指令,指令抓取单元直接对指令序列按长度分割后,交由不同的解码器并行解码即可。因此我们可以看到两个超宽的RISC架构:IBM最新的POWER可以配置为支持SMT8,以及虽然不支持SMT但IPC惊人的苹果A系列。在CISC的x86上则没有出现过类似的超宽架构。


最后总结:

M1的CPU,是在:1、成本不敏感;2、使用最先进的半导体工艺;3、目标用户群体需求有限的前提下,获得的当前最优秀的功耗-性能平衡点。

而没有这些前提的x86,则是面对复杂得多的应用环境,以多线程性能为目标达到的另一个成本-功耗-整体性能平衡点。


参考

  1. ^Anandtech:The 2020 Mac Mini Unleashed: Putting Apple Silicon M1 To The Test https://www.anandtech.com/print/16252/mac-mini-apple-m1-tested
  2. ^Github:Veedrac/microarchitecturometer https://github.com/Veedrac/microarchitecturometer
  3. ^[PDF]Race to Exascale: Opportunities and Challenges https://www.microarch.org/micro44/files/Micro%20Keynote%20Final%20-%20Avinash%20Sodani.pdf

user avatar   36-ke 网友的相关建议: 
      

深度好文推荐——为什么苹果 M1 芯片会那么快?请看这份最详细易懂的技术指南​​

编者按:苹果今年最大的亮点也许不是手机,而是一块小小的芯片。M1发布会虽然已经过去了一阵子,但围绕着它的讨论依然不见平息。不过,对它的讨论很多都不在点子上,在技术方面解释得既不够深入也不够易懂。在这方面,Erik Engheim在Medium上发表的这篇文章也许是最详细最易懂的技术指南了。

阅读本文,你将了解以下几点:

1)为什么M1会这么快?

2)苹果是不是用了什么独门绝招才做到这一点?

3)英特尔和AMD能不能效仿?

原文标题是:Why Is Apple’s M1 Chip So Fast?

划重点:

  • 700美元的新M1 Mac Mini战胜了4000美元的旧iMac
  • M1不是CPU,而是SoC
  • 苹果采取异构计算策略来提高性能:不是增加内核,而是加入更多的专用芯片
  • CPU与GPU消耗内存之别犹如法国大餐与垃圾食品,苹果的统一内存架构很关键
  • 英特尔和AMD抄不了苹果的作业

在YouTube上,我看到有位Mac用户去年买了一台iMac。它把内存配到了40 GB,花了他大约4000美元。但是,这么一台超贵的iMac,结果却被他用少得可怜的700美元买来的新M1 Mac Mini令人难以置信地给干掉了。

在一次又一次的实测当中,M1 Macs不仅仅只是超过了顶级的Intel Macs,而且还是压倒性的优势。大家一脸的不敢相信,开始问这怎么可能?

如果你是其中之一的话,你算是来对地方了。在本文中,我打算把这个问题拆解成比较容易消化的几个部分,就像苹果对M1所做的一样。具体来说,我认为很多人会有以下一些问题:

  1. 这个M1芯片这么之快的技术原因是什么?
  2. 苹果是不是做出了一些真正具有独创性的技术选择来实现这一目标?
  3. 像英特尔和AMD这样的竞争对手采用相同的技术花招的容易程度如何?

当然,你也可以试着Google一下,但如果你试图了解苹果都干了什么的话,你能找到的除了肤浅的解释以外,就会使一堆技术含量很高的术语,比方说M1用了非常宽泛的指令解码器,庞大的重排序缓冲器(ROB)等。除非你是CPU硬件极客,否则这些东西大多跟没说一样。

为了更好地理解本文,我建议可以先看看我之前的一篇文章:“2020年对于RISC和CISC来说意味着什么?” 在那篇文章里,我解释什么是微处理器(CPU)以及各种重要概念,比方说:

  • 指令集架构(ISA)
  • 流水线
  • 加载/存储架构
  • 微码与微指令

不过,如果你不耐烦的话,我可以简要介绍一下有助于理解我对M1芯片的解释所需要了解的材料。

什么是处理器(CPU)?

一般来说,当谈到英特尔和AMD的芯片时,我们谈论的是指中央处理器(CPU)或微处理器。CPU会从内存中提取指令。然后,一般会按顺序执行每个一条指令。

就最底层而言,CPU是一种有若干叫做寄存器的命名存储单元,以及若干叫做算术逻辑单元(ALU)的计算单元组成的设备。ALU执行加法、减法及其他基本数学运算之类的操作。不过,这些操作指跟CPU寄存器连接。如果要让两个数相加,你得从内存取出这两个数字,然后放进CPU的两个寄存器里面。

以下是RISC CPU(M1也属于这种)执行的一些典型的指令示例。

load r1, 150
load r2, 200
add r1, r2
store r1, 310

这里的r1和r2就是我所说的寄存器。如果数字不在像这样的寄存器内的话,现代RISC CPU是没法进行操作的。比方说,它没法对位于RAM不同位置的两个数字进行相加。相反,它必须把这两个数字放到一个独立的寄存器里面。我们这里所举的那个简单例子干的就是这个。我们从RAM内存位置150处提取出数字,并将其放入CPU的寄存器r1中。然后,我们把地址200的内容放入寄存器r2中。只有这样,数字才可以用add r1,r2指令进行相加。

寄存器的概念很古老了。比方说,在这个旧的机械计算器上,寄存器是用来保存要相加的数字的。收银机(cash register)也许就源于此。寄存器就是登记输入数字的地方。

M1不是CPU!

不过关于M1,了解这一点非常重要:

M1不是CPU,而是由多个芯片组成的整个系统,全部都封装进放一大块硅里面。CPU只是其中一颗芯片。

基本上,M1算是把整个计算机都集成到了一块芯片上面。M1含有一颗CPU,有图形处理单元(GPU),内存,输入和输出控制器,以及构成整台计算机的众多其他功能。这就是所谓的片上系统(SoC)。

今天,如果你买芯片的话(不管是从英特尔还是从AMD那里买),你得到的实际上是封装在一起的多颗微处理器。在过去,计算机的主板上会配置有多颗物理上独立的芯片。

但是,由于今天我们能够往硅晶上面放太多的晶体管了,所以英特尔和AMD等公司开始把多个微处理器集成到一块芯片上。我们把这些芯片叫做CPU内核。一个内核基本上算是一个完全独立的芯片,可以从内存中读取指令并执行计算。

长期以来,就提高性能而言,这一直是问题的实质:就是不断增加更多的通用CPU内核。不过这种做法受到了干扰。在CPU市场里面,有一个玩家开始背道而驰。

苹果没那么神秘的异构计算策略

苹果没有往里面添加更多的通用CPU内核,而是采取了另一种策略:他们开始加入更多的专用芯片来完成一些特殊的任务。这样做的好处是,专用芯片的耗电往往比通用CPU内核少得多,执行特定任务往往又快得多。

其实这不是什么新知识。多年以来来,Nvidia和AMD的图形卡就内置了类似图形处理单元(GPU)之类的专用芯片,它们执行跟图形相关的操作要比通用CPU快得多。

苹果所做的只是朝这个方向做出了更大的转变。M1不仅配置了通用内核和内存,还包含有各种专用芯片:

  • 中央处理器(CPU)——该片上系统的“大脑”。跑操作系统和应用的大部分代码。
  • 图形处理单元(GPU)——处理跟图形相关的任务,比方说可视化应用的用户界面和2D / 3D游戏渲染。
  • 图像处理单元(ISP)——可用于加速图像处理应用完成的常见任务。
  • 数字信号处理器(DSP)——处理CPU所不为的数学密集型功能。包括音乐文件解压缩等。
  • 神经处理单元(NPU)——用于高端智能手机,可加速机器学习(AI)任务。其中包括语音识别和相机处理。
  • 视频编码器/解码器——高能效地处理视频文件和格式转换。
  • Secure Enclave——加密身份验证和安全性。
  • 统一内存——可让CPU、GPU以及其他内核快速交换信息。

这就是为什么很多人用M1 Mac进行图像和视频编辑时看到速度快得飞起的部分原因所在。他们执行的很多任务都可以直接在专用硬件上运行。这样一来,廉价的M1 Mac Mini不费吹灰之力就可以对大型视频文件进行编码,而昂贵的iMac就算让所有的风扇转到飞起也没法跟上前者的原因。

苹果的统一内存架构有何特殊之处?

苹果的“统一内存架构”(UMA)有点费解(我刚开始的时候就搞错了)。

为了解释原因,我们需要退后一步。

长期以来,廉价的计算机系统已经把CPU和GPU集成到同一块芯片(同一块硅片)里面。这种做法的慢是众所周知的。过去所说的“集成显卡”跟 “图形处理慢”基本上是一个意思。

之所以慢,是因为若干的原因:

内存的单独区域要预留给CPU和GPU。如果CPU想要让GPU使用大量数据,它不能够告诉对方说“这是我的部分内存”就了事。不行,CPU必须把数据复制一份到GPU控制的存储区域上。

CPU和GPU对内存的使用期望不一样。不妨用食物做一个愚蠢的类比:CPU希望服务员快点上菜(装数据的碟子),一点点上也没关系。想象有一家豪华的法国餐厅,里面的服务员都是穿旱冰鞋的,所以可以为你提供快速服务。

相反,GPU可以接受上菜(数据)慢。但是你不能一点点地上,要上就得上大菜。它们需要吞噬大量的数据,因为GPU是规模庞大的并行机器,可以并行读取大量数据。不妨想象有一家垃圾食品店,上菜需要花点时间,因为他们要全部备好食物才一起上。

鉴于需求如此的不一样,把CPU和GPU放在同一块物理芯片上显然不是一个好主意。如果只上一点点的法国菜,GPU就只能坐在那里挨饿。其结果是,把强大的GPU放进SoC毫无意义。那一点点数据都不够GPU塞牙缝。

第二个问题是大型GPU会产生大量热量,所以如果跟CPU集成在一起你没法不遇到发热过大的问题。所以,独立显卡看起来往往像下面这样的:有着大型冷却风扇的大怪兽。这种显卡有专用的内存,旨在为贪婪的显卡提供大量数据。


GeForce RTX 3080显卡

这就是为什么这些显卡性能高的原因所在。但是它们有一个致命的弱点:当它们必须从CPU使用的内存里面获取数据时,得通过印刷在主板上的一组铜线,也就是所谓的PCIe总线进行。你试试用一根超级细的吸管喝水看看。水倒是一下子就吸上来了,但是水量不够啊。

苹果的统一内存架构试图把所有这些问题都解决掉,但又避免掉过去那种共享内存的缺点。为了实现这一目标,他们采取了以下一些手段:

  1. 没有专门给CPU或GPU保留的特殊区域。内存同时分配给两种处理器。它们都可以使用同样的内存。不需要数据复制。
  2. 苹果采用的内存既可存储大量数据,又可以快速存储数据。用计算机的术语来说,就是所谓的低延迟和高吞吐量。所以,就不需要将不同类型的内存连接起来了。
  3. 苹果降低了GPU的功耗,因此可以集成功能相对强大的GPU,而又不会导致SoC过热。

有人会说统一内存也不是什么新概念。的确,过去就有不同的系统有个这种玩意儿。但那时候对内存需求的差异可能并没有那么大。其次,Nvidia所谓的统一内存并不是一回事。在Nvidea的世界里,统一内存只是意味着有软件和硬件专门负责在独立的CPU和GPU内存之间来回复制数据。因此,从程序员的角度来看,苹果和Nvidia的统一内存也许是一样的,但是从物理意义上来说并不相同。

当然,这种策略需要有权衡取舍。要想实现这种高带宽的内存(份量大),要求内存要完全集成进来,这意味着客户升级内存的机会被剥夺了。但是,苹果在寻求尽量提高内存与SSD硬盘的通信速度,让它们在本质上相当于旧式内存一样,从而让这个问题最小化。

既然SoC这么智能,英特尔和AMD为什么不抄作业呢?

既然苹果在做的事情这么聪明的话,为什么不是每个人都这么做呢?从某种程度上来说,别人也在抄作业。其他的ARM芯片制造商在专用硬件方面的投入也越来越大。

AMD也开始在自家的某些芯片上部署功能更强大的GPU,并部署加速处理单元(APU,这种处理器基本上算是放在同一块硅片上的CPU内核加GPU内核),可以说是朝着某种形式的SoC迈进。

不过他们做不到这一点。因为一个重要的原因。SoC本质上是整台计算机都集成在一块芯片上。所以这种做法更适合计算机制造商,比方说HP和Dell。不妨让我再用一个愚蠢的类比来澄清:如果你原来的商业模式是制造和销售汽车发动机的话,那制造和销售整车就会是一次不同寻常的飞跃。

相比之下,对于ARM而言,这倒不是问题。戴尔或惠普等计算机制造商完全可以卖ARM的知识产权许可,并购买其他芯片的IP,就可以把它们认为自己的SoC应该具备的特殊硬件添加进来了。然后,他们再把做好的设计交给格罗方德(GlobalFoundries)或台积电(TSMC,现在在给AMD和苹果代工芯片)等半导体代工厂即可。

英特尔和AMD的商业模式遇到了大问题。他们的商业模式是以卖通用CPU为基础的,大家只需要把CPU插入大型PC主板即可。因此,计算机制造商只需要从不同的供应商处购买主板、内存、CPU和显卡,然后将其集成为一个解决方案即可。

但是我们现在正在迅速远离那个世界。在新的SoC的世界里,你不需要组装来自不同供应商的物理组件,而是组装来自其他供应商的IP(知识产权)。你从不同的供应商处购买显卡、CPU、调制解调器、IO控制器以及其他产品的设计,然后用来设计自己的的SoC 。之后再找一家晶圆代工厂生产即可。

但现在你会遇到一个大问题,因为英特尔、AMD或Nvidia都不会把自己的知识产权许可给戴尔或惠普,让他们给自己的机器制造SoC 。

当然,英特尔和AMD完全可以卖整块完工的SoC 。但是这些SoC会包含些什么呢?PC制造商对SoC应该包含的东西可能会有不同的想法。英特尔、AMD、微软和PC制造商之间的想法可能会因为SoC应包含哪种专用芯片而发生冲突,因为这些芯片需要软件的支持。

对于苹果来说,这件事情很简单。因为他们控制了电子产品的全部。比方说,苹果提供了Core ML库给开发者编写机器学习程序。Core ML究竟是在苹果的CPU上面跑还是在Neural Engine上面跑,开发者并不需要关心。



(下)

划重点:

  • CPU提高性能的两种策略:要么跑快点,要么跑多点,但跑快点这条路已经走到尽头
  • 跑多点也有两种策略:增加内核,或者乱序执行(OoO),苹果走的是后面这条路
  • AMD和Intel的乱序执行要比M1逊色
  • 因为体系架构问题,英特尔和AMD没机会赶上苹果的CPU了

任何CPU想要快速运行都要面临的根本挑战


所以说,异构计算是部分原因,而不是唯一的原因。M1上面所谓的快速通用CPU内核Firestorm确实很快。跟过去与英特尔和AMD的内核相比较弱的ARM CPU内核相比,这是一个重大差异。


在对标中,Firestorm击败了大多数的英特尔内核,几乎击败了最快的AMD Ryzen内核。按照传统观点的话,这是不可能的。

在讨论是什么导致Firestorm跑得这么快之前,我们先要了解让CPU跑得快的核心思想是什么。

原则上,你可以结合以下两种策略来实现:

  1. 串行更快地执行更多的指令。
  2. 并行执行大量指令。

上世纪80年代的时候,做到这一点很容易。只需要增加时钟频率,指令就能加快完成。时钟周期是CPU工作的最小时间单位,是计算机执行某项操作的时候。不过这想操作可以是很微小的操作。所以,一条指令可能由多个较小的任务组成,因此可能需要多个时钟周期才能完成。

但是,现在再想提高时钟频率已经几乎不可能了大家嘴里反复絮叨的“摩尔定律的终结”真的来了。

所以,现在其实就剩下并行执行尽可能多的指令这条路了。

多核还是乱序处理器?

这条路也有两种走法。一种是增加更多的CPU内核。从软件开发者的角度来看,这就好比增加线程。每个CPU内核就像一个硬件的线程。如果你还不知道什么是线程,可以把它看作是执行任务的过程。一个CPU有两个内核的话,就可以同时执行两项单独的任务:两个线程。这些任务可以描述为两个独立的程序存储在内存当中,或者实际上也可以是同一程序执行两次。每个线程都需要做一些记录,比方说本线程目前在一系列程序指令当中的位置。每个线程都可以存储临时结果,而且应该是独立存放的。

原则上,只有一个内核的处理器也能跑多个线程。不过,在这种情况下,它只是把一个线程暂停并保存当前进程,再切换到另一线程运行。稍后再切换回来。这种做法并不能带来太多的性能增强,只是在线程可能经常要停下来等待用户输入,或者网络连接速度慢要等数据的时候使用。这些可以称之为为软件线程。硬件线程意味着拥有真正的额外物理硬件,比方说额外的内核,可以加快处理速度。

问题在于,开发者得会写代码来利用这种优势。其中的部分任务(比方说服务器软件)是很容易写的。你可以想象分别处理每一位连接用户。这些任务互相之间独立性太强了,以至于拥有大量内核是服务器(尤其是基于云的服务)的绝佳选择。


这就是为什么你会看到类似Ampere之类的ARM CPU制造商会制造像Altra Max这样的CPU的原因,这款处理器有着疯狂的128核!这种芯片是专门为云计算准备的。你不需要疯狂的单核性能,因为在云端,关键是在尽可能节能的情况下让尽可能多的线程来处理尽可能多的并发用户。

相比之下,苹果则处在另一端。苹果制造的是单用户设备。多线程并不是优势。他们的设备主要用来玩游戏,视频编辑,做开发等。他们希望台式机有漂亮的响应性好的图形和动画。

桌面软件一般不会用很多的内核。比方说,8核也许能让计算机游戏受益,但是像128核之类的东西完全就是浪费。相反,你需要更少但更强大的内核。

乱序执行的机制

有趣的来了,乱序执行。乱序执行可以并行执行更多指令但又不用做成多线程的方式。开发者不必专门写软件就能利用这种能力。从开发者的角度来看,似乎每个内核都跑得更快了。

要想了解其工作原理,你需要先了解一些有关内存的知识。请求访问内存特定位置的数据是很慢的。但是,获取1字节数据的时延跟获取128字节的数据的时延却没有分别。数据要通过我们所谓的数据总线来发送。你可以把数据总线看作是内存与数据通过的CPU不同部分之间的一条通道或管道,数据就是通过这条管道来传输的。实际上,当然那只是一些导电的铜线。如果数据总线足够宽的话,就可以同时存取多个字节。

所以,CPU一次会执行一大块的指令。但是是按照次序一条接一条地执行的。现代的微处理器则会做所谓的乱序操作(OoO )。

这意味着他们能够对指令缓冲区进行快速分析,弄清楚哪些指令依赖于哪个指令。不妨看看下面这个简单的例子:

01: mul r1, r2, r3 // r1 ← r2 × r3
02: add r4, r1, 5 // r4 ← r1 + 5
03: add r6, r2, 1 // r6 ← r2 + 1

乘法往往一般都很慢。可以这么说,乘法需要多个时钟周期来执行。第二条指令只能等,因为它的计算要取决于知道了放进r1寄存器的结果才行。

但是,第3行的第3条指令就不需要依赖于之前的指令的计算。所以,乱序处理器可以并行计算这条指令。

不过在现实当中我们谈论的是数百条指令。CPU能够找出这些指令之间的所有依赖关系。

它会通过查看每条指令的输入来对其进行分析。指令的输入是否取决于一或多条其他指令的输出?所谓的输入和输出,是指包含有之前计算结果的寄存器。

比方说,add r4,r1、5这条指令要依赖mul r1,r2,r3所输出的r1。我们可以把这些关系链接在一起,形成CPU可以处理的详细图谱。其中节点是指令,而边则是连接它们的寄存器。

CPU可以对这样的节点图谱进行分析,然后确定可以并行执行哪些指令,以及哪些指令中继续执行之前需要在什么地方等待多个相关计算的结果。

很多指令会早早就执行完毕,但我们没法对结果进行官宣。我们不能保证结果;否则的话,我们会以错误的顺序提供结果。在外界看来,它得看起来就像是按照发出的指令顺序执行的。

就像堆栈一样,CPU会从顶部弹出已完成的指令,直到找到未完成的指令。

这个解释还不够完善,但应该能提供一些线索了。基本上就是,你既可以实现程序员必须知道的那种并行性,也可以实现那种CPU假装是一切都是单线程执行的样子。不过,你知道,在幕后,它正在执行乱序的黑魔法。

正是出众的乱序执行能力使得M1的Firestorm内核可以狠狠地踢前作的屁股,扬名立万。实际上,它比英特尔或AMD的任何产品都要强大。可能比主流市场上的任何产品都要强大。

为什么AMD和Intel的乱序执行要比M1逊色?

在对乱序执行(OoO )的解释当中,我跳过了一些重要的细节,这里需要谈一下。否则的话,就没法理解为什么苹果能够在这场游戏当中领先,为什么英特尔和AMD可能没法赶上。

我所说的“scratchpad”实际上就是所谓的“重排序缓冲器(ROB)”,里面并不包含常规的机器代码指令。不是那种CPU从内存获取要执行的东西。这些是CPU指令集体系结构(ISA)里面的指令。就是那种我们称之为x86、ARM、PowerPC等的指令。

但是,在内部,CPU会用程序员看不到的完全不同的指令集。我们称之为微指令(micro-ops或μops )。ROB里面都是这些微指令。

对于CPU施展魔法来让东西并行运行来说,这个地方可以做的事情要实际得多。原因是微指令的范围很广(包含有很多的位),并且可以包含各种元信息。你没法把那种信息添加到ARM或x86的指令里面,而很多的元信息只有在当前执行的上下文之中才有意义。

我们可以这么看,就把它看作是你在写程序的时候。你有一个公共API,这个API需要保持稳定并且所有人都能用。ARM、x86、PowerPC、MIPS就是这样的指令集。而微指令基本上是用来实现公共API的专用API。

此外,对于CPU来说,微指令往往更易用。为什么?因为每一个微指令都只完成一项简单的有限任务。常规的ISA指令可能更复杂,导致会发生很多事情发生,最终会变成成多个微指令。

对于CISC CPU来说,往往别无选择只能用微指令,否则大型复杂的CISC指令会导致流水线和OoO几乎没法实现。

但RISC CPU就有得选。比方说,小一点的ARM CPU根本不用微指令。但这也意味着做不了类似OoO之类的事情。

但是这又有什么关系呢?为什么这个细节对于理解为什么苹果能够压倒AMD和英特尔非常重要呢?

那是因为CPU能跑多快要取决于往ROB装填微指令的速度以及数量。填充得越快,能选择出可以并行执行的指令的机会就越大,而并行执行则意味着性能的提高。

机器代码指令被所谓的指令解码器分解成微指令。如果能够有更多的解码器,我们就可以并行分解更多的指令,填充ROB的速度就可以更快。

在这一点上,苹果的M1跟其他的CPU有很大的差别。英特尔和AMD最大微处理器内核有四个解码器,也就意味着可以并行解码四条指令分解出微指令。

但是苹果却有着疯狂的8个解码器。不仅如此,它的ROB大概比别人大3倍。基本上相当于可容纳三倍规模的指令。其他主流芯片制造商的CPU没有一个有这么多解码器的。

为什么英特尔和AMD没法多加点指令解码器?

这就是RISC复仇的机会。而M1 Firestorm内核采用的是ARM RISC架构,这一事实开始变得重要起来。

你看,对于x86来说,一条指令的长度在1到15个字节之间。而在RISC芯片上,指令的长度是固定的。这种情况下固定长度为什么很重要呢?

因为如果每一条指令的长度都一样的话,把一连串字节分解成指令,并行输入给8个不同的解码器这件事就变得微不足道了。

但是,如果是x86 CPU的话,解码器都不知道下一条指令从哪里开始。它得分析每一条指令才能知道指令的长度。

英特尔和AMD采取的是暴力破解法,也就是在每个可能的起点对指令进行解码。这意味着会有很多猜错的时候,要把错误丢弃掉。这会造成解码器阶段十分复杂,绕来绕去,以至于很难再添加更多的解码器。但是对于苹果来说,相比之下增加更多的解码器根本不算事儿

实际上,添加更多解码器会导致很多的其他问题,以至于对AMD来说,4个解码器基本上就是上限了。

其结果是,在相同的时钟频率下,M1 Firestorm内核能处理的指令数量实际上是AMD和Intel CPU的两倍。

有人则认为,因为CISC指令可转化为更多的微指令,所以密度更大,这样一来,解码一条x86指令就类似于解码两条ARM指令。

只是在现实世界里面,情况并非如此。高度优化的x86代码很少会用复杂的CISC指令。才能够某种程度来说,它已经有点RISC风格了。

但这对英特尔或AMD毫无帮助,因为就算15字节长的指令很少见,造出来的解码器也得处理。而这会导致复杂性,从而阻碍AMD和Intel添加更多的解码器。

可是AMD的Zen3内核还是更快啊,不是吗?

据我所知,最新的AMD CPU内核,也就是所谓的Zen3内核在性能基准测试是要比Firestorm内核快一些。但问题是,这仅仅是因为Zen3内核的时钟频率为5 GHz。而Firestorm内核的时钟频率为3.2 GHz。虽然时钟频率提高了近60%,但Zen3也只是勉强比Firestorm快一点。

那苹果为什么不相应提高时钟频率呢?因为更高的时钟频率会导致芯片发热。但那却是苹果的主要卖点之一。跟英特尔和AMD的产品不同,他们的计算机几乎不需要制冷。

从本质上讲,可以说Firestorm内核确实优于Zen3内核。Zen3只能靠加大电流并变得更热来让自己保持领先。而苹果只是选择不这么做而已。

如果苹果想要提高性能的话,他们只只需要多加些内核就可以了。这样一来,他们既可以降低功耗,又能提供更高性能。

未来

似乎AMD和Intel在两个方面都陷入了困境:

  • 他们没有一个可以轻松从事异构计算和SoC设计的商业模式。
  • 他们传统的x86 CISC指令集反过来又给他们造成困扰,导致难以提高OoO性能。

当然,这并不意味着游戏结束了。他们是可以提高时钟频率,强化散热能力,增加更多内核,扩充CPU缓存等。但这些方面他们也都处于劣势。英特尔的情况最糟,一方面内核似乎已经被Firestorm击败,而且能跟SoC解决方案集成的GPU也很弱。

引入更多内核的问题在于,对于典型的桌面工作负荷来说,内核太多会导致收益递减。当然,大量内核非常适合服务器。

但是在这个领域,像Amazon和Ampere之类的公司正在用128核的怪兽CPU发动攻击。这就像是东线和西线同时开战。

不过对于AMD和Intel来说,幸运的是,苹果并没有直接卖自己的芯片。所以,PC用户只能接受他们提供的任何产品。PC用户可能会投奔曹营,但这会是一个缓慢的过程。用户不会马上离开自己自己投入了大量资金的平台。

但是,那些还没有在任何平台上面烧太多钱的年轻专业人,他们未来可能会慢慢地转向苹果阵营,扩大了后者在高端市场的份额,并因此进一步扩大其在PC市场所占的利润份额


user avatar   entropyxcy 网友的相关建议: 
      

根据目前有的数据来看,其实苹果发布会说的:M1是"World's fastest CPU core"其实是一个保守的猜测。为了论证这一点,在以下内容中我们只讨论单核性能。

先贴数据来源吧:Apple Announces The Apple Silicon M1: Ditching x86 - What to Expect, Based on A14

再贴一个微构架领域比较有代表性的specint2006的综合跑分:

可以看到在这张图中A14的单核性能已经登顶了,即使是新来的Zen3,在不极限超频的情况下我们也可以根据5950X和10900k的性能差距预计它不会比A14强太多。

毕竟M1肯定还是要比A14强的,目前看来M1的CPU大核设计应该和A14相同,但是L2 Cache从8M提升到了12M,M1的单核性能因此会比A14有进一步提升。

所以说,结论是:M1极有可能成为当今世界通用计算串行性能(单核性能)最强的冯诺依曼机。

——————————————————————————————————————

如果大家足够无聊的话可以再仔细比较一下A14大核(Firestorm)和Zen3的微构架。

在此仅抛砖引玉,随便说几个乱序核心的关键参数 (注:A14参数并非苹果官方发布,有些是猜测也有些是benchmark结论,详见引用):

  1. 解码宽度:

A14:6指令每周期 Zen3:4指令每周期(整数)

2. 重排序缓冲区(ROB)长度:

A14: 636微码 Zen3: 256微码

3. 发射宽度

A14: 12发射 Zen3: 14发射

4. 最大读取

A14: 最大每周期3读取 Zen3:最大每周期3读取

5. 最大写入

A14:最大每周期2写入 Zen3:最大每周期2写入

微构架浅显分析结论:

Zen3的14发射看起来很唬人,但是256ROB长度真的是展现了其后劲不足,说明即使有14发射,各个执行单元的利用率也一般。

A14这边虽然少了两发射,但是从解码宽度和ROB长度上才真正看出了其底气,单纯从执行单元利用率的角度上肯定是比Zen3要高的。

最后,尽管纸面上Zen3和A14是非常相近的单核水平,但是比起同频性能,A14把Zen3秒的渣都不剩了。

_____________________________________________________________________________________

今天geekbench的跑分已经出来了,第一批机器应该已经有人收到了。不过Geekbench的分数大家娱乐一下就好了。

可以看到在Zen3不超频的情况下M1是可以秒Zen3构架的。但是毕竟Zen3是桌面处理器,在压缩机和核电站的加持下,极限超频之后肯定还是会比M1强的。

_______________________________________________________________________________________

最后,今天测试结果都出来了,我猜的对不对各位自己看就可以了。(除了R23跑分我承认翻车了,老早就听说Arm向量指令拉跨,但是没想到这么拉跨)

不知道什么时候知乎连支持x86都成政治正确了?无论是M1也好,Zen3,Skylake也罢,那都是别人家的东西。即使是被日常嘲讽的Skylake也依然是接近国产微构架两倍的各方面指标。所以说,目前来讲,别人家的东西我们都要好好学,学好了之后造自己家的。

__________________________________________________________________________________

刚刚拿到机器,MacBook air乞丐版。测试了一下基本上大多数常用软件都没有任何问题,Rosetta的翻译效率也很高。Dota2在Rosetta下900p中低特效可以跑到90fps。Cinebench和specint06现在也出了很多了,就不再多说了。

我这里测一个小众benchmark:coremark(eembc/coremark)。

M1的默认测试结果是12.2s (Apple LLVM Clang,make PORT_DIR=macos)。还算是非常不错的单盒性能了。

目前比较大的问题是还没有能用的jdk。

现已解决,虽然没有stable release,但是beta版本的 JDK已经可用了。而且scala和sbt生态也都没有问题。下面附上我成功编译chisel HDL的截图:


user avatar   ji-zhu-di 网友的相关建议: 
      

当时苹果工程师都没想到这么厉害的,直接打牙膏厂的i9。

连苹果自己的高管都不敢相信M1竟强到如此地步:


M1款的MacBook单核性能优于以往任何Mac,且多核性能也超过了所有 2019 年的 16 英寸 MacBook Pro 机型,包括目前最顶级的Macbook Pro16英寸酷睿 i9 机型

M1 Mac mini 在 Geekbench 测试中,单核 CPU 成绩达到了 1741 分。相比之下,最新的 MacBook Pro 成绩为 1699 分,而新的 MacBook Air 成绩为 1662 分。

在 Geekbench 排行榜中,基于英特尔的 Mac 速度最快的是最新的 27 英寸 iMac,它采用了英特尔酷睿 i9,单核成绩达到了 1251 分。紧随其后的是英特尔酷睿 i7 机型,其成绩为 1249 分。


苹果 M1 MacBook Pro 在 Cinebench 基准测试中获得 7508 分的高分,同级别cpu差不多是intel i9 9880H,但他们都是八核,这个M1是四核(另外四个是低压核,只是保证续航,测试场景就很废不是全功能的八核)

R23单核成绩横向对比图



在单线程跑分中,虽然英特尔 11 代酷睿的最高型号 i7-1185G7 跑分第一,但领先苹果 M1 的幅度很小。当然i7-1185G7跑分第一的成绩是用高功耗的睿频跑的


R23多核成绩横向对比图


在多线程跑分中,苹果M1领先牙膏厂的8线程的 i7-1185G7,但是不敌YES厂的12 线程和 16 线程的处理器。

一直看好这个处理器在Mac上的表现,当时看视频演示用的是a12z,我想a14肯定比这个强不少,没想到开始和Intel的i9和Nvidia的GTX1050做比较了,对于刚出现的m1来说真的是厉害,能在如此短的时间内实现如此巨大的性能飞跃,好像一夜之间成为巨人,作为不太懂跑分以及两者处理器之间有什么巨大差别的人来说,我觉得大家也大可不必纠结x86功耗高肯定厉害的传统印象,只需要知道最后两者能完成同样任务(或者玩一样的游戏,PS同样照片或者处理同样4k电影,其它同样软件运行等等),谁效率高,功耗还低,谁就是王者。

而苹果最恐怖的就是苹果能效比。 m1只是没有榨取苹果的最高性能 有一层功耗封印挡着。以后imac 深知mac pro系列揭开这层封印 来个m pro系列芯片把功耗放在现在x86正常水平 100w以上 不知道会有多可怕的性能。但最快应该也是两三年后了 初期m1最重要的任务就是 全新生态的适配 让用户和开发者适应新架构的生态 这个转换过程 苹果肯定不会上pro性能的芯片

当前arm公版最强性能的核x1也才刚追上苹果A12的大核水平,跟M1差了两代,但比这个更加恐怖的是苹果的能效核心,这货基本就是a76的性能,a55的功耗。反观arm公版架构那边,多少年没有更新小核了。不管是高通,还是麒麟还是发哥或三星,一出新的soc,小核就是万年不变的a55

M1的跑分之所以这么高 性能这么强,就是因为Apple M1不仅仅是CPU,还有很多加速的硬件电路来高效实现一些特定的功能,仅仅靠CPU是没这个成绩的,毕竟是同一个时代的产物。这个就是软硬一体化的优势,从硬件到系统到软件到编码算法都是自己的,强的不行。这也是未来处理器的发展方向,朝着soc化半定制化发展,传统单核性能和频率提升有限,但通过加入各种专用硬件模块,提高指定应用或算法的性能,看看nvidia的新核弹A100,就是这个道理。

硬件发展到现在,已经从通用硬件转向专用硬件了,再也不是以前那个全功能适应一切的年代了,显卡就是个例子,神经网络又是个例子,用通用CPU能模拟显卡吗?完全能,用通用CPU能模拟神经网络吗?也能,没问题,但是这是跑在通用逻辑处理器上,效率极低,这时候针对各个功能出全方位的硬件,比如专门拉出一大排简单无脑的CUDA、OPENCL优化的单元只用来图形显示和多边形计算,显卡就出来了,再专门拉出来一排,摈弃与非门而使用向量式网络结构(tensor core),神经网络芯片或者所谓的AI芯片就出来了,整理图片、机器学习快百倍,同样的道理苹果完全可以为专业用户在核心里专门设计一个胜任8K解码的定制模块,让软解变成硬解,效率真就直线上升了。


微博大V实测:M1 MacBook Pro视频剪辑速度超10核iMac Pro

结果显示, MacBook Pro 视频剪辑速度超过了 10 核的 iMac Pro,H265 视频剪辑优势十分明显。用苹果自己的 Finalcut Pro X,剪辑 H264 视频,10 核心 iMac Pro 需要 11 分 30 秒, M1 MacBook Pro 为 10 分 20 秒。剪辑 H265 视频,10 核心 iMac Pro 需要 1 分 20 秒, M1 MacBook Pro 为 45 秒。


测评视频地址:


同时GPU性能测试的的GFXBench结果也出来了

M1图形性能击败GTX 1050Ti/RX 560

在Metal API下,无论哪个测试项目(霸王龙、曼哈顿、赛车、阿兹特克等等)M1的帧数成绩都要超过NVIDIA GTX 1050Ti和AMD RX560,幅度普遍在20%以上。尽管苹果在发布会上把M1的8核GPU成为全球最强集显,但很明显大家当时也没指望它真的能比独显还强……



在Aztec Ruins Normal Tier测试中,Radeon RX 560达到146.2 FPS,GeForce GTX 1050 Ti达到159 FPS,M1达到203.6 FPS。整个测试结果类似,M1是全面超越了两款桌面独显的性能。



值得一提的是,GTX 1050 Ti和RX 560是75W台式显卡,而苹果M1官方给出的功耗是10-15W


苹果M1的25款游戏评测 性能表现非常强,不是只能跑分的花瓶,这些游戏在1080P全最高画质下,几乎都跑满30帧,降到中画质能跑50-60帧,魔兽世界超高画质下甚至能稳定60帧。而且这还是rosetta转译的X86游戏的性能,最起码有四分之一的性能损耗,如果是原生编译的性能只会更强。最强核显,当之无愧!

M1除了各项性能强到没朋友之外,能耗比也是强到不讲武德的地步,就算是没风扇的air ,最高负载下温度也比20款16寸的macbook pro要低十度,40度都不到,13寸m1 macbook pro最高负载下十分钟只有33度而且风扇噪音远小于16寸macbook pro


最后有请我们的英老师出场:

刚才有个朋友问我:英老师,发生甚么事了?

给我发来两张截图,我一看!噢,原来是昨晚有个年轻人,5nm的,说能不能教教我挤牙膏大法。

我说可以,我说你用Arm的死劲不好用,他不服气。

我说小朋友你两个核贵不过我一个核,他说你这也没用,我说我这个有用。

这是化劲,传统摩尔定律是讲化劲的,四两八千金,200多核的英国大伟达都干不过我一个核。

他说要和我试试,我说可以。

我一说,他啪就站起来了,很快啊

然后上来就是一个低功耗一个长续航一个高性能

我全部防出去了,防出去以后自然是传统CPU宜点到为止,7nm的i9放在了厨子前,没打他。我笑一下,准备收回。

因为这时间按传统CPU的点到为止他已经输了,如果这i9发力,一拳就把他M1打没了,放在库克前没有打他。我收拳的时间不打了,他突然袭击“不涨价”来打我脸。

我大E了啊,没有闪。

两分多钟以后,当时流眼泪了,捂着眼我就停停。

我说小Apple你不讲摩尔定律。他忙说对不起,不懂规矩啊,他说他是乱打的。

他可不是乱打的,CPU GPU训练有素,后来他说在手机上练过十几年芯片,看来是有备而来。

这个Apple,不讲武德。来,骗!来,偷袭!我这个14nm+++的老同志。

这好吗?这不好。我劝这个Apple,耗子尾汁,好好反思,以后不要再犯这样的聪明,小聪明。

IT界要以核为贵,要讲摩尔定律,不要搞窝里斗!

谢谢朋友们!


马氏语录转载自:

作者:Heath

链接:2020 年 11 月 11 日苹果发布 ARM 架构 MacBook 系列产品,有哪些亮点和不足?


user avatar   davidtsang 网友的相关建议: 
      

它不单独卖,m1 mac也不便宜,不关心。


user avatar   xing-fu-qu-shui-dao-an-cun 网友的相关建议: 
      
  1. 鸿蒙系统无论技术还是商业上都还没有完全展开,说“怎么样”为时尚早
  2. 如果只是作为手机系统的鸿蒙并不重要。MOV用不用鸿蒙不重要,重要的是PC,空调,冰箱,微波炉,汽车,高铁,无人机,手表,插线板,窗帘这些东西用不用鸿蒙
  3. 我不是硬件厂商,想用也用不了。手机版本短期内没啥可关注的,兴趣不大
  4. 前景广阔应该说目标是广阔的,能实现到啥程度目前还看不出来。目前的宣传肯定没有透露出全部想法,甚至一部分是误导性的信息。根据已知信息来看,布局非常宏大,但是当前拿出的东西很大程度上是基于现有系统拼凑的过渡产品。即使商业上能站稳脚跟,技术上至少需要一次类似于Windows2000的WindowNT/消费者Windows/WindowCE -> 统一到WindowNT的蜕变才能最终成型



  

相关话题

  作为从业者,你对初入芯片行业的新人有哪些建议? 
  要是在中国创建一所类似于MTK这样的半导体公司,需要怎么做?比如资金大概要多少还有就是技术壁垒多不多? 
  天玑8100相较于天玑1000+有多大提升? 
  有没有行业人能指导我一下IC设计软件开发怎么入门及提高呢? 
  俄罗斯为什么不担心芯片制造和光刻机的问题? 
  Ic本科,从事本专业的话应偏重哪方面? 
  如何看待英特尔宣布暂停7nm、5nm制程相关技术研发,寻求台积电代加工? 
  如何看待天玑 9000 终端 Q1 上市,下一代 OPPO Find X 旗舰首发,值得期待吗? 
  28nm的芯片是什么水平? 
  苹果 iOS 14 系统更新有哪些隐藏功能? 

前一个讨论
大学四级听力耳机有必要买吗?
下一个讨论
Airpods Pro 对施工噪音有明显降噪作用吗?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利