New user self-registration is disabled due to spam. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Before reporting a bug, please make sure that your Eigen version is up-to-date!
Bug 1714 - AVX512 PacketMath add quarter type
Summary: AVX512 PacketMath add quarter type
Status: DECISIONNEEDED
Alias: None
Product: Eigen
Classification: Unclassified
Component: Core - vectorization (show other bugs)
Version: 3.4 (development)
Hardware: x86 - AVX512 All
: Normal Internal Design
Assignee: Nobody
URL:
Whiteboard:
Keywords:
Depends on: 692
Blocks:
  Show dependency treegraph
 
Reported: 2019-05-14 09:35 UTC by neumann
Modified: 2019-05-24 15:02 UTC (History)
4 users (show)



Attachments

Description neumann 2019-05-14 09:35:01 UTC
AVX512 could define a quarter type since there are three usable types (ignoring suffixes):
__mm512
__mm256
__mm128

so dealing with a vector of ten double elements could be done by
one m512 and one m128 instruction/packet.
Comment 1 Christoph Hertzberg 2019-05-24 15:02:39 UTC
Adding a `quarter` typedef would be trivial, but properly using that not so much.

E.g., for a vector of size 14 it might be better to either use two overlapping vectors of size 8, or (with AVX512) mask one vector to size 6.
Also, even without AVX512, there could be use cases for using just one half of a __mm128 packet (for two floats).


If you need this in your own code, you can use the `half` typedef twice.

Note You need to log in before you can comment on or make changes to this bug.