WebAssembly SIMD makes a large, common, and portable subset of the 128-bit vector instructions in many CPUs available to WebAssembly programs. SIMD helps speed up graphics, video/audio decoding/encoding, and machine learning workloads, to mention some. It is one of the most-requested features from those who develop C/C++ and Rust applications for the web.
As of FF89 we intend to turn WebAssembly SIMD on by default on x64 and x86. Support on ARM64 will follow, likely in FF90. Platform coverage: Support on x64 and x86 will be limited to systems with SSE4.1 or better [*], currently about 92% of our Windows user population and growing. All ARM64 systems will be supported. ARM32 support is not planned [*]. As SIMD is new in WebAssembly, content must sniff for the feature, and will be able to handle the lack of SIMD support on these systems. Preference: javascript.options.wasm_simd has been available on all channels for some time and will remain available until the feature has shipped on all targeted platforms. Other browsers: Google will ship this in Chrome 91 ( https://www.chromestatus.com/feature/6533147810332672, https://groups.google.com/a/chromium.org/g/blink-dev/c/Ks2iWmi32MM/m/nXTpmHjYAAAJ ). Apple signals that they are positive, but have no timeline for implementation in Safari ( https://lists.webkit.org/pipermail/webkit-dev/2021-February/031705.html). Development bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1625130 Bug to turn on by default on x64/x86: https://bugzilla.mozilla.org/show_bug.cgi?id=1695585 Bug to turn on by default on ARM64: https://bugzilla.mozilla.org/show_bug.cgi?id=1695589 Standard (undergoing finalization): https://github.com/webassembly/simd Devtools support: None at this time. Web-platform tests: A comprehensive test suite outside WPT is being developed as part of the spec work (see link above), as for other Wasm features. [*] SSE4.1 was introduced in 2004, and our SSE4.1 baseline corresponds to that chosen by Chrome. If for any reason we must support more users, we can choose to lower the baseline to SSSE3, to cover > 98% of Windows users. The use of Firefox on ARM32 is dropping rapidly, most likely brought on by the general availability of ARM64 systems, and will approach zero within a couple of years. We could support ARM32 and pre-SSE4.1 by translating SIMD code to scalar, but it is not clear that this would yield better performance than the non-SIMD fallback path of the application itself. _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform