Bug 222382

Summary: WebAssembly: SIMD support
Product: WebKit Reporter: Sergey Rubanov <chi187>
Component: JavaScriptCoreAssignee: Justin Michaud <justin_michaud>
Status: RESOLVED FIXED    
Severity: Normal CC: alex, annulen, cass, cryze92, daxpedda, dev, ews-watchlist, fpizlo, gyuyoung.kim, hypertree, justin_michaud, karlcow, keith_miller, mark.lam, maxgraey, mrschmidt, msaboff, oliver, robertknight, ryuan.choi, saam, sergio, steven, terrorjack, torokati44, tzagallo, vprelovac, webkit-bug-importer, ysuzuki
Priority: P1 Keywords: BrowserCompat, InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 233829, 245897, 246343, 246345, 246346, 246347, 246348    
Bug Blocks:    
Attachments:
Description Flags
SIMD Megapatch WIP 1
ews-feeder: commit-queue-
Wasm SIMD Megapatch 1.1
ews-feeder: commit-queue-
SIMD Megapatch 1.2
ews-feeder: commit-queue-
SIMD Megapatch WIP 1.3
ews-feeder: commit-queue-
SIMD Megapatch 1.4 (no imported tests) ews-feeder: commit-queue-

Sergey Rubanov
Reported 2021-02-24 14:24:39 PST
SIMD is on phase 4 now. https://github.com/WebAssembly/simd/blob/master/proposals/simd/SIMD.md Chrome is going to ship it in v91 (May 25) Firefox is going to ship x86 SIMD in v89 (May 18) and ARM64 SIMD in Firefox 90 (June 15)
Attachments
SIMD Megapatch WIP 1 (268.05 KB, patch)
2022-01-14 12:18 PST, Justin Michaud
ews-feeder: commit-queue-
Wasm SIMD Megapatch 1.1 (277.05 KB, patch)
2022-01-14 14:18 PST, Justin Michaud
ews-feeder: commit-queue-
SIMD Megapatch 1.2 (277.04 KB, patch)
2022-01-14 14:31 PST, Justin Michaud
ews-feeder: commit-queue-
SIMD Megapatch WIP 1.3 (276.46 KB, patch)
2022-01-14 15:04 PST, Justin Michaud
ews-feeder: commit-queue-
SIMD Megapatch 1.4 (no imported tests) (723.04 KB, patch)
2022-03-03 11:17 PST, Justin Michaud
ews-feeder: commit-queue-
Radar WebKit Bug Importer
Comment 1 2021-03-03 14:25:16 PST
Sergey Rubanov
Comment 2 2021-07-14 09:51:59 PDT
SIMD was promoted to phase 5 today and it will be merged to spec soon
MaxGraey
Comment 3 2021-07-28 03:15:13 PDT
Fixed SIMD currently supports (or will soon come out from under the flag) by all runtimes except Safari: https://webassembly.org/roadmap
Vladimir Prelovac
Comment 4 2021-11-14 23:05:02 PST
Wanted to give a vote for SIMD support from a user perspective. lichess.org which is the biggest, open-source, chess community on the web, has in-browser analysis for chess games using Stockfish NNUE (strongest chess engine) available only for WASM SIMD browsers, which sadly means not WebKit forcing me to use a Blink browser on a Mac to analyze chess games.
Vladimir Prelovac
Comment 5 2021-12-03 10:36:01 PST
I see the card got updated. Here is an example to check SIMD support. https://lichess.org/study/7WCFYt0R/XVxUIL9r In Chrome this uses StockFish NNUE for analysis, with a much detailed analysis. In Safari currently just StockFish.
Yusuke Suzuki
Comment 6 2022-01-02 00:27:38 PST
*** Bug 234790 has been marked as a duplicate of this bug. ***
Justin Michaud
Comment 7 2022-01-14 12:18:18 PST
Created attachment 449200 [details] SIMD Megapatch WIP 1 WIP patch supporting v128.const and i8x16.ExtractLane, but with many bugs. Spilling and filling is currently not even close to correct, and callee-save fp registers on arm are also completely wrong. There are also probably a bunch of places where even simple control flow will cause a crash. I am working on fixing the long list of bugs next, but this patch should hopefully be in a somewhat hackable state.
EWS Watchlist
Comment 8 2022-01-14 12:19:38 PST
Comment hidden (obsolete)
Justin Michaud
Comment 9 2022-01-14 12:36:34 PST
Justin Michaud
Comment 10 2022-01-14 14:18:09 PST
Created attachment 449222 [details] Wasm SIMD Megapatch 1.1 Let's try this again EWS
Justin Michaud
Comment 11 2022-01-14 14:31:34 PST
Created attachment 449226 [details] SIMD Megapatch 1.2
Justin Michaud
Comment 12 2022-01-14 15:04:42 PST
Created attachment 449230 [details] SIMD Megapatch WIP 1.3
Justin Michaud
Comment 13 2022-03-03 11:17:01 PST
Created attachment 453765 [details] SIMD Megapatch 1.4 (no imported tests) I removed 38mb of imported v8 tests from the diff so that I could actually upload the patch
Sanjay Kumar
Comment 14 2022-05-12 14:01:41 PDT
I hope this is done soon. Safari is the only browser left that does not support SIMD and without it we can not release so many performance enhancements to our Pilot navigation App (AvNav). We use SIMD to speed up Martini (Delauney) terrain mesh generation and it accelerates things by factor of 2-3 which is precious knowing how demanding terrain rendering can be. We are using JPEG XL for our raster/image formats which cuts down image sizes by 60-70% (and helps us stay within Safari's 1 GB storage limit). libjxl the reference implementation of JPEG XL is 3x faster with SIMD - its only image format optimized for SIMD (reason we chose it) but there will be others (AVIF ?) SIMD is very important (given hassles/limitations of SharedArrayBuffers). Apple please add support for SIMD ASAP - no more delays please. Thank you!
Vladimir Prelovac
Comment 15 2022-05-12 14:04:16 PDT
Came here to vote support for SIMD in WebKit. Go Justin!
Robert Knight
Comment 16 2022-05-31 00:33:16 PDT
I am interested in testing this when available. https://robertknight.github.io/tesseract-wasm/ is a demo that uses a WebAssembly build of the Tesseract OCR engine. It runs approximately 2-2.5x faster in Chrome and Firefox than Safari due to use of SIMD.
Vladimir Prelovac
Comment 17 2022-09-30 13:53:29 PDT
Looks like all blockers have been removed now, hoping to see this land soon!
Karl Dubost
Comment 18 2022-10-03 22:10:22 PDT
This creates a WebCompat issue for a number of projects depending on https://github.com/Volcomix/virtual-background used by projects like https://github.com/bigbluebutton/bigbluebutton
Justin Michaud
Comment 19 2022-12-23 10:48:57 PST
All features are landed in ToT, and we are now looking to fix as many bugs as possible.
Note You need to log in before you can comment on or make changes to this bug.