Intent to Extend Origin Trial: WebAssembly SIMD

157 views
Skip to first unread message

Zhi An Ng

unread,
Nov 10, 2020, 7:58:02 PM11/10/20
to blink-dev
Contact emails

Spec

Summary
The WebAssembly SIMD proposal defines a portable, performant subset of SIMD operations that map to vector instructions that are available across most modern hardware platforms.

This is purely a WebAssembly performance feature that adds WebAssembly operations and does not affect web API behavior, but is still useful for developers to be aware of as it can change performance characteristics of applications using WebAssembly.

An Origin Trial for WebAssembly SIMD started in Chrome 84 and is scheduled to end in Chrome 86. We then extended it to Chrome 88. The results of the Origin Trial are:

- gaps identified in V8 and Emscripten toolchain, bugs, optimization opportunities
- identified a use case for for runtime feature detection of supported instructions, design is underway

We are not ready to ship this, and still need more feedback:
new instructions merged into the proposal and have yet to be in OT (such as https://github.com/WebAssembly/simd/pull/127 and https://github.com/WebAssembly/simd/pull/237

Link to “Intent to Prototype” blink-dev discussion

Goals for experimentation
New instructions added to the proposal, so we would like some time for developers to update their code base, examine the usefulness and performance of the new instructions, and for us to incorporate feedback in implementation or specification.

Experimental timeline
M89-M90

Any risks when the experiment finishes?
Performance loss from not using SIMD.

Reason this experiment is being extended

New instructions merged into the proposal and have yet to be in OT (such as https://github.com/WebAssembly/simd/pull/127 and https://github.com/WebAssembly/simd/pull/237). Need time for developers to upgrade and try this out.

Ongoing technical constraints
None.

Debuggability
Devtools is actively working on Wasm debuggability, and SIMD instructions are supported.

Will this feature be supported on all five Blink platforms supported by Origin Trials (Windows, Mac, Linux, Chrome OS, and Android)?
Yes.

Link to entry on the feature dashboard

Chris Harrelson

unread,
Nov 11, 2020, 1:25:11 PM11/11/20
to Zhi An Ng, blink-dev
My main concern is extending the origin trial twice and running it for a long time. But if the API is indeed evolving and there is excellent feedback, that could alleviate my concern.

On Tue, Nov 10, 2020 at 4:57 PM Zhi An Ng <zh...@chromium.org> wrote:
Contact emails

Spec

Summary
The WebAssembly SIMD proposal defines a portable, performant subset of SIMD operations that map to vector instructions that are available across most modern hardware platforms.

This is purely a WebAssembly performance feature that adds WebAssembly operations and does not affect web API behavior, but is still useful for developers to be aware of as it can change performance characteristics of applications using WebAssembly.

An Origin Trial for WebAssembly SIMD started in Chrome 84 and is scheduled to end in Chrome 86. We then extended it to Chrome 88. The results of the Origin Trial are:

- gaps identified in V8 and Emscripten toolchain, bugs, optimization opportunities
- identified a use case for for runtime feature detection of supported instructions, design is underway

We are not ready to ship this, and still need more feedback:
new instructions merged into the proposal and have yet to be in OT (such as https://github.com/WebAssembly/simd/pull/127 and https://github.com/WebAssembly/simd/pull/237

The previous extension also mentioned additional instructions being added. Are these new instructions ones on top of the other ones? Did the demand for thes instructions come directly from experience in the origin trial?
 

Link to “Intent to Prototype” blink-dev discussion

Goals for experimentation
New instructions added to the proposal, so we would like some time for developers to update their code base, examine the usefulness and performance of the new instructions, and for us to incorporate feedback in implementation or specification.

Experimental timeline
M89-M90

Any risks when the experiment finishes?
Performance loss from not using SIMD.

Reason this experiment is being extended

New instructions merged into the proposal and have yet to be in OT (such as https://github.com/WebAssembly/simd/pull/127 and https://github.com/WebAssembly/simd/pull/237). Need time for developers to upgrade and try this out.

Ongoing technical constraints
None.

Debuggability
Devtools is actively working on Wasm debuggability, and SIMD instructions are supported.

Will this feature be supported on all five Blink platforms supported by Origin Trials (Windows, Mac, Linux, Chrome OS, and Android)?
Yes.

Link to entry on the feature dashboard

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/990cdfae-a3e0-4cd4-9623-fc733c533a91n%40chromium.org.

Zhi An Ng

unread,
Nov 11, 2020, 8:04:02 PM11/11/20
to Chris Harrelson, Zhi An Ng, blink-dev
On Thu, Nov 12, 2020 at 2:25 AM Chris Harrelson <chri...@chromium.org> wrote:
My main concern is extending the origin trial twice and running it for a long time. But if the API is indeed evolving and there is excellent feedback, that could alleviate my concern.

On Tue, Nov 10, 2020 at 4:57 PM Zhi An Ng <zh...@chromium.org> wrote:
Contact emails

Spec

Summary
The WebAssembly SIMD proposal defines a portable, performant subset of SIMD operations that map to vector instructions that are available across most modern hardware platforms.

This is purely a WebAssembly performance feature that adds WebAssembly operations and does not affect web API behavior, but is still useful for developers to be aware of as it can change performance characteristics of applications using WebAssembly.

An Origin Trial for WebAssembly SIMD started in Chrome 84 and is scheduled to end in Chrome 86. We then extended it to Chrome 88. The results of the Origin Trial are:

- gaps identified in V8 and Emscripten toolchain, bugs, optimization opportunities
- identified a use case for for runtime feature detection of supported instructions, design is underway

We are not ready to ship this, and still need more feedback:
new instructions merged into the proposal and have yet to be in OT (such as https://github.com/WebAssembly/simd/pull/127 and https://github.com/WebAssembly/simd/pull/237

The previous extension also mentioned additional instructions being added. Are these new instructions ones on top of the other ones? Did the demand for thes instructions come directly from experience in the origin trial?

These new instructions are in addition to the other ones (which were added prior to the previous OT extension). I'm not sure if the person who proposed the instructions saw a need for these new instructions only after the origin trial. They probably have some local testing to identify the hotspots and found that the new instructions would be useful. The OT will allow us to validate that we get the expected performance improvements.
 
 

Link to “Intent to Prototype” blink-dev discussion

Goals for experimentation
New instructions added to the proposal, so we would like some time for developers to update their code base, examine the usefulness and performance of the new instructions, and for us to incorporate feedback in implementation or specification.

Experimental timeline
M89-M90

Any risks when the experiment finishes?
Performance loss from not using SIMD.

Reason this experiment is being extended

New instructions merged into the proposal and have yet to be in OT (such as https://github.com/WebAssembly/simd/pull/127 and https://github.com/WebAssembly/simd/pull/237). Need time for developers to upgrade and try this out.

Ongoing technical constraints
None.

Debuggability
Devtools is actively working on Wasm debuggability, and SIMD instructions are supported.

Will this feature be supported on all five Blink platforms supported by Origin Trials (Windows, Mac, Linux, Chrome OS, and Android)?
Yes.

Link to entry on the feature dashboard

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/990cdfae-a3e0-4cd4-9623-fc733c533a91n%40chromium.org.


--
Best,
Zhi An

Chris Harrelson

unread,
Nov 11, 2020, 8:47:10 PM11/11/20
to Zhi An Ng, Zhi An Ng, blink-dev
Reply all
Reply to author
Forward
0 new messages