首页 科技快讯 为什么 M2 比看起来更先进?

为什么 M2 比看起来更先进?

来源:晰数塔互联网快讯 时间:2024年01月22日 21:19

这篇文章介绍了苹果公司的最新芯片M2 的性能和特点,分析了它在架构、设计、内存、安全性等方面的优势和创新,认为它是苹果在芯片领域的一次重大突破,将为苹果的产品带来更好的性能和体验。文章还预测了 M2 芯片的未来发展方向和可能的挑战。

原文链接:https://eclecticlight.co/2024/01/15/why-the-m2-is-more-advanced-that-it-seemed/

作者 | hoakley      译者 | 明明如月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

在 2022 年 6 月的苹果全球开发者大会(WWDC)上,苹果公司推出了 M2 芯片。尽管在功能层面并未有太大的创新,但自那以后的 18 个月里,大家普遍还是认为 M2 是一次重大改进,其性能相比前一代 M1 芯片有显著提升。本文将延续上周关于人工智能技术发展的讨论,深入探究苹果的芯片技术。本文将主要分析芯片内 CPU 核心支持的指令集。

在对比芯片性能时,我们通常会关注基准测试,这些测试就像是对运动员进行短距离赛跑测试,能够展示芯片处理当前任务的速度。然而,如果你打算使用 Mac 电脑一年以上,你还应该更关注芯片在未来处理任务的能力,这就像是评估一名田径运动员是否有潜力成为多项全能运动员,不仅仅是短跑能力,还要关注其综合实力。

自 M1 芯片以来的指令集变化

在 CPU 领域,其性能主要取决于所执行的指令类型。虽然目前可能对 Mac 芯片是否能高效进行光线追踪不太感兴趣,但在未来几年中,M3 芯片中 GPU 的硬件加速光线追踪功能可能会带来显著的变化。苹果在其芯片中融入了众多自研硬件组件,如 GPU、神经网络引擎和备受赞誉的矩阵协处理器 AMX。尽管如此,CPU 核心的功能依然是许多任务处理的关键。这些功能由 Arm 设计并授权给苹果,反映在其指令集架构(ISA)中,而目前这一架构的手册页数已超过 5,000 页。

值得注意的是,Arm 以版本的形式定义了其 ISA。M1 芯片采用 ARMv8.5-A 核心,而 M2 和 M3 则使用 ARMv8.6-A。Arm 在ARMv8.6-A 的变化列表中详细解释了这些版本间的主要区别,这些变化始于 2019 年:

通用矩阵乘法(适用于人工智能等)

bfloat16 数据类型和算术指令(适用于人工智能等)

更精细的虚拟化陷阱(适用于虚拟化)

针对等待事件的虚拟化陷阱优化(适用于虚拟化)

高精度时间(1 GHz,通用)

扩展的指针认证(增强安全性)。

其中,对 bfloat16 数据类型和通用矩阵乘法的支持对用户影响可能最为显著。

虽然基于 M1 芯片的 Mac 直到 2020 年 11 月才发布,也就是在 ARMv8.6-A 发布一年之后,但由于设计和开发需要较长的前置时间,2019 年 bfloat16 首次出现时,M1 芯片已无法及时纳入这些变化。

bfloat16 详解

正如我先前讨论过的,本文关注的是三种不同的浮点数格式。每种格式都包括一个符号位(表示正负)、决定精度的小数部分长度和决定数值范围的指数部分。在 bfloat16 引入之前,人工智能和其他某些领域主要使用的两种格式是:

float32(单精度),范围约为 +/- 1.2 x 10^-38 到 3.4 x 10^38,占用 32 位。

float16(半精度),范围约为 +/- 6.1 x 10^-5 到 65,504,占用 16 位。

在不要求双精度(float64)的人工智能等领域,float32 是非常常见的选择。

bfloat16 提供了一种介于 float32 和 float16 之间的新选择,其数值范围与 float32 相同,大约是 +/- 1.2 x 10^-38 到 3.4 x 10^38,但它只占用一半的存储空间,精度稍低。bfloat16 设计上便于与 float32 进行快速转换,因为它们的符号位和指数部分是相同的,只需要根据转换方向对小数部分(有效数字或尾数)进行扩展或截断即可。而 float32 与 float16 之间的转换更为复杂,最关键的是,由于 float16 的数值范围远小于 float32,超出范围的数值会失去精确度。这意味着任何超过 65,504 的浮点数对于许多应用而言都是一个重大限制。

