-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Adding zmmStateSupport and AVX512F, AVX512CD, AVX512BW, AVX512DQ and AVX512VL ISAs. #74113
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
eb454e9
to
fddf306
Compare
@tannergooding I cannot figure out where/how |
src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt
Show resolved
Hide resolved
I don't see any existing consumers, it might be dead code. |
There's still a couple of pending comments above and we need to revise the JIT/EE Version Guid here: https://github.com/dotnet/runtime/blob/main/src/coreclr/inc/jiteeversionguid.h Otherwise the changes look good/correct to me and I think we can adjust the |
975db44
to
5b0ef68
Compare
Have added the requested changes. |
Tagging the group... just to see it work... @dotnet/avx512-contrib |
Works for me. Got an email notification |
ddaef19
to
57a793f
Compare
@tannergooding I had originally missed your comment re JIT/EE Version Guid. I have updated it now following instruction in the file(ran "uuidgen.exe -s" locally and replaced the GUID in file with that). Please let me know if there is anything else needed from us to push this forward. |
57a793f
to
98307a9
Compare
I've approved, but I'd like to see an approval from @tannergooding as well before we merge. |
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.
LGTM, minus the question about the NAOT instruction set names
@@ -19,3 +19,20 @@ LEAF_ENTRY xmmYmmStateSupport, _TEXT | |||
LEAF_END xmmYmmStateSupport, _TEXT | |||
|
|||
end | |||
|
|||
;; extern "C" DWORD __stdcall avx512StateSupport(); | |||
LEAF_ENTRY avx512StateSupport, _TEXT |
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 needs to be hooked up here:
bool DetectCPUFeatures() |
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.
Looks like the AVX512 ISA checks need to be mirrored there as well.
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.
And the 'end' was in the wrong place :) . Have added the checks in startup.cpp
98307a9
to
c0371aa
Compare
This adds the helper functions to check if avx512 functionality is supported.
Failures are #75667 super-pmi failures are due to the JIT/EE version guid update timeouts are on a subset of arm/arm64 machines and are happening everywhere, this change is explicitly around xarch. |
This change adds logic for detecting avx512 support via
zmmStateSupport
and the logic inEEJitManager::SetCpuInfo()
For specifics of
zmmStateSupport
- see section15.2 DETECTION OF AVX-512 FOUNDATION INSTRUCTIONS
in Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4 for details.14.3 DETECTION OF AVX INSTRUCTIONS
details logic used for AVX and SSE.The other changes are to add new AVX512 ISAs. Most of these changes are autogenerated code via
src/coreclr/tools/Common/JitInterface/ThunkGenerator/InstructionSetDesc.txt