The tuner encodes some general chess knowledge in the PST's; the tuning process makes the engine put pieces on squares where pieces have the most success to contributing to winning games.algerbrex wrote: ↑Wed Oct 20, 2021 11:09 pm I believe from retuning I got about 5-ish Elo, so not too much. But I only went through 1-2 tuning sessions, on the two halves of the Zurichess quiet position training set. So I'm sure 10-20 Elo from retuning is certainly possible.
And hitting 2200 on the CCRL would be quite nice with only Rustic's current feature set and better tablesPSTs are surprisingly powerful (at least they were for me).
And yes, if Rustic makes 2150, I'd be satisfied. 2180 would be at the top of my expectation. If it makes >=2200, that would be really wild. It would probably mean that I was lucky with regard to the engines it tested against. I found one engine around 2130, against which the current dev version performs almost exactly equal (so also ~2130). A newer version of that engine is in the list at roughly 2260, and the same dev version scores -20. That would mean a performance rating of 2240. The other engine improved about 130 points, but against Rustic, only 20 points remain.
I've always found stuff like that strange, but it's always been like this with engine testing. A > B > C does not automatically mean A > C...
Aren't go-routines "green threads"; so threading within a single thread? (I don't know this 100% sure.) In Rust, a thread is a "real" thread. Rust doesn't have "green" threads, but it can simulate them with async/await (and there are 50 million libraries that do this, which I personally dislike).I'd eventually like to build something similar, so I can use my Pixelbook for programming and schoolwork, and the other system for running tests and parameter tuning.
And one nice thing about go is that it's quite simple to use multithreading via goroutines, but that's a part of the language I'd need to learn a bit more about before I used it in any extensive manner. But I'm sure I could eventually get that up and running so I could speed up the tuning process.
And yup copied the naive implementation from CPW. So I already knew it'd be slow, which I wasn't too worried about for this initial version since the goal was to get a working tuner, not a fast one. But a faster tuner will definitely be needed in the future to speed up the development process.
I don't intend to put a huge amount of money into the testing system, nor a huge amount of time into the tuner. I don't expect to tune more often than once per feature. If a tuning run takes 12 hours, and I can cut that down to 1.5 hours by using Rayon, the "simple" tuner is good enough for me.
When / if I hit 3000 (and certainly at 3200, if I can manage that) with Rustic (without NNUE), I actually intend to divert part of my time to writing my own user interface and a Rust-based replacement for Picochess. (I like Picochess, but I completely dislike the fact that it is written in Python, using an old version of PyChess, and stuck at Python 2 because no-one wants to update it. And I HATE Python. I won't voluntarily touch that language when I'm not getting paid for it.)
In short, If Rustic ever reaches the 3200+ ratings, I don't see a lot of reason to continue development, short of NNUE, because improving beyond that will take exponentially more testing time and computing power. I'd rather add something like MCTS and/or NNUE as alternative search / evaluation options.
As soon as the engine reaches 2850, I consider it strong enough to make it one of my analysis engines. Stockfish 14 is cool, but half the time I don't understand its moves, because the point of a move only becomes visible 25 ply's into the future...