Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,20 @@ simple but general framework for embedding, called _Minimum-Distortion
Embedding_ (MDE). With MDE, it is easy to recreate well-known embeddings and to
create new ones, tailored to your particular application.

**Fast on CPU, faster on GPU.** PyMDE is competitive in runtime with more specialized embedding methods. With a
GPU, embedding computation can be even faster.
**Fast on CPU, faster on GPU.** PyMDE is competitive in runtime with more
specialized embedding methods. With a GPU, embedding computation can be even
faster.

**Fast preprocessing, implemented in Rust.** PyMDE preprocesses original data matrices
**Fast preprocessing in Rust.** PyMDE preprocesses original data matrices
using fast routines implemented in Rust:

* an exact k-nearest neighbor algorithm accelerated with Rayon and BLAS, which in simple
benchmarks is faster than `faiss` and `pynndescent`;
* an approximate k-nearest neighbor algorithm implementing nndescent, with
Rayon for parallelism and SIMD kernels; in simple benchmarks this is
competitive with pynndescent, but without the overhead of Numba's JIT;
* an exact k-nearest neighbor algorithm accelerated with Rayon and BLAS; on
modern machines
with multiple cores, this implementation is faster than `faiss` and competitive with
popular approximate k-nearest neighbor algorithms;
* a breadth-first search for computing all-pairs shortest paths.

## Overview
Expand Down
9 changes: 9 additions & 0 deletions docs_src/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,17 @@ UMAP, and can scale to datasets with millions of items. With a GPU, it can be
even faster. PyMDE scales well with the embedding dimension, meaning that you
can easily embed into dimensions such as 50, 100, or 250.

PyMDE preprocesses original data matrices and constructs neighborhood graphs
and shortest path distances using fast routines implemented in Rust, taking
advantage of SIMD, BLAS, and basic parallelsim.

PyMDE draws graphs orders of magnitude faster than NetworkX.

**PyMDE is easy to install.** PyMDE does not depend on Numba, thanks to its
Rust-based preprocessing. This means that it does not inherit the limitations
that Numba imposes on NumPy and Python versions. Find wheels for all modern
Python versions and all architectures on PyPI.

.. toctree::
:hidden:
:maxdepth: 2
Expand Down
Loading