This forum has been archived. All content is frozen. Please use KDE Discuss instead.

predux_downto4 implementation

Tags: None
(comma "," separated)
omergaribi
Registered Member
Posts
1
Karma
0

predux_downto4 implementation

Sun Sep 12, 2021 2:47 pm
Hi,

I am trying to implement vectorize form for "predux_downto4" function for one of our cores:

template<typename Packet> EIGEN_DEVICE_FUNC inline typename conditional<(unpacket_traits<Packet>::size%8)==0,typename unpacket_traits<Packet>::half,Packet>::type
predux_downto4(const Packet& a)

While the function gets a vector (16 elements in my case) and return half a vector (8 elements).
But when compiling I am getting the following error:
c:\TempTools\SensProV1_2\cevatools\lib\clang\11.0.1\include\Eigen/src/Core/GenericPacketMath.h:286:11: error: assigning to 'float' from incompatible type 'float const __attribute__((ext_vector_type(8)))' (vector of 8 'float' values)
{ (*to) = from; }

Means that in my case, the scalar implementation (store function) is been used in half vector. That make sense because I didn't implement any of the other half vector functions.

The question is, should I implement all functions with half vector in order to implement "predux_downto4" on full vector? I that in AVX implementation there isn't any half vector implementation of any function, how could it be?

Thank you in advance for your response.
Omer Garibi


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]