What is this?
I wanted to implement Stockfish's NNUEs (Efficiently Updatable Neural Network) in my own engine, however the latest library was dshawul's, which only supported the first architecture, SFNNv1. This performed worse than my hand crafted evaluation, so I started working on creating my own library to support the latest architecture, SFNNv8!
What did I learn?
A lot of C++ so that I could read through and understand the Stockfish code
How neural nets can be implemented without the use of libraries like Pytorch
How to write JNI (Java Native Interface) code which allowed me to use this C++ library for my Java engine
How to work with a terminal to compile code as well as create shared libraries (.dll and .so files)
Significance
Used to create the worlds strongest Java Chess engine, JFish
Featured in this video on the Chess Programming YouTube channel
When implemented into Bagatur, one of the strongest Java engines, it had a 460 elo increase, compared to using the old NNUE library