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.
1718 Discussions

CL_KERNEL_SPILL_MEM_SIZE_INTEL interpretation?

allanmac1
Beginner
465 Views

I'm trying to hunt down spills in my kernel.

Is there a more detailed description of the CL_KERNEL_SPILL_MEM_SIZE_INTEL query (link)?

Is this byte value per work item, sub_group or work_group?

I ask because I'm seeing a consistent "2048" returned by this query.

Also, what GEN instruction(s) indicate spillage? Is it SENDS?

 

0 Kudos
3 Replies
Ben_A_Intel
Employee
465 Views

For our current devices, it's the size of spill memory in bytes, per subgroup, and you'll currently always see "powers of two" returned from this query (1K, 2K, 4K, etc) since this is the granularity at which we manage spill memory.

For more information, search for "Per Thread Scratch Space" in MEDIA_VFE_STATE here:

https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions.pdf

The spill/fill instructions are "sends", but they'll be a different type of "send" than your usual I/O messages.  You can find more information by searching the PRM for "scratch block read" and "scratch block write".

0 Kudos
allanmac1
Beginner
465 Views

Ah, thanks!  

This is helpful because it confirms that the kernel is spilling... now to find out why!

Maybe this is something that could/should be reported by the IOC compiler?

0 Kudos
Jeffrey_M_Intel1
Employee
465 Views

The feature request has been filed.  Thanks for your helpful feedback on this. 

0 Kudos
Reply