苹果自研 M1 芯片性能强大,却不支持 Docker ?

风格不统一 提交于 2020-11-30 12:08:08

整理 | 郑丽媛
译者|弯月
头图 | CSDN下载自东方IC

不久前,苹果的“返场”发布会“ One More Thing ”隆重揭晓了其自研 5nm M1 芯片以及三款搭载此芯片的新 Mac 产品,此举意味着苹果正式开启了从英特尔架构到 ARM 架构的过渡。其中令人印象深刻的是,苹果宣称,M1 芯片是“世界最快的处理器”。

苹果这一句“豪言壮语”,果不其然引起了许多人对这款芯片进行测评。国外知名硬件评测网站 AnandTech 于 17 日表示已拿到搭载 M1 芯片的产品之一:Mac mini 2020 版,并发布了对 M1 芯片的详细测评,其结果也证实了苹果似乎并没有夸大其词。

性能优越的 M1 芯片

在这里插入图片描述

苹果的 Firestorm 核在运行单线程负载时的时钟频率为 3.2GHz,相比 A14 芯片的 3GHz 频率,提高了 6.66% ,而且只要散热上还有空间,在运行全核心负载的时候也可以达到该时钟频率。除了 4 个 3.2GHz 性能核心以外, 2064MHz 还有 4 个 Thunder 效率核心,也比 A14 上的 1823MHz 高出很多。

除了 4 个高性能的 Firestorm 核心之外,M1 还包括 4 个 Icestorm 核心,旨在降低闲置功率并提高电池供电的效率。4 个性能内核和 4 个效率内核可以同时激活,尽管所有核心的性能吞吐量并不相同, M1 还是相当于 8 核 SoC 。

  • 与 A14 芯片的内存差异

除了在 CPU 和 GPU 上的核心数量不同外,M1 相比 A14 ,还有一个主要的性能提升因素:M1 运行在 128 位总线上,而不是移动设备 64 位总线上。8x16 位内存通道加上 LPDDR4X-4266 内存,意味着 M1 的内存带宽峰值可以达到 68.25GB/s。
在这里插入图片描述

在内存延迟测试中,可以看到 M1 的延迟比 A14 低很多,在 128MB 完全随机测试中 A14 延迟为 102ns ,而 M1 的延迟为 96ns 。

在这里插入图片描述

在内存带宽方面,M1 也出色得令人惊讶:单个 Firestorm 核心就能达到最高 58GB/s 的内存读取、33~36GB/s 的内存写入速度,内存复制都能达到 60~62GB/s ,其波动范围取决于使用的是标量指令还是向量指令。

这意味着,单个 Firestorm 就能占据所有内存带宽,但也正因如此,多个核心同时访问内存会由于拥堵而降低整体的有效带宽:当所有核心全部加入时,速度降低为 46GB/s 。不过这种内存的提升已经足以加大 M1 与 A14 的性能差距,并提高苹果与 x86 现有厂商的竞争力。

  • CPU :单线程和多线程性能大幅提升

AnandTech 采用了 Cinebench 和 Geekbench 来测试 Mac Mini 的 CPU 性能。

Cinebench R23 下 M1 单线程性能跑分数据:

在这里插入图片描述

通过数据显示,M1 单线程性能仅输给了 Zen3 和 Tiger Lake 架构的 CPU ,并且差距不大,甚至可与市场上最佳性能的 x86 CPU 比肩而立,大大超越了以往苹果产品中所使用的英特尔芯片。

同时,可以看到 M1 在 x86 模式下运行 Rosetta 2 时,其性能数据都超过了以往的 Mac 产品。

Cinebench R23 下 M1 多线程性能跑分数据:

在这里插入图片描述

在多线程测试数据中,M1 击败了以往 Mac 的同类型低功耗 CPU。

Geekbench 5 下 M1 单线程性能跑分数据:

在这里插入图片描述

M1 在 Geekbench 5 的单线程测试中,再次表现出优异的性能,跑分数据位列第一。即使在 x86 兼容模式下仍可以与上一代高端 CPU 的顶级单线程性能相媲美,并且大幅超过了 Mac mini 和 Macbook 之前的版本。

