Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, this is only in the form of the reference implementations, as the other ARM implementations require ACL, or SVE512 (which is not widely implemented yet outside of a few select/recent CPUs).
ACL is not an option due to not working on Windows.
This also (sort of) cherry picks the following upstream PRs:
oneapi-src/oneDNN#1557
oneapi-src/oneDNN#1648
oneapi-src/oneDNN#1654
Only the relevant sections of these have been pulled in.
This works on both Linux (gcc) and Windows (MSVC).
Tested on a Volterra (Windows Dev Kit 2023) machine with Windows 11/Debian WSL, a Thinkpad X13s with Windows 11/Ubuntu WSL, and a Raspberry Pi 4 with Raspbian.
Follow-up PR to OIDN to be made shortly after this one with further detail.
Marking as draft until discussion on other PR resolved.