3 ms·
For chess analysis, I recommend SCID vs PC. It turns out that chess-playing programs have standardized upon UCI (Universal Chess Interface), meaning any chess-
by dragontamer 5y ago
For chess analysis, I recommend SCID vs PC.
It turns out that chess-playing programs have standardized upon UCI (Universal Chess Interface), meaning any chess-playing program, (IE: Stockfish and Leela Chess) can interface with any UCI program (in this case, SCID vs PC).
SCID vs PC can then be tuned to whatever you think is appropriate for review. Add the tablebases if you want perfect endgame analysis, or favor faster reviews with less analysis (if you're going for speed). Or you can run analysis overnight, if you want the computer to spend 20+ minutes per position.
--------
With an actual analysis program like SCID vs PC, you can try variations and deeper studies than what either chess.com or lichess.org can offer. There's no replacement to just running these calculations on your own very capable computers... rather than leveraging the limited compute abilities of a shared server with a thousand players on it. (Or in the case of lichess, I think its a Javascript program instead of a proper x86-assembly tuned high-speed analysis bot).
Stockfish in particular has a nifty quirk: most of its analysis is done in a giant hash table of positions. Meaning variations / transpositions are very quick for Stockfish to analyze (or more like, Stockfish probably has a variation already partially-analyzed before you even decided to think about it yourself. The hash table stores this partial analysis, and allows Stockfish to have a leg-up on analyzing the position when you decide upon exploring that variation).
--------
The equivalent for Go is Lizzie, which is easier since Lizzie comes with LeelaZero and KataGo already. (KataGo is the superior analysis engine IMO. Both are superhuman, but KataGo's score-based analysis is more useful for finding endgame mistakes).
- stouset 5y agoLichess uses Stockfish 14+ NNUE compiled with WASM, so it should be essentially as fast as running it locally on your own machine. They don't expose as many of the tuning options, but that's not an enormous difference for most people. So no, it is just just some Javascript program. And as far as I know, essentially every modern chess engine uses a hashtable of positions such that transpositions are essentially free. This isn't a unique "quirk" of Stockfish.
- dragontamer 5y agoExcept Stockfish has some hand-written x86-specific bits, such as PEXT / PDEP, or BMI2 instructions. I'm talking hand-tuned assembly here, really good stuff and very high performance. Running Stockfish 30% to 40% slower for no reason at all, and with far less RAM / resources means that you'll get weaker analysis at slower speeds. And those "tuning options" include tablebases, which would provably play perfectly (and Stockfish is smart enough to "think" with tablebases: if it can prove a won position with a tablebase, it won't bother exploring and will just report the mate-in-300 immediately)
- thom 5y agoPEXT is mostly for magic bitboards, right? So it’s more of a one time cost. But still, I’d be amazed if it weren’t much slower in the browser now and forever.
- dragontamer 5y agoNo. Magic Bitboards are what you use if you don't have PEXT available. EDIT: I expect the WASM version to use magic-bitboards (which is just a "magical" multiply instruction + a lookup). Every single sliding piece (ie: Rooks, Bishops, and Queens) use PEXT (or magic-bitboards if the PEXT code is unavailable) to determine where to go. Its a fundamental calculation to determine very, very quickly which moves are legal or not. Both PEXT and Magic Bitboards are incredible techniques for solving the sliding-piece question. However, PEXT is much much much faster, but relies upon an obscure x86-only assembly instruction (that is slower on AMD Zen or Zen2 unfortunately. So you still need to know your hardware details, Intel machines should use the PEXT version). --------- Still, even AMD users want the BMI2 version, which has a bunch of bit-operations that can be optimized that are used all the time. (And besides, AMD Zen3 is actually faster on PEXT now, so PEXT is looking good for the future) ----- In either case, I have my doubts that the NNUE neural-net runs anywhere near as good on WASM than on the hand-optimized SIMD / AVX kernels that the Stockfish team wrote. Even if there's some auto-vectorization that WASM can do, its really hard to beat handcrafted assembly / intrinsics (https://github.com/official-stockfish/Stockfish/blob/master/src/nnue/nnue_feature_transformer.h https://github.com/official-stockfish/Stockfish/blob/master/...)
- seritools 5y ago> Or in the case of lichess, I think its a Javascript program instead of a proper x86-assembly tuned high-speed analysis bot Stockfish compiled to multithreaded WASM (on supporting browsers)
- thom 5y agoWhat do you use for a database? I seem to remember the person behind Caissabase inhabits these parts but that hasn’t been updated in a while. I have ChessBase but find myself in Linux most of the time and haven’t copied the database over because ChessBase’s UI causes me great pain.
- noir_lord 5y agoHe does (it's me). It was last updated on 5th December 2021, next release will be 1st Jan 2022 (since World Rapid/Blitz championship is on-going and I want to roll that into it).
- ArchieMaclean 5y agoLichess has a 'fishnet' of donated servers [0] that allow you to analyse using Stockfish on proper hardware. You can have up to 20 deep analyses a day. The web client uses Stockfish compiled to WASM which is decently fast. If you're not an IM/GM, it's "good enough" [0] https://github.com/niklasf/fishnet https://github.com/niklasf/fishnet
- perryprog 5y agoThere’s also chessx[1], which is what I’ve found myself to prefer (I’ve also never gotten SCID vs PC to run on macOS, unfortunately). It has some oddities, but once you get past that there’s a lot of great functionality to enjoy. [1]: https://chessx.sourceforge.io https://chessx.sourceforge.io