Geekbench 5 下 M1 多线程性能跑分数据:

在这里插入图片描述

多线程性能取决于设计的核心数与功耗效率。M1 击败了 2017 年发布的 15 英寸 Macbook Pro (配备了 4 核 8 线程的英特尔 i7-7820HQ ),甚至是其两倍。

  • GPU 性能:集成王者

AnandTech 在 GPU 性能测试首先采用了评测笔记本电脑的常规基准 GFXBench 5.0 ,通过这个机会,比较基于 M1 的 Mac Mini 与 Mac 生态系统内外其他的 CPU/GPU 组合。

Normal 1080p 下 Aztec Ruins 测试场景中 GPU 性能对比:

在这里插入图片描述

High 1440p 下 Aztec Ruins 测试场景中 GPU 性能对比:

在这里插入图片描述

总体而言,M1 的 GPU 性能非常强大。无论是 Normal 还是 High 模式下,M1 的 GPU 性能都远远领先其他集成 GPU ,甚至还超过了独立 GPU Radeon RX 560X 。与 2018 年英特尔芯片的 Mac Mini 相比更是有天壤之别,相比之下,M1 的 GPU 性能提高了 6 倍以上。

另外,AnandTech 还在 Rosetta 上运行了性能测试的 x86 版本,GFXBench Aztec Ruins 测试显示,原生二进制文件和二进制转译版本的 GPU 性能几乎完全相同。

然后,AnandTech 还采用了 Futuremark 开发的 3DMark Ice Storm Unlimited 测试场景对 M1 的 GPU 性能进行测试。

3DMark Ice Storm Unlimited 测试场景下 GPU 性能对比:

在这里插入图片描述

通过数据显示,搭载 M1 的 Mac Mini 性能恰好足以打败配备 GTX 1650 。虽然这种测试场景并不常见,但也足以彰显 M1 的强大。

此外,AnandTech 还采用了非常规的性能测试 BaseMark GPU 。

Medium 模式下 GPU 性能对比:

在这里插入图片描述

High 模式下 GPU 性能对比:

在这里插入图片描述

通过这项测试,可以看到 Mac Mini 2020 又一次超越了 2018 年英特尔芯片的 Mac Mini ,而且其性能比 2017 年配备了 Radeon Pro 560 的 MacBook Pro 至少快 50% 。虽然新款 MacBook Pro 性能更好是自然的,但这是一个集成 GPU ,整个芯片的功耗比 MacBook Pro 的 CPU 都要低,更不用说 MacBook Pro上的独立 GPU 了。

最后,AnandTech 还测试了运行《古墓丽影:崛起》游戏时的 GPU 性能差异。该游戏于 2016 年发布,而且发行了 Mac 版本,并内置了性能测试,所以能够在游戏场景中比较 M1 与其他 Windows 笔记本电脑的性能差异。但要注意,这是一款 x86 游戏,尚未移植到 ARM上,因此游戏的 CPU 端通过 Rosetta 运行。

Value 模式下 GPU 性能对比:

在这里插入图片描述

在 768p Value 的模式下,Mac Mini 提供了超过 60fps 的速度,再次大幅领先于 2018 年搭载了英特尔芯片的 Mac Mini 以及该系列的所有其他集成 GPU ,并且与搭载 Radeon 560X 的 Acer Nitro 5 2019 相差无几。

Enthusiast 模式下 GPU 性能对比:

在这里插入图片描述

在 1920×1080 的 Enthusiast 模式下,基于 M1 的 Mac Mini 的帧数不到 40fps ,虽然比 Ryzen + 560X 系统高出 20% 以上,但可能归因于 Rosetta 和通用 API 的低效率,要远落后于 GTX 1650 。不过 Mac Mini 在 1080p 分辨率下就能达到率足以正常游戏的 39.6 帧,而且只需降低一点画质或分辨率就可以回到 60 帧以上,对于完全是在集成 GPU 上运行的结果来说,这已经足够强大了。
在这里插入图片描述

