Skip to content

Tentative support for avx512f extensions to 256 bit registers#1345

Open
serge-sans-paille wants to merge 1 commit into
masterfrom
feature/avx512f_256
Open

Tentative support for avx512f extensions to 256 bit registers#1345
serge-sans-paille wants to merge 1 commit into
masterfrom
feature/avx512f_256

Conversation

@serge-sans-paille
Copy link
Copy Markdown
Contributor

In addition to missing instructions (e.g. bas on int64_t etc) this mostly changes the mask representation from vector register to scalar, thus the big diff.

In addition to missing instructions (e.g. bas on int64_t etc) this
mostly changes the mask representation from vector register to scalar,
thus the big diff.
@DiamonDinoia
Copy link
Copy Markdown
Contributor

Hi @serge-sans-paille,

Are we sure that we only need avx512f for this? It seems to me that instructions like https://diamondinoia.com/simdref/#_mm256_cmp_epi32_mask requires avx512f + VL.

Let me know where I am wrong.

Cheers,
Marco

@serge-sans-paille
Copy link
Copy Markdown
Contributor Author

You're right, all of this requires avx512f+avx512vl. It turns out most build have both (see https://en.wikipedia.org/wiki/AVX-512#CPUs_with_AVX-512) but we currently don't have anything to model avx512vl, which should be the parent of avx512f_256.

@DiamonDinoia
Copy link
Copy Markdown
Contributor

I guess it might be called avx512vl_256 at that point as we will also have avx512vl_128. What do you think?

I agree, most CPU have 512+extensions.

@serge-sans-paille
Copy link
Copy Markdown
Contributor Author

I guess it might be called avx512vl_256 at that point as we will also have avx512vl_128. What do you think?

I agree, most CPU have 512+extensions.

It looks like avx512vl does not have any 512bit instruction :-) but it still has avx512 in its name and it implies avx512f, so I agree with you.

@DiamonDinoia
Copy link
Copy Markdown
Contributor

Actually, my suggestion might be wrong: https://diamondinoia.com/simdref/#_mm_maskz_andnot_pd

There are instructions that require DQ + VL for example.

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