WebAssembly / WebAssembly/multibyte-array-access

Dart SIMD use case.

Open
#5 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
4
Forks
1
Avg merge
16h 35m
Merged PRs (30d)
1

Description

Hello!

I just wanted to briefly share some use cases for this in the Dart world.

We are working on adding better SIMD support to the dart2wasm compiler in Dart.

One of the use cases we can't support right now is an efficient SIMD based scan.

To be able to efficiently scan through a byte stream (or a string to implement the memchr equivalent in Dart called indexOf) using SIMD we'd need to have the ability to reinterpret parts of the backing storage as appropriate types that allow us to cheaply treat a chunk of it as a SIMD type.

Here's some more Dart use cases from another perspective from @osa1 in https://github.com/WebAssembly/gc/issues/395#issuecomment-1630391803

An 8x unrolled SIMD based scan can achieve 120GB/s on a modern mac using NEON. It would be great if use cases like these could be opened up with this proposal. Experiments show that we are at least an order of magnitude away from being able to reach those numbers with wasm gc.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue text and the linked WebAssembly GC discussion to understand the Dart dart2wasm SIMD scan use case and the proposed multibyte array access behavior. No repository files or tests are named, and completion criteria are not defined; the issue would need a concrete proposal or acceptance criterion before implementation can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, wasm
Domain
compilers, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.