这两种工作负载幕后的工作方式有很大不同。Aztec 是一种合成测试,在屏幕外运行,尽可能收集无干扰情况下的 GPU 测试结果,达到了最高 GPU 功耗( 10 瓦),但几乎没有触及 CPU 核心(以及显示控制器等其他元素)。相反,《古墓丽影:崛起》是真实的游戏工作负载,整个 SoC 都运转了起来,GPU 功耗徘徊在 7 瓦左右,CPU 功耗的浮动很大,但峰值仅高了一点。而无论使用哪种基准,最终结果都是相同的:M1 SoC 以超级本级别的功耗提供了所有这些性能。

总体来看,这些测评都体现出了 M1 芯片的卓越,不仅内存带宽优于 A14 芯片,CPU 单线程和多线程性能都很优秀,M1 的集成 GPU 也没有辜负苹果在高性能 GPU 方面的声誉,不仅领先于其他集成 GPU ,还可以与低端独立 GPU 相媲美。

搭载如此一款性能优越的芯片,苹果此次的新 Mac 产品吸引了不少开发者,但也因此,部分有特定软件需求的开发者选择了退而远之,是怎么回事呢?

Rosetta 2 转译“需要时间”

虽然这款 M1 芯片性能足够强大,但别忘了,这并不是单纯地换一个芯片这么简单。换芯的背后意味着架构的变换,而架构的变换就足以让许多原本深度依赖其生态系统的开发者受到沉重打击。

苹果虽为了顺利实现架构过渡,提供了 Rosetta 2 转译器,可以将英特尔处理器编写的指令“翻译”为 M1 芯片可以理解的命令,但这只限于大部分没有涉及到处理器特性的应用程序,无法与操作系统或硬件有直接交互的软件兼容。

此外,微软在上周表示,在新 Mac 中首次启动如 Word、Excel、PowerPoint、Outlook、OneNote 和 OneDrive 这些 Mac 应用时,利用 Rosetta 2 转译的同时,这些应用还会在Dock栏中跳动约 20 秒。

对此,苹果开发者文档承认 Rosetta 2 转译会使运行速度变慢,并指出 Rosetta 2 转译“需要时间”:

当一个可执行文件中包含英特尔指令,macOS 会自动启动 Rosetta 开始转译。转译完成后,系统会启动转译后的可执行文件来代替原文件。但是转译过程需要时间,因此用户可能有时会觉得转译后的应用程序启动或运行速度比较慢。

搭载 M1 芯片的 Mac 目前无法运行 Docker

运行速度变慢或许还可以忍受,但 Docker 无法在搭载 M1 芯片的新 Mac 上运行这点真实地劝退了很多开发者。

曾在 7 月就有开发者反馈 Docker 无法在搭载 Apple Silicon 的设备上启动。尽管彼时他的设备搭载的并不是 M1 芯片而是 A12X 芯片,但就目前来看,搭载 M1 芯片的 Mac 的确无法运行 Docker 。

在这里插入图片描述
当时,一位就职于 Docker 的工作人员 Stephen Turner 在这条反馈下回应:我们正在与苹果紧密合作。但由于新芯片还没有支持虚拟化,因此可以预料到这种情况(实际上我们对此还无能为力)。

根据 11 日发布会介绍,苹果似乎已经改善了这项问题:macOS 具有虚拟化功能, M1 芯片也可以支持虚拟化。但遗憾的是,目前看来这项支持尚未移植至 Docker。

Docker Desktop 负责人 Ben De St Paer-Gotch 近日在他的博文中对此回应:“尽管苹果发布了 Rosetta 2 来帮助将应用程序转移到新M1芯片上,但这对 Docker Desktop 的使用并没有帮助。”

他表示,在 Docker Desktop 的表面下,实际运行的是一个虚拟机,因此为了在新 Mac 上实现这个目标,Docker Desktop 需要移至苹果新的管理程序框架上,还需要重制所有管道以提供 Docker Desktop 核心体验。

此外,Docker Desktop 的更新还需要配合其他软件对苹果新架构的适配:Go 作为 Docker Desktop 的后端语言,Electron 来实现 Docker Dashboard 以查看桌面内容。因此,Docker 在努力适配搭载 M1 芯片的新 Mac 时,也在密切关注这些软件的适配进度。

参考链接:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!