WebAssembly / WebAssembly/multibyte-array-access
Dart SIMD use case.
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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