Skip to main content

Open embedding devkit — same API across NPU / GPU / CPU silicon (Cix, NVIDIA, AMD, Intel, Apple, Rockchip, MediaTek)

Project description

📍 Moved to GitLab

The canonical, authoritative home of this project is GitLab — always:

👉 https://gitlab.com/ncz-os/mnemos-embedkit

This GitHub repository is a frozen, read-only mirror. All development, issues, and releases happen on GitLab. Please open issues and merge requests there. The full history of this stub is preserved on GitLab.


mnemos-embedkit

Open embedding devkit. Same API, every silicon.

embedkit lets you embed text once and run it on whatever hardware your box has — Cix Sky1 NPU, Apple Silicon Metal/MLX, NVIDIA CUDA/TensorRT, AMD ROCm/XDNA, Intel iGPU/NPU via OpenVINO, MediaTek APU, Rockchip RKNN, or just the CPU. The kit detects what's installed and picks the fastest adapter at runtime. No vendor preference.

Quick start

import embedkit

eng = embedkit.Engine.auto()              # picks the fastest adapter on this host
vec = eng.embed("Hello world")            # -> List[float]
vecs = eng.embed_batch(["a", "b", "c"])   # -> List[List[float]]

eng.info()
# {"adapter": "cix-npu", "model": "bge-small-zh-v1.5_256.cix",
#  "embed_dim": 512, "max_tokens": 256, "throughput_baseline": 55.0}

Explicit adapter pick:

eng = embedkit.Engine(adapter="cix-npu",      model="bge-small-zh-v1.5")
eng = embedkit.Engine(adapter="nvidia-cuda",  model="nomic-embed-text-v1.5")
eng = embedkit.Engine(adapter="amd-rocm",     model="bge-large-en-v1.5")
eng = embedkit.Engine(adapter="apple-mlx",    model="mxbai-embed-large-v1")
eng = embedkit.Engine(adapter="cpu-llamacpp", model="bge-small-zh-v1.5")

What the kit is

A pure-Python adapter layer over vendor-specific embedding runtimes, plus a uniform Engine.embed* API and a canonical bench harness. The kit does not bundle drivers or kernel modules. It detects what the host OS already provides and binds to it:

Host has Kit picks via
cix-noe-umd 2.0.2 + libnoe (NCZ Magnetar / cixtech apt) npu-cix adapter
onnxruntime-gpu (CUDA driver from Linux distro) nvidia-cuda adapter
tensorrt python (NVIDIA tar/apt) nvidia-trt adapter
onnxruntime-rocm (AMD ROCm dkms) amd-rocm adapter
onnxruntime-vitisai (XDNA driver) amd-xdna adapter
openvino (Intel CPU/iGPU/NPU) intel-igpu / intel-npu adapter
mlx (Apple Silicon, macOS only) apple-mlx adapter
llama-cpp-python with Metal cpu-llamacpp adapter (auto-detects Metal at runtime)
llama-cpp-python with -DGGML_VULKAN=1 gpu-vulkan adapter
rknn-toolkit2 (Rockchip RK3588 / RK3576) rockchip-rknn adapter
mtk-genio-apu (MediaTek Genio) mediatek-apu adapter
nothing else cpu-llamacpp (CPU baseline, ships GGUF)

Install

# Pick the form-factor bundle that matches your host:
pip install embedkit[all-cpu]                 # baseline, CPU only
pip install embedkit[all-x86-cuda]            # CPU + NVIDIA CUDA
pip install embedkit[all-x86-rocm]            # CPU + AMD ROCm + XDNA
pip install embedkit[all-x86-intel]           # CPU + Intel iGPU + NPU via OpenVINO
pip install embedkit[all-arm-cix]             # CPU + Cix NPU + Mali Vulkan
pip install embedkit[all-arm-rockchip]        # CPU + Rockchip RKNN + Mali Vulkan
pip install embedkit[all-apple]               # CPU + Apple MLX + Metal
pip install embedkit[all]                     # everything

The kit pulls vendor python bindings from PyPI. Vendor drivers are managed by your OS package manager (cix-noe-umd via apt, nvidia-driver via ubuntu-drivers, rocm-dkms via amdgpu-install, intel-npu-driver via apt, etc.).

Reference bench

The canonical multi-platform bench is in benches/. Run on your host:

embedkit-bench --corpus benches/corpora/mnemos-8038.json --engines auto

See benches/results.md for the cross-platform numbers we have today (Cix Sky1 NPU, Apple Silicon Metal, NVIDIA CUDA, x86 + ARM CPU, Pi 5, Pi 4).

Reference implementation consumer

ncz-os/mnemos (the canonical MNEMOS memory layer) is the reference embedkit consumer. The plan is to migrate MNEMOS's embedding helper to call embedkit.Engine(...) directly. See docs/mnemos-integration.md.

License

Apache-2.0.

Status

Bootstrap. Design + cross-platform bench data exist. Adapter implementations are queued (Codex handoff prompt at docs/CODEX-ADAPTER-HANDOFF.md).

See docs/DESIGN.md for the full architecture.

Build infrastructure & partners

Continuous integration and package distribution for this project are generously supported by our open-source infrastructure partners:

  • GitLab — canonical source hosting and CI pipelines (format / lint / test gates), via the GitLab for Open Source program.
  • Buildkite — CI/CD orchestration with hosted macOS and Linux agents, and our APT package registry host (packages.buildkite.com/ncz-os/ncz), via the Buildkite Open Source program.

Thank you to both for backing open-source software.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mnemos_embedkit-0.1.0a1.tar.gz (42.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mnemos_embedkit-0.1.0a1-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file mnemos_embedkit-0.1.0a1.tar.gz.

File metadata

  • Download URL: mnemos_embedkit-0.1.0a1.tar.gz
  • Upload date:
  • Size: 42.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mnemos_embedkit-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 1dee84a1bf8f66130b29d71313366b322063b2f2235432f5e5adee33089be476
MD5 436ae6c3aac6394b64c1fb1ae782dfe6
BLAKE2b-256 75d07ff2aaf95049a2f4374cd1e5b73214e2fee240817d41c73247c5e9b8e8db

See more details on using hashes here.

Provenance

The following attestation bundles were made for mnemos_embedkit-0.1.0a1.tar.gz:

Publisher: publish.yml on ncz-os/mnemos-embedkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mnemos_embedkit-0.1.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for mnemos_embedkit-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 1a16e738f830577789b6589f1cf5c5cb60db6d7161b5347478a7cf2ce0c2f684
MD5 fb483e8952f0a645df8c45121d763dd4
BLAKE2b-256 e84121e8a86857b26d4e706ea3ac1f214220c02a489bf01e1959100bdb095076

See more details on using hashes here.

Provenance

The following attestation bundles were made for mnemos_embedkit-0.1.0a1-py3-none-any.whl:

Publisher: publish.yml on ncz-os/mnemos-embedkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page