Intel® oneAPI Data Parallel C++
Support for Intel® oneAPI DPC++ Compiler, Intel® oneAPI DPC++ Library, Intel® DPC++ Compatibility Tool, and GDB*
536 Discussions

Device-side Eigen and specialness of SYCL vec types compared to other types

AnonRoboticist
Beginner
487 Views

I am currently investigating using the Eigen library in the device code (not Eigen with SYCL backend) as my usecase involves a lot of small vector, matrix, quaternion, etc computations in parallel. I have found that I can get Eigen to run in device code using

// Avoid automatic memory allocations
#define EIGEN_RUNTIME_NO_MALLOC
#define EIGEN_NO_MALLOC
// Disable sse2/etc vectorization SIMDs for spirv gen
#define EIGEN_DONT_VECTORIZE
#include <Eigen/Dense>


What I was wondering was if there's anything "special" to sycl vec types when it comes to performance. Are they simply types that integrate well and are specified with the rest of SYCL, or do they have special behaviour or heuristics programmed in the compiler for optimiser. Will replacing the use of sycl::float4 with Eigen::Vector4f result in significant performance differences?

0 Kudos
3 Replies
NoorjahanSk_Intel
Moderator
462 Views

Hi,


Thanks for reaching out to us.


Could you please provide us with a complete sample reproducer code and steps to reproduce the issue so that we can try it from our end?


Also please share the results where you observed performance differences.


Please let us know the OS details and compiler version being used.



Thanks & Regards,

Noorjahan.


0 Kudos
NoorjahanSk_Intel
Moderator
400 Views

Hi,


We haven't heard back from you. Could you please provide an update on your issue?


Thanks & Regards,

Noorjahan.


0 Kudos
NoorjahanSk_Intel
Moderator
357 Views

Hi,


I have not heard back from you, so I will close this inquiry now. If you need further assistance, please post a new question.


Thanks & Regards,

Noorjahan.


0 Kudos
Reply