Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I have not made it more public since there are still a few missing bits. For example we can currently only work on functions which are ffi safe (although those can call not ffi-safe code). My current time schedule is therefore analyzing an open issue, adding a few examples and then "publishing" this one for people to get familiar with Enzyme, while working on a new implementation which should not be limited by ffi anymore and should also be able to support things like https://github.com/Rust-GPU/Rust-CUDA
To give a little bit of context here, this is a Rust frontend for Enzyme itself, which is a leading Auto-Diff tool. The key advantage is that unlike most of the existing tools it does generate gradient functions after applying a lot of (LLVM's) optimizations, which leads to very efficient gradients (benchmarks here: https://enzyme.mit.edu/). Working on LLVM level also allows it to work across language barriers. Finally it is also the first AD library to support generic AMD-HIP / NVIDIA-CUDA code and works also with OpenMP and MPI. https://c.wsmoses.com/papers/EnzymeGPU.pdf I have intentions to add rayon support, since that is more likely to be used on our Rust side :)