Enoki: structured vectorization and differentiation on modern processor architectures

Is there anything like that for Rust?

Enoki is a C++ template library that enables automatic transformations of numerical code, for instance to create a "wide" vectorized variant of an algorithm that runs on the CPU or GPU, or to compute gradients via transparent forward/reverse-mode automatic differentation.

If not, wouldn't it make sense to work on something like that? In their Mitsuba 2: A Retargetable Forward and Inverse Renderer paper ...

http://rgl.epfl.ch/publications/NimierDavidVicini2019Mitsuba2

... they even mention Rust:

Mitsuba 2 performs nontrivial transformations of complete programs that would generally require custom compiler infrastructure or tools for source code synthesis (in particular, our requirements far exceed the capabilities of “generics” or “macros” available in languages such as Ada, Rust, and .NET). Even within C++, the specifics of our design have only become possible due to extensions in the recent 2017 standard revision. For this reason, we briefly review relevant features, and how they are used by our system.

Anyway, I thought I mention this here, maybe it inspires somebody to come up with something similar for/in Rust ...

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.