A package for the k-means algorithm on DPU.
Reason this release was yanked:
botched release action
Project description
dpu_kmeans README
| CI | status |
|---|---|
| pip builds | |
| docs |
A project built with pybind11 and scikit-build, running the KMeans algorithm on in-memory processors with the UPMEM SDK.
Documentation
Installation
- install the UPMEM SDK
pip install dpu-kmeans
If you get an error about RANLIB, create a symlink to llvm-ar:
sudo ln -s /usr/bin/llvm-ar /usr/bin/llvm-ranlib
Usage
import numpy as np
from dpu_kmeans import KMeans
X = np.array([[1, 2], [1, 4], [1, 0],[10, 2], [10, 4], [10, 0]])
kmeans = KMeans(2)
kmeans.fit(X)
print(kmeans.cluster_centers_)
Output:
[[ 0.99986267 2. ]
[10.00013733 2. ]]
Development
- clone this repository
- install the UPMEM SDK
- install the build requirements in
pyproject.toml cd dpu_kmeanspre-commit installpip install -e .
OR
- clone this repository
- open folder in VS Code
- start in Dev Container
to debug: python setup.py develop --build-type Debug
Note: The dev container is for development only and uses the PIM simulator.
Templating
To use this project as a base for your own UPMEM DIMM project:
- click on "Use this template" in github
- create a new project from this one
- turn off Conda and Wheels workflows in github actions as they are not operational right now
- change folder
src/dpu_kmeanstosrc/<your_project> - change project name (all instances of
dpu_kmeans) and info in:- README.md
- setup.cfg
- setup.py (
cmake_install_dir="src/dpu_kmeans") - .gitignore (
src/dpu_kmeans/dpu_program/) - CMakeLists.txt (
project(dpu_kmeans VERSION ${VERSION})) - conda.recipe/meta.yaml (optional)
- docs (optional)
- if you intend to use github actions to auto-publish to pypi, update the project secrets as described in Publishing package distribution releases using GitHub Actions CI/CD workflows
Testing
OR
- clone this repository
- open folder in VS Code
- start in Dev Container
nox
Note: nox, python setup.py and pip might fail if you executed pip install -e . previously, delete the _skbuild cache or run python setup.py clean to solve.
Test call
import dpu_kmeans
dpu_kmeans.test_checksum()
Expected return: 0x007f8000
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
File details
Details for the file dpu_kmeans-0.2.1.tar.gz.
File metadata
- Download URL: dpu_kmeans-0.2.1.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25b2f7ef2d01d56600d24858d0f46b24dc5b2ddc7f1a28f6b3e78cc1acc874b5
|
|
| MD5 |
2ff83a0800b591e47f9bc04e7dce5290
|
|
| BLAKE2b-256 |
3e030f69086cf2d4f50d227e716b15e5d5b672c68b9b1cc3d3e5be0f2c47d384
|