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

[BUG] to logical is broken for very aggregated #1666

Open
DenisYaroshevskiy opened this issue Sep 5, 2023 · 4 comments
Open

[BUG] to logical is broken for very aggregated #1666

DenisYaroshevskiy opened this issue Sep 5, 2023 · 4 comments
Labels
bug Something isn't working

Comments

@DenisYaroshevskiy
Copy link
Collaborator

This:

using i_t = std::conditional_t< (T::size()>=128 && sizeof(element_type_t<T>) == 1)

Will run into problems very quickly

@DenisYaroshevskiy DenisYaroshevskiy added the bug Something isn't working label Sep 5, 2023
@jfalcou
Copy link
Owner

jfalcou commented Sep 5, 2023

Philosphical question : do we want to support VERY aggregated types after all ?

@DenisYaroshevskiy
Copy link
Collaborator Author

Yeah. I don't know an answer to that. I'm generally not sure about aggregation, since it's not very good. Or like 64 bytes max.

Needs a decision.

@jfalcou
Copy link
Owner

jfalcou commented Sep 5, 2023

wide larger than cache lien size is useless IMHO. SO we could have :

  • a maximum size in a static_assert
  • a hand unrolled implementation of aggregation faster to compile

@jfalcou
Copy link
Owner

jfalcou commented Sep 5, 2023

It's a bit more complicated in fact. Can't some conversion lea to more than 64 bytes ?
Like converting AVX512 float into AVX512 double will requires 2 registers for a total of 128 bytes.
Worst case, AVX512 char to AVX512 double will requires 8x registers for a total of 512 bytes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants