Robbepop edited PR #10487.
Robbepop edited PR #10487:
This enables
relaxed-simdfor the Wasmi differential fuzzing oracle.Wasmi implements all
relaxed-simdoperators deterministically. Fused multiply-add has only 1 rounding error on all platforms. Onno_stdwe uselibmto achieve this.Note that the
relaxed-simdproposal support is very new for Wasmi. I have only ran Wasmi's differential fuzzing for ~45 minutes before it crashed with the already known Wasmtime bug.
Robbepop edited PR #10487:
This enables
relaxed-simdfor the Wasmi differential fuzzing oracle.Wasmi implements all
relaxed-simdoperators deterministically. Fused multiply-add has only 1 rounding error on all platforms. Onno_stdwe uselibmto achieve this. Where possible Wasmi simply uses the non-relaxed counterparts for some of therelaxed-simdoperators.Note that the
relaxed-simdproposal support is very new for Wasmi. I have only ran Wasmi's differential fuzzing for ~45 minutes before it crashed with the already known Wasmtime bug.
github-actions[bot] commented on PR #10487:
Subscribe to Label Action
cc @fitzgen
<details>
This issue or pull request has been labeled: "fuzzing"Thus the following users have been cc'd because of the following labels:
- fitzgen: fuzzing
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
alexcrichton commented on PR #10487:
Unfortunately I don't think this will do anything at this time due to this line. I'm not sure how we can change that because while wasmi/wasmtime may be able to be differentially fuzzed against each other it assumes certain wasmtime configuration which isn't plumbed yet and differential execution against v8 or even the spec interpreter in the future may not be possible
Robbepop commented on PR #10487:
@alexcrichton thanks for the clarifications.
I agree, this won't be very useful for Wasmtime at the moment. I currently do perform
relaxed-simddifferential fuzzing in Wasmi's fuzzer and it seems to match Wasmtime's semantics. However, I just got the weird feeling that even withconfig.relaxed_simd_deterministic()enbabled this might change sincerelaxed-simdinstructions can remain deterministic while changing semantics as long as the new semantics are deterministic across platforms.
Robbepop edited a comment on PR #10487:
@alexcrichton thanks for the clarifications.
I agree, this won't be very useful for Wasmtime at the moment. I currently do perform
relaxed-simddifferential fuzzing in Wasmi's fuzzer and it seems to match Wasmtime's semantics. However, I just got the weird feeling that even withconfig.relaxed_simd_deterministic()enbabled this might change sincerelaxed-simdinstructions can remain deterministic while changing semantics as long as the new semantics are deterministic across platforms.So maybe ... I should stop fuzzing
relaxed-simdin Wasmi as well. :thinking:
alexcrichton commented on PR #10487:
I think the intention is that the deterministic profile of relaxed-simd is spec'd as one thing and that "thing" won't change. Officially though there aren't profiles at the moment, so it's more of a handshake between folks at this point that the deterministic profile won't be changing AFAIK
Robbepop commented on PR #10487:
I think the intention is that the deterministic profile of relaxed-simd is spec'd as one thing and that "thing" won't change. Officially though there aren't profiles at the moment, so it's more of a handshake between folks at this point that the deterministic profile won't be changing AFAIK
Ah I didn't know about the deterministic profile but it seems I got it right by accident.
Robbepop commented on PR #10487:
I think this can be closed for now.
alexcrichton closed without merge PR #10487.
Last updated: Dec 13 2025 at 19:03 UTC