MLX

MLX#

MLX 是一個類似 NumPy 的陣列框架,為 Apple 晶片上的高效且靈活的機器學習而設計,由 Apple 機器學習研究團隊提供。

Python API 幾乎完全遵循 NumPy,只有少數例外。MLX 也提供功能完整的 C++ API,同樣緊密遵循 Python API。

MLX 與 NumPy 之間的主要差異為:

  • 可組合的函式轉換:MLX 提供可組合的函式轉換,用於自動微分、自動向量化,以及計算圖最佳化。

  • 惰性計算:MLX 中的計算採惰性方式,陣列只在需要時才會實體化。

  • 多裝置:運算可以在任何支援的裝置(CPU、GPU 等)上執行。

MLX 的設計靈感來自 PyTorchJaxArrayFire 等框架。與這些框架相比,MLX 的一項重要差異是*統一記憶體模型*。MLX 的陣列位於共享記憶體中,對 MLX 陣列的運算可以在任何支援的裝置類型上執行,而無需進行資料複製。目前支援的裝置類型為 CPU 與 GPU。

C++ API 參考