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
// Disable sse2/etc vectorization SIMDs for spirv gen
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?
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,