
Lichess Analysis Board with Stockfish 8 in Asm.js - grondilu
https://lichess.org/analysis
======
boarquantile
Lichess tries to use (in this order): PNaCl, WASM, asm.js.

PNaCl required almost no modifications to Stockfish
([https://github.com/niklasf/stockfish.pexe](https://github.com/niklasf/stockfish.pexe)),
supports multithreading and is still the fastest.

WASM and asm.js require the same patches
([https://github.com/niklasf/stockfish.js](https://github.com/niklasf/stockfish.js)).
Most notably WASM does not yet have multi-threading. In the original Stockfish
one dedicated thread is listening for new commands. Instead now the main
search thread (since it's the only thread) has to check for new commands from
time to time, which costs a bit of performance.

------
fortytw2
The repo for stockfish.js can be found here
[https://github.com/niklasf/stockfish.js](https://github.com/niklasf/stockfish.js)

(maybe someone more familiar with the lichess architecture could go into a bit
more depth here)

------
lern_too_spel
Lichess also supports PNaCl Stockfish on Chrome for multithreaded analysis.

------
sharifm
WebAssembly is supported as well. It has become much faster a few months back
when it supported WebAssembly. On my system and using forefox it was 340
knodes/s with asm.js. With WebAssembly it is 600+ knodes/s

~~~
grondilu
Weirdly enough, I was thinking webassembly but I wrote asm.js. I'm very
surprised this happened, but apparently it did.

~~~
thope
Actually 'WebAssembly' appeared in the title for few minutes, but then it was
edited to 'Asm.js'

~~~
grondilu
I was suspecting so. I presume whoever did it followed the link, noticed the
engine was using asm.js and not wasm, and thought I was mistaken. But truly
what the engine uses depends on the browser and its configuration.

