Didthis


Like what you see here? Get your own Didthis page

user-uploaded image

Neural Amp Modeler

In Progress

5 updates

Tweaks, optimizations, etc


 

I finally managed to setup a Debian Bullseye arm64 QEMU session on my x86_64 CPU and now I can compile a lot faster and easier than before. All this time I had missed a little parameter that up to now made it a show stopper.

 

I have posted build instructions on how I compile under Debian 12/Bookworm arm64/aarch64.

 

I can now run a WaveNet Standard model on my Raspberry Pi 3 "clone" and it uses ~90% CPU. This build is built in Debian 12/Bookworm (Glibc 2.36) and should work on RPi distributions based on it.

 

O3, LTO, PGO, OpenACC and x86-64-v3 optimized Linux build of neural-amp-modeler-lv2 for Glibc 2.39 systems. IMPROVEMENT! On my Ryzen 5600G with a fixed 4.4GHz CPU frequency a Standard WaveNet NAM model used 0.40% CPU. The build from yesterday used 0.5%. The following is not a system benchmark but just an anecdote. I did a test on my i3-7100U CPU running this build of neural-amp-modeler-lv2 on Linux Void and then on Windows 10. The plugin on Windows 10 was compiled using Clang 16 (O3, LTO and x86-64-v3). The DAW on both systems was REAPER and an LSTM model trained with 2 num_layers and 14 hidden_size. The Linux system managed up to 73 instances without any crackling or xruns. The Windows system was unresponsive using only 26 instances. If I had used the official Neural Amp Modeler VST3 I am certain it would have been even fewer instances before unresponsiveness.

 

Ofast, LTO, PGO, OpenMP and x86-64-v3 optimized Linux build of neural-amp-modeler-lv2 for Glibc 2.39 systems. If it doesn't work then you probably need libomp5.so. I will try out -DBUILD_SHARED_LIBS=0 and see if it successfully compiles it all statically. On my Ryzen 5600G with a fixed 4.4GHz CPU frequency a Standard WaveNet NAM model used 0.5% CPU. On an aging i3-7100U (late 2016) laptop I reached 0.72% CPU usage compared to my non-PGO build which used 0.99%. That was with a custom LSTM model. I will probably do an aarch64/arm64 build at some point using Glibc 2.36 so that it can be used on more conservative distributions. I also did a BOLT test but saw no real improvement. This might be my fault though. The compile also increased from ~200kB to ~2MB.