-
Notifications
You must be signed in to change notification settings - Fork 745
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FP16] Implement load and store instructions. #6796
Conversation
I for some reason thought we used LLVM to build everywhere. I'll need to come up with some that that works for gcc/msvc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, looks good besides the build issues with the interpreter.
@@ -0,0 +1,11 @@ | |||
The MIT License (MIT) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be the first non-Apache2-licensed code (that is not testing code), so it might be worth a mention in our toplevel LICENSE file.
Any chance there's an Apache2-licensed alternative?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could also reach out to Marat and ask if he's willing and able to dual-license it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A quick search didn't find any apache license libraries, only another MIT one. IANAL, but I was under the impression MIT is fine to include in apache.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I don't think it's a blocker to use this code, it is compatible AFAIU. But it is a different license so it seems worth mentioning at the top level.
Hmm...looks like the FP16 library is having issues with MSVC still. |
I've opened Maratyszcza/FP16#31 for MSVC issue. |
It looks like the conditionals in
The logs don't include the compiler version, I'm trying to find the compiler used in this build. I will update. |
@osa1 were you able to find what compiler version you are using? |
@brendandahl version 19. |
Binaryen seems to include #if defined(__INTEL_COMPILER) || defined(_MSC_VER) && (_MSC_VER >= 1932) && (defined(_M_IX86) || defined(_M_X64))
#include <immintrin.h>
#endif
#if defined(_MSC_VER) && !defined(__clang__) && (defined(_M_ARM) || defined(_M_ARM64))
#include <intrin.h>
#endif
static inline float fp32_from_bits(uint32_t w) {
...
#elif defined(__INTEL_COMPILER) || defined(_MSC_VER) && (_MSC_VER >= 1932) && (defined(_M_IX86) || defined(_M_X64))
return _castu32_f32(w); // <-- COMPILATION ERROR, _castu32_f32 not found.
...
#endif
} (side note: Clang windows compiler will define The clang windows compiler seems to ship this function
=> So I think the conditional include should be fixed to |
Specified at https://github.com/WebAssembly/half-precision/blob/main/proposals/half-precision/Overview.md