Skip to content
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

AVX512F/fmaddsub: Implement Instruction #1246

Merged
merged 5 commits into from
Dec 11, 2024

Conversation

robinchrist
Copy link
Contributor

First implementation of AVX512 fmaddsub (_mm512_fmaddsub_pd and _mm512_fmaddsub_ps), see #1243

Current status:
No tests yet. This is just to see whether the header itself could be merged style-wise.

@robinchrist robinchrist marked this pull request as draft December 11, 2024 18:11
@mr-c
Copy link
Collaborator

mr-c commented Dec 11, 2024

This looks like the correct direction, yes!

Please review the linter / formating results at https://github.com/simd-everywhere/simde/actions/runs/12282344329/job/34273355555?pr=1246

You'll also need an entry for avx512/fmaddsub.h in

simde/simde/x86/avx512.h

Lines 70 to 74 in fa6a869

#include "avx512/flushsubnormal.h"
#include "avx512/fmadd.h"
#include "avx512/fmsub.h"
#include "avx512/fnmadd.h"
#include "avx512/fnmsub.h"

See also https://github.com/simd-everywhere/simde/wiki/Implementing-a-New-Function for hints about generating the tests. I can also help you with that.

@robinchrist
Copy link
Contributor Author

I'll try to add the tests later today

@robinchrist
Copy link
Contributor Author

This pipeline is massive... But looking good so far. Anything else I need to adjust?

@mr-c
Copy link
Collaborator

mr-c commented Dec 11, 2024

@robinchrist the CI is looking good! Did you generate the test arrays on a machine that supports AVX512F? If not, let me know and I'll run them on real hardware. The CI uses an emulator from Intel, but I like to double check with real silicon.

@robinchrist
Copy link
Contributor Author

@mr-c All my AVX512 machines are currently not available, so if possible it would be good if you tested on a CPU with native AVX512. If not possible, I‘ll try to get one of my Cascade Lake machines up and running this weekend

@mr-c
Copy link
Collaborator

mr-c commented Dec 11, 2024

@robinchrist I ran the tests on a AMD EPYC 9454 using gcc 12.2.0-14 (from Debian) and your tests pass!

@robinchrist
Copy link
Contributor Author

robinchrist commented Dec 11, 2024

@mr-c Amazing, thanks a lot! So I guess we're ready to merge now?

@robinchrist robinchrist marked this pull request as ready for review December 11, 2024 19:53
@robinchrist robinchrist changed the title [WIP] AVX512F/fmaddsub: First implementation AVX512F/fmaddsub: First implementation Dec 11, 2024
@mr-c
Copy link
Collaborator

mr-c commented Dec 11, 2024

@robinchrist Nearly there! I'll merge after a few more CIs pass

@robinchrist robinchrist changed the title AVX512F/fmaddsub: First implementation AVX512F/fmaddsub: Implement Instruction Dec 11, 2024
@mr-c mr-c merged commit 6daf535 into simd-everywhere:master Dec 11, 2024
96 of 97 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants