# mlx-vis: GPU-Native Dimensionality Reduction on Apple Silicon

arXiv: https://arxiv.org/abs/2603.04035 · HTML: https://mlsanity.com/paper/2603.04035/

## Key facts

- No citing papers in the map yet (data through 14 Oct 2026).
- Builds on 8 of its 18 references that are in the map.
- First posted on arXiv 4 Mar 2026.

## Builds on (most cited first, 8 of 8)

- [Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms](https://mlsanity.com/paper/1708.07747/) (2017)
- [UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction](https://mlsanity.com/paper/1802.03426/) (2018)
- [Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMAP, and PaCMAP for Data Visualization](https://mlsanity.com/paper/2012.04456/) (2020)
- [Efficient Algorithms for t-distributed Stochastic Neighborhood Embedding](https://mlsanity.com/paper/1712.09005/) (2017)
- [TriMap: Large-scale Dimensionality Reduction Using Triplets](https://mlsanity.com/paper/1910.00204/) (2019)
- [From t-SNE to UMAP with contrastive learning](https://mlsanity.com/paper/2206.01816/) (2022)
- [Dimension Reduction with Locally Adjusted Graphs](https://mlsanity.com/paper/2412.15426/) (2024)
- [DREAMS: Preserving both Local and Global Structure in Dimensionality Reduction](https://mlsanity.com/paper/2508.13747/) (2025)

## Abstract (arXiv)

Dimensionality reduction is a foundational tool for visualizing high-dimensional data, yet its reference implementations span a fragmented stack of CPU-bound Python packages that leaves the Metal GPU on Apple Silicon entirely unused. We present mlx-vis, a library that reimplements seven widely used dimensionality reduction methods and k-nearest neighbor graph construction in pure MLX, with every stage -- from PCA preprocessing through embedding optimization to a circle-splatting renderer -- executing on GPU. On Fashion-MNIST 70K, all seven methods embed in 2.1--4.6 s on an M3 Ultra, achieving 3--13x speedups over CPU baselines while reducing the entire dependency stack to MLX and NumPy. The same pipeline scales to ten million points on a single workstation. Code at https://github.com/hanxiao/mlx-vis
