OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.
1719 Discussions

Does Intel OpenCL on CPU require consecutive memory accesses of neighboring threads for vectorization?

David_P_7
Beginner
381 Views

Hello everyone,

does Intel OpenCL on CPU require consecutive memory accesses of neighboring threads (=in same work group) for vectorization?

I have an hashing-based OpenCL kernel that has mandatory non-consecutive memory accesses (the threads use a calculated hash-value as an memory index, the hashing makes it unpredictable). So far, I'm always getting reported a

"Kernel <kernel_name> was not vectorized"

in the OpenCL build log. I suspect that this is due adjacent threads not accessing consecutive memory addresses. Is that correct? Or can I motivate the Intel OpenCL platform to generate gather/scatter (or intermittent scalar loops) instructions?

A clarification on whether the Intel OpenCL platform can handle this kind of memory access pattern in general would be greatly appreciated.

 

0 Kudos
0 Replies
Reply