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

# XOR input
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.

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.0.tar.gz (21.1 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.0-cp312-cp312-macosx_11_0_arm64.whl (135.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for abovo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 793606808e89a594082a33778113f795bc805274ff02549f7f56f450123ad031
MD5 12d6b25dab9cecb6b5b46c065e6eb193
BLAKE2b-256 510fc084e7f096e91bbf6fbedbe247806d04d9db4061e6373d3d5b1ec00f07e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for abovo-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffeeb77aeab9e1e32fb45abe09d6583ee2e4bacf9f641709a63d7980705b4ff1
MD5 b2226d743cf26a05a57ec0925610f963
BLAKE2b-256 69e31838bb29b232ccf649d43a9c425ba82c66b7e81a27d8b3af30edf1f560f0

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