jatinchowdhury18/RTNeural

Use Armadillo as backend

AlessandroProverbioFX opened this issue · 3 comments

Hi,

First of all, thank you for this amazing work! I would like to suggest another backend, Armadillo (http://arma.sourceforge.net). I remember from some past work I've done that it was extremely fast, even faster than Eigen.

Hi!

Yeah, having an Armadillo backend could be cool... though I would be curious to see some data comparing benchmarks between Armadillo and Eigen. That said, I'm a little bit hesitant to add new backends, since it makes maintenance dev work take a good bit longer.

Anyway, here would be the steps for adding an Armadillo backend:

  • Add Armadillo as a submodule, or add instructions for how the user can install Armadillo on their system
  • Add CMake options and target definitions for the new backend
  • Implement layers and activation functions with the new backend
  • Update tests and benchmarks to include the new backend

I don't really have much time to start working on this at the moment, but if you or someone else would like to get started, I would be happy to support!

Hi,

I have used both of them (Eigen and Armadillo) some years ago in a Wave Digital Filters project, and I remember that the Armadillo implementation was definitely faster. Unfortunately I don't have the code anymore, if I can find it I will make some comparisons.

I understand the complexity of this work!

By the way, I'm going to use RTNeural for the ML part of a new audio plugin!

For sure! I might have some time in the next week or two to investigate a little more as well.

Very cool! I'm always excited to see/hear any new plugins with ML :)