一种存储空间只有 float32 一半的数字格式,在存储大量数据以及提升操作性能方面都至关重要。这些操作通常通过“单指令多数据”(SIMD)技术来加速,其中一个寄存器被填充以两个或更多的值,然后核心并行执行这些指令。在 M 系列芯片的 CPU 核心中,这一过程通常是通过使用 128 位的寄存器来实现的,其中可以存放四个 float32 值或者八个 bfloat16 值。正如 Arm 处理器的测试所示,在涉及数千甚至数万次运算的任务中,使用寄存器装载双倍数量的值几乎可以将处理吞吐量提升一倍。

因此,在可以接受一定精度降低的应用场景中,bfloat16 格式既提供了与 float32 相同的数值范围,又实现了与 float32 简单且快速的相互转换,同时只占用一半的存储空间。同时,在 SIMD 执行方面,bfloat16 还能提供高达两倍的性能提升。因此,bfloat16 在存储和性能之间提供了一种有效的平衡选择,特别是在需要处理大量数据的场景中。

我的 Mac 并非专为 AI 模型训练而设计

Google 的 AI 研究团队在文章中提到 bfloat16 是“高性能的关键”,他们主要是针对从事 AI 模型开发的专业人士,而非普通用户。这篇文章于 2019 年 8 月发布,距离苹果推出 M1 芯片还不到一年。这也可能是 M1 硬件最初未支持 bfloat16 的原因,这一特性是由 Arm 在 ARMv8.6-A 架构中引入的。

Arm 和苹果都意识到了在设备上进行 AI 训练的重要性,而非完全依赖云端计算。这一点已经在 Arm 的 Hellen Norman 的深入论述中得到体现,并与苹果的策略相契合。

我们可以想象,如果在 macOS 上执行一些本地训练任务,将能显著提升其常用功能的性能。例如,由于 macOS 拼写检查功能经常无法正确区分 their、there 和 they’re 等单词,许多用户选择关闭此功能。如果拼写建议能根据语法、用法和上下文生成,将会更加完善。尽管这方面已有所改进,例如,Sonoma 更新使得自动完成功能更加智能,但仍有进一步提升的空间。这至少部分取决于 Mac 能否通过设备内训练学习用户的写作风格。

在文章开头,我提到这不仅仅是关于当前任务的性能,更是关于我们的应用程序和 macOS 未来将要承担的任务的潜力,其中一些任务可能涉及到目前由专业系统处理的训练。

要注意的是,苹果芯片中不仅仅是 CPU 核心支持 AI 功能。根据不同任务的具体需求,macOS 可能会调用 GPU、苹果的专用神经引擎,或者是其高效的 AMX 协处理器。考虑到 M1 中的这些硬件与 CPU 核心在大致相同的时间内设计和开发,它们最初不支持 bfloat16 也是可能的。不过,苹果最近在 Sonoma 更新中向 Metal Performance Shaders 引入了这种数字格式。

如何确认你的 Mac 是否支持 bfloat16

如要确认你的 Mac 芯片是否支持 bfloat16,你可以采用一个简单的方法进行检查。首先,打开终端并运行以下命令:

sysctl -A > ~/Documents/sysctloutput.text

这个命令会将系统配置的所有输出信息保存到你选择的路径下的新文本文件中。

接下来,查看该文件中是否包含以下行:

hw.optional.arm.FEAT_BF16: 1

如果该文件中出现这一行并且数值为 1,则意味着你的 Mac CPU 核心支持 bfloat16。如果数值为 0,则不支持。苹果官方文档中提供了 hw.optional.arm 功能的详细解释,你可以在苹果官方文档中找到相关信息。

如果你的硬件不支持 bfloat16 并不意味着这是一个极其严重的问题,也不表示你的 M1 Mac 已经过时。然而,这确实意味着在未来几年,随着越来越多、越来越依赖人工智能的功能的推出,这些功能在 M1 Mac 上的运行速度可能会相对较慢。相比之下,虽然英特尔的 Mac 在 CPU 性能上可能更出色并拥有多核心,但它们却无法提供专门针对人工智能的硬件支持。

发布于:江苏

相关推荐

M2两年增加22%,为什么房价股价一路下跌?
MacBook Air更轻薄、iPad更像电脑,但M2芯片不够“王炸”| 焦点分析
苹果才刚推出M1 Ultra,我们已经预测好了M2 Extreme
苹果最强处理器M2 Ultra问世,两年过渡实现对英特尔的替代
苹果 M2 Ultra 芯片 Geekbench 6 Metal 跑分出炉,仅比 RTX 4080 慢 10%
M2 MacBook 值得冲吗?
苹果将推出新款iPad Pro:搭载M2芯片,直接上架官网
先进封装,台积电的另一把尖刀
消息称搭载M2 Max和M2 Ultra芯片的高端Mac正在测试中
关于苹果M2芯片,你不知道的事

网址: 为什么 M2 比看起来更先进? http://www.xishuta.com/newsview106064.html

所属分类:行业热点

推荐科技快讯