Skip to main content

MLX:专为苹果芯片设计的新机器学习框架

鱼雪

苹果的人工智能团队发布了MLX——专为苹果芯片设计的新机器学习框架。

MLX 是一个类似于 NumPy 的数组框架,专为在苹果芯片上实现高效、灵活的机器学习而设计,由苹果机器学习研究部门为您带来。

除少数例外情况外,其 Python API 与 NumPy 非常相似。MLX 还有一个功能齐全的 C++ API,与 Python API 非常相似。

MLX 与 NumPy 的主要区别在于:

  • 可组合函数变换:MLX 具有可组合的函数转换,用于自动微分、自动矢量化和计算图优化。

  • 懒计算:MLX 中的计算是懒惰的。只有在需要时才将数组实体化。

  • 多设备:操作可在任何支持的设备(CPU、GPU......)上运行

MLX 的设计灵感来自 PyTorch、Jax 和 ArrayFire 等框架。 这些框架与 MLX 的一个显著区别是采用了统一的内存模型。 Apple Silicon芯片的硬件内存结构就使用的是统一内存,即显存和内存是同一块硬件, 这样就避免了硬件之间的数据交换。比如使用CUDA进行计算,数据流是这样的,首先收据加载到CPU的内存中, 而后,数据从CPU内存中移动到显卡设备的显存中,计算完成之后,数据重新从显卡的显存中移动会CPU的内存中, 完成整个计算过程。这个由于显卡只处理计算,作为一个设备只能被动调度。 MLX 中的数组位于共享内存中。 对 MLX 阵列的操作可以在任何支持的设备类型上执行,而无需执行数据拷贝。 目前支持的设备类型有 CPU 和 GPU。

参考链接: