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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dee84a1bf8f66130b29d71313366b322063b2f2235432f5e5adee33089be476
|
|
| MD5 |
436ae6c3aac6394b64c1fb1ae782dfe6
|
|
| BLAKE2b-256 |
75d07ff2aaf95049a2f4374cd1e5b73214e2fee240817d41c73247c5e9b8e8db
|
Provenance
The following attestation bundles were made for mnemos_embedkit-0.1.0a1.tar.gz:
Publisher:
publish.yml on ncz-os/mnemos-embedkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mnemos_embedkit-0.1.0a1.tar.gz -
Subject digest:
1dee84a1bf8f66130b29d71313366b322063b2f2235432f5e5adee33089be476 - Sigstore transparency entry: 2131828166
- Sigstore integration time:
-
Permalink:
ncz-os/mnemos-embedkit@291aa0d6aa2bd4ea141e5fed7083dc67df5c85a5 -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/ncz-os
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@291aa0d6aa2bd4ea141e5fed7083dc67df5c85a5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mnemos_embedkit-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: mnemos_embedkit-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a16e738f830577789b6589f1cf5c5cb60db6d7161b5347478a7cf2ce0c2f684
|
|
| MD5 |
fb483e8952f0a645df8c45121d763dd4
|
|
| BLAKE2b-256 |
e84121e8a86857b26d4e706ea3ac1f214220c02a489bf01e1959100bdb095076
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mnemos_embedkit-0.1.0a1-py3-none-any.whl -
Subject digest:
1a16e738f830577789b6589f1cf5c5cb60db6d7161b5347478a7cf2ce0c2f684 - Sigstore transparency entry: 2131828234
- Sigstore integration time:
-
Permalink:
ncz-os/mnemos-embedkit@291aa0d6aa2bd4ea141e5fed7083dc67df5c85a5 -
Branch / Tag:
refs/tags/v0.1.0a1 - Owner: https://github.com/ncz-os
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@291aa0d6aa2bd4ea141e5fed7083dc67df5c85a5 -
Trigger Event:
release
-
Statement type: