SNNL

Static README snapshot; an interactive deployment can be added later.

SNNL

**SNNL** is a rewrite of the earlier `BeeDNN` codebase into a cleaner, more modular layout. The goal is to preserve the useful parts of the original project and its broader ambitions while moving toward a structure that is easier to navigate, extend, and target with code generation.

Current Direction

- `src/matrix/`

- `src/layers/`

- `src/data/`

- `src/loss/`

- `src/codegen/`

Inherited Scope From BeeDNN

The rewrite is meant to carry forward the same overall content:

Current Layout

Building

The rewrite now ships with CMake and builds a compiled `snnl` library.

cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failure

Available targets:

Distributed Training Hooks

Generated `C`, `CppEigen`, and `WebGPU` runtimes now expose tensor synchronization helpers for trainable weights:

The lightweight distributed helper headers live under `src/distributed/` and the coordinator examples live under `samples/`.

Factory API

The rewrite now exposes singleton registries for both training components and layers:

Each factory supports:

Built-in implementations are registered from `loadAllImpl()` in the corresponding `.cpp` file.

Layer / Codegen Status

Status

This repository is still a rewrite, not a feature-complete drop-in replacement for `BeeDNN`. The current port keeps the new structure, restores a broader amount of the old project’s substance, and leaves the remaining gaps tracked in [`todo.md`](todo.md).