Skip to content

Commit

Permalink
initial setup and overview
Browse files Browse the repository at this point in the history
  • Loading branch information
ngzhian committed Mar 16, 2021
1 parent c9ed658 commit 48ed81a
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 7 deletions.
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
[![Build Status](https://travis-ci.org/WebAssembly/spec.svg?branch=master)](https://travis-ci.org/WebAssembly/spec)
[![Build Status](https://travis-ci.org/WebAssembly/relaxed-simd.svg?branch=master)](https://travis-ci.org/WebAssembly/relaxed-simd)

# spec
# Relaxed SIMD proposal for WebAssembly

This repository is a clone of [github.com/WebAssembly/spec/](https://github.com/WebAssembly/spec/).
It is meant for discussion, prototype specification and implementation of a proposal to
add support for SIMD instructions with relaxed determinism requirements to WebAssembly.

* See the [overview](proposals/relaxed-simd/Overview.md) for a summary of the proposal.

* See the [modified spec](https://webassembly.github.io/relaxed-simd/) for details.

Original `README` from upstream repository follows…

This repository holds the sources for the WebAssembly draft specification
(to seed a future
Expand Down
2 changes: 1 addition & 1 deletion document/core/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ WebAssembly Specification

.. only:: html

| Release |release| (Draft, |today|)
| Release |release| + relaxed-simd (Draft, |today|)
| Editor: Andreas Rossberg
Expand Down
8 changes: 4 additions & 4 deletions document/core/util/macros.def
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
.. External Standards
.. ------------------

.. |WasmDraft| replace:: https://webassembly.github.io/spec/core/
.. _WasmDraft: https://webassembly.github.io/spec/core/
.. |WasmDraft| replace:: https://webassembly.github.io/relaxed-simd/core/
.. _WasmDraft: https://webassembly.github.io/relaxed-simd/core/

.. |WasmIssues| replace:: https://github.com/webassembly/spec/issues/
.. _WasmIssues: https://github.com/webassembly/spec/issues/
.. |WasmIssues| replace:: https://github.com/webassembly/relaxed-simd/issues/
.. _WasmIssues: https://github.com/webassembly/relaxed-simd/issues/

.. |IEEE754| replace:: IEEE 754-2019
.. _IEEE754: https://ieeexplore.ieee.org/document/8766229
Expand Down
29 changes: 29 additions & 0 deletions proposals/relaxed-simd/Overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Relaxed SIMD proposal

## Summary

This proposal adds a set of useful SIMD instructions that introduce local
non-determinism (where the results of the instructions may vary based on
hardware support).

## Motivation

Applications running on Wasm SIMD cannot take full advantage of hardware
capabilities. There are 3 reasons:

1. Instruction depends on hardware support
2. Approximate instructions that are underspecified in hardware
3. Some SIMD instructions penalize particular architecture

See [these
slides](https://docs.google.com/presentation/d/1Qnx0nbNTRYhMONLuKyygEduCXNOv3xtWODfXfYokx1Y/edit?usp=sharing)
for more details.

## Overview

Some instructions we would like to add:

- Fused Multiply Add (single rounding if hardware supports it, double rounding if not)
- Approximate reciprocal/reciprocal sqrt
- Relaxed Swizzle (implementation defined out of bounds behavior)
- Relaxed Rounding Q-format Multiplication (optional saturation)

0 comments on commit 48ed81a

Please sign in to comment.