https://github.com/rbitr/mileena
Automatic differentiation experiments in C
https://github.com/rbitr/mileena
Last synced: about 1 month ago
JSON representation
Automatic differentiation experiments in C
- Host: GitHub
- URL: https://github.com/rbitr/mileena
- Owner: rbitr
- License: mit
- Created: 2023-02-24T19:49:03.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-04-06T13:21:55.000Z (about 2 years ago)
- Last Synced: 2025-02-14T13:45:59.014Z (3 months ago)
- Language: C
- Size: 69.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mileena
Automatic differentiation experiments in CStill very basic as I get the different parts figured out. Please get in touch if this looks interesting to you. (I'm Andrew Marble)
The goal is jax in C with no significant dependencies (probably BLAS). I have a roadmap in my head, though right now I'm just setting it up and thinking about how I'll do it. Basic parts are the jax / autodiff style tracing and pullback framework, linear algebra, and the vector-jacobian products.
`mileena.c` is a POC for tracing function execition the way autograd (https://github.com/HIPS/autograd) does
`symbolic.c` does basic symbolic differentation, without handling edge cases (see tests for example)
it compiles with clang with default arguments and I think should work anywhere
`ex2.c` trains a linear binary classifier. See `/data` for the data. Compile with
```
clang ex2.c -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Headers/ -framework Accelerate -o ex2
```but some of the paths may need updating.
`include/mil_structures.h` is work on the matrix data structures and linear algebra
`tests/matrix_test.c` is tests for`the data structures.`blas/layers2.ipynb` is a python example of a first simple AD program to be ported to C
more to come...