Accelerate

Accelerate 框架利用其矢量处理能力在 CPU 上提供高性能、高能效的计算。它会执行经过优化的大规模数学计算和图像计算,协助你创建能利用机器学习、数据压缩、信号处理等技术的 App。

MacBook Pro 屏幕上显示了 Accelerate 框架

机器学习

Accelerate 框架的 BNNS 库是一个函数集合,你可以使用这些函数来构建用于训练和推理的神经网络。该库可以在 iOS、macOS、Apple tvOS 和 watchOS 平台支持的所有 CPU 上提供为实现高性能和低能耗而优化的例程。BNNS 包含一组丰富的层类型、损失函数、激活函数以及支持子例程,用于机器学习。

进一步了解 BNNS

图像处理

vImage 是一个高性能的图像处理框架。它包含用于图像处理 (卷积、几何变换、直方图运算、形态变换和 alpha 合成) 的函数,以及用于格式转换和其他运算的效用函数。

vImage 使用 CPU 的矢量处理器来优化图像处理。如果矢量处理器不可用,则 vImage 会使用次优的可选方案。借助此框架,你可以享受矢量处理器带来的种种好处,而无需编写矢量化代码。

进一步了解 vImage

数字信号处理

vDSP 框架包含一组高度优化的函数,用于数字信号处理和大型阵列上的通用算术运算。数字信号处理函数的示例包括傅里叶变换和双二次滤波运算。算术函数包括乘加和乘减函数,例如求和、平均值和最大值。

进一步了解 vDSP

矢量和矩阵计算

借助 vForce,你可以对矢量执行算术和超越函数。由于 vForce 运算是矢量化函数,因此,与对相同的矢量循环执行相同的运算相比,vForce 运算的速度和能效高得多。

Simd 库提供了用于小矢量和小矩阵计算的类型和函数:其中类型包括整数和浮点矢量以及矩阵;而函数则提供基本的算术运算、元素级数学运算以及几何和线性代数运算。

Simd 支持最多包含 16 个元素 (对于单精度值) 或 8 个元素 (对于双精度值) 的矢量,以及最多包含 4 x 4 个元素的矩阵。

进一步了解 vForce

线性代数

Accelerate 框架提供了 BLAS 和 LAPACK 库,用于对密集矢量和矩阵执行线性代数运算。Accelerate 的 BLAS 和 LAPACK 实现会抽象化 CPU 的处理能力,因此,为它们编写的代码将执行运行时可用的处理器所适用的指令。这意味着 BLAS 和 LAPACK 为实现高性能和低能耗都进行了优化。

BLAS 包含线性代数原语,包括矢量-矢量、矩阵-矢量和矩阵-矩阵运算。另一方面,LAPACK 支持特征值和奇异值问题、矩阵分解以及线性方程组和线性最小二乘法的求解。

进一步了解 BLAS

无损压缩

AppleArchive 提供了快速压缩,包括文件属性,例如所有权、权限、标志、时间、扩展属性和纠错。AppleArchive 提供了以下功能:

  • 使用所有内核的多线程处理具备出色的能效,且能更快地生成结果
  • 能够传输文件及其属性,并使用 Apple 文件系统 (APFS) 功能 (如果可用),例如文件系统压缩、完整克隆和稀疏文件
  • 灵活的编码格式,因此你可以将归档用于纠错、摘要、清单和外部数据存储等
  • 对内存中归档处理、流式访问、随机访问以及连续归档和提取的 API 支持

进一步了解 AppleArchive

进一步了解 Compression

Spatial

Spatial 是一个轻量型 3D 数学库,提供适用于 3D 基元的简单 API。它包含 3D 点、大小和矩形图元,以及仿射和投影变换。它的许多功能与 Core Graphics 中的 2D 几何支持类似,不过是三维的。由于 Spatial 基于 simd 构建,因此它可以提供高性能的 3D 运算。

进一步了解 Spatial

稀疏求解器

使用 Accelerate 框架中的稀疏求解器库,你可以对具有稀疏系数矩阵 (即矩阵中的大多数条目为零) 的方程组执行线性代数运算。

科学和技术领域的许多问题都需要对大型联立方程组进行求解。如果这些方程是线性的,它们通常显示为矩阵方程 Ax = b (即使这些方程是非线性的,问题的求解也通常是一个线性近似序列)。

进一步了解稀疏求解器

定积分

求积分提供有限或无限区间内函数定积分的近似值。

求积分是一个历史术语,用于确定曲线下的面积。这通常是通过如下方式实现的:将面积分解成可以轻松计算出其面积的更小形状 (例如矩形),然后对这些更小的面积进行求和,以获得近似结果。

在现代术语中,此过程被称为定积分。Accelerate 框架的求积分功能可以在区间内的一系列点上对函数进行求值,以此提供有限或无限区间内函数定积分的近似值。

进一步了解求积分