Marco-Christiani / zigrad

A deep learning framework built on an autograd engine with high level abstractions and low level control.
https://marco-christiani.github.io/zigrad/
GNU Lesser General Public License v3.0
2 stars 0 forks source link
autograd deep-learning machine-learning neural-network tensor zig

license last-commit repo-language-count repo-top-language


Zigrad

A deep learning framework built on an autograd engine with high level abstractions and low level control.

Fast

2.5x+ speedup over a compiled PyTorch* model on Apple Silicon on early benchmarks. Expect similar performance gains across more architectures and platforms** as MKL/CUDA support improves and Zigrad's ML graph compiler is operational.

Description of the image

*Tensorflow excluded for scaling purposes. **A hermetic, reproducible benchmarking pipeline built on Bazel will allow testing across more platforms (in progress).

Built for specialized optimization

Zigrad's design enables deep control and customization

But wait, there's more..

*Not yet merged

Features

Trace the Computation Graph

An example of tracing the computation graph generated by a fully connected neural network for MNIST.

We did not have to use Zigrad's modules to write this network at all, as Zigrad is backed by a capable autograd engine. Even when using the autograd backend to dynamically construct the same neural network Zigrad can still trace the graph and render it.

Note: Since the graph is generated from the autograd information, we set the labels for the nodes by naming the tensors for the sake of the diagram.

Roadmap

A lot is planned and hoping for support from the Zig community so we can accomplish some of the more ambitious goals.

Known Issues and Limitations