Skip to main content

A C++ neural network engine with Python bindings, designed for educational performance optimization.

Project description

Abovo

Abovo is a C++ neural network engine with Python bindings, designed as an educational library to demonstrate systems-level performance optimizations.

Built from scratch with modular layers, customizable training, and optimized execution, Abovo gives students and performance-focused developers a hands-on learning platform for matrix computation, backpropagation, and acceleration techniques.

Note that this is meant to be used as an educational platform and has not been tested to be used as a production-grade package.

Features

  • C++ backend with pybind11 Python bindings
  • Modular dense layers with activation and loss support
  • Optimizations: ARM NEON SIMD, OpenMP multithreading, cache blocking
  • Quantization-aware training (FP32 → INT8)
  • Pythonic API via Sequential, DenseLayer, Matrix
  • Profiling-ready (Valgrind, cache misses, instruction counts)
  • And much more to come...

Installation

pip install abovo

Requires a C++17-compatible compiler and OpenMP support.

Example (XOR)

from abovo import Sequential, DenseLayer, Matrix, ActivationType, LossType

X = Matrix(4, 2)
X[0, 0] = 0; X[0, 1] = 0
X[1, 0] = 0; X[1, 1] = 1
X[2, 0] = 1; X[2, 1] = 0
X[3, 0] = 1; X[3, 1] = 1

y = Matrix(4, 1)
y[0, 0] = 0
y[1, 0] = 1
y[2, 0] = 1
y[3, 0] = 0

model = Sequential()
model.add(DenseLayer(2, 4, ActivationType.RELU))
model.add(DenseLayer(4, 1, ActivationType.SIGMOID))
model.train(X, y, epochs=100, batch_size=1, learning_rate=0.1, loss_type=LossType.MSE)

Why “ab ovo”?

"From the egg" — the library was built from the ground up, with performance and pedagogy in mind.

Documentation

Full documentation is available at https://nn-ab-ovo.readthedocs.io/.

License

MIT

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

abovo-0.1.1.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

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

abovo-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (136.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file abovo-0.1.1.tar.gz.

File metadata

  • Download URL: abovo-0.1.1.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for abovo-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ede345616195dc4564c494c8e74549524e2a648039d3704189a059df283c673b
MD5 d3161b5d15f050fe755740e106a54c33
BLAKE2b-256 8aff46cf6840ccb475a2fe4bdfe09c008f84975cf6b8ff290b3a875dc7f1a5b9

See more details on using hashes here.

File details

Details for the file abovo-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for abovo-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9ce05e4a40a8828af85780b09f460340ff7e64d467f9450bd8d9033476e556c
MD5 5f0fc86fea51c9fbf270a00577f03a20
BLAKE2b-256 0896a2889a96177b47baf5805a03c2f22ebab78baf3502b460350ea134b08704

See more details on using hashes here.

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