Skip to content

oderoi/ellipse

Repository files navigation


A PyTorch like AI Engine from scratch in C programming language

Ellipse is a lightweight, minimalistic high-performance numerical computing library for deep learning written in pure C, designed to bring essential neural network functionalities to low-resource environments. Inspired by projects like minigrad, tinygrad, XLA and PyTorch, Ellipse aims to provide a foundational toolkit for machine learning enthusiasts, embedded developers, and researchers who want to experiment with deep learning concepts in an efficient, resource-conscious manner.

Key Features

  • Lightweight Design: Focused on simplicity, ellipse provides core deep learning operations without heavy dependencies.
  • Pure C Implementation: Built entirely in C, ellipse is designed to be portable and optimized for low-level manipulation.
  • Gradient Calculation: Includes basic automatic differentiation to support backpropagation for training models.
  • Flexible Tensor Operations: Supports fundamental tensor operations required for deep learning.
  • Modular Architecture: Easy to extend or modify, allowing you to explore and experiment with new layers, optimizers, and more.

Who is This For?

Ellipse is perfect for those looking to:

  • Understand the inner workings of a deep learning library from the ground up.
  • Run simple neural networks in resource-limited environments.
  • Prototype and test custom ML operations in C.

Getting Started

This repository includes setup instructions, usage examples, and documentation to help you dive into developing with ellipse. Explore the source code to understand how core deep learning concepts like tensor operations and automatic differentiation are implemented.

Contributing

Ellipse is open for contributions! Whether you’re fixing bugs, adding new features, or experimenting with optimizations, we welcome your input.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published