Oxide-Enzyme: Integrating LLVM's Static Automatic Differentiation Plugin

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/rust

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • oxide-enzyme

    Enzyme integration into Rust. Experimental, do not use.

  • Rust-CUDA

    Ecosystem of libraries and tools for writing and executing fast GPU code fully in Rust.

    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

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • Enzyme

    High-performance automatic differentiation of LLVM. (by EnzymeAD)

    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 :)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts