7 comments

[ 4.8 ms ] story [ 26.7 ms ] thread
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
Weirdly enough, I was thinking webassembly but I wrote asm.js. I'm very surprised this happened, but apparently it did.
Actually 'WebAssembly' appeared in the title for few minutes, but then it was edited to 'Asm.js'
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.
Lichess also supports PNaCl Stockfish on Chrome for multithreaded analysis.
Lichess tries to use (in this order): PNaCl, WASM, asm.js.

PNaCl required almost no modifications to Stockfish (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). 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.