I have been working on and off over the past year on supporting NNUE evaluation for Arasan. I have created a
repository that contains network reading code compatible with that in Stockfish, but MIT licensed, as is Arasan. Note this follows the original Stockfish 13 network structure, not the new one that is in Stockfish 14. It took me some time to get that working correctly but it is pretty much finished now, except I still need to add some SIMD code for processors that do not support AVX2. SIMD is essential for the neural network code to perform well: I found a very considerable nps difference between Arasan with no SIMD enabled and the SIMD-enabled network code.
NNUE support for Arasan is in a branch, which I have now pushed to Github. This is still a work in progress but it is also passing tests now. Arasan's utility subdirectory now contains a program "selfplay," which can be used to generate training games. I have a network which was generated from around 1 billion game positions, searched to depth 6 with the pre-NNUE version of Arasan. It was tuned using the tuner from Sergio Vieri's
fork of Stockfish. This is probably very far from an optimal network but it does appear to give a good ELO gain. A 200 game test match against version 22.3 at 2:0+1 time control ended with this result:
Score of Arasan-23.0 vs Arasan-22.3: 72 - 30 - 98 [0.605] 200
Elo difference: 74.06 +/- 34.46