<div dir="ltr"><span style="font-size:12.8px">Hi everyone,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I don't know if this is too specialised for this list. Anyway, no harm in asking the question :-)</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><i>Preamble</i></div><div style="font-size:12.8px">Build: Yocto from the Apollo Lake BSP release <i>gold, </i></div><div style="font-size:12.8px">Hardware: Oxbow Hill Rev B CRB with Intel Atom E3950 and 4GB DDR3 RAM (one SODIMM)</div><div style="font-size:12.8px">Build: core-image-sato-sdk<br></div><div style="font-size:12.8px">Installed on the onboard eMMC.<br></div><div style="font-size:12.8px">OpenCL: installed user space drivers from SRB4 <span style="text-decoration:underline;font-size:14.6667px;font-family:arial;background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><a href="https://software.intel.com/file/533571/download" target="_blank" style="text-decoration:none">https://software.intel.<wbr>com/file/533571/download</a></span></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I'm currently evaluating the Apollo Lake platform as a candidate to run our embedded application. We already have this application running on less powerful ARM based Linux systems with Mali GPU using OpenCL 1.2. We're now evaluating the E3950 as a faster alternative. To evaluate the application I need OpenCL 1.2 or later.<br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">To verify the OpenCL installation I have built and run the Intel demo apps: CapsBasic and Bitonic Sort. CapsBasic sees two devices: CPU and GPU and Bitonic sort can run its kernels correctly on both the CPU and the GPU. </div><div style="font-size:12.8px"><div><br></div><div><i>The issue</i></div><div>Simply put, the application has </div><div><ul><li style="margin-left:15px">thread 1 (feeder): has a loop that feeds data into OpenCL and queues kernels</li><li style="margin-left:15px">thread 2 (consumer): waits for results and reads output data. </li><li style="margin-left:15px">an OpenCL Host command queue with out-of-order execution enabled</li></ul>When I run my app and select the GPU OpenCL device, the feeder thread <i>stalls inside a blocking call to clEnqueueMapBuffer(). </i>At this point only one thing has been queued on the command queue: a buffer unmap command for a different buffer. This unmap is waiting for an OpenCL event that will indicate data ready to be processed.</div><div><br></div><div>In contrast, when I run my app and select the <i>CPU OpenCL </i>device, it works perfectly.</div><div><br></div><div>Does anyone have any ideas on</div><div><ol><li style="margin-left:15px">what might be causing this problem running with the GPU?</li><li style="margin-left:15px">how to debug this on the Yocto platform?</li></ol></div><div>Best regards,</div><div><br></div><div>Tony</div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Tony Whittam<div>Rapt Touch</div></div></div>
</div>

<br>
<font face="Arial" size="1" style="background-color:white"><span style="color:rgb(34,34,34)">Confidentiality Notice: </span><br style="color:rgb(34,34,34)"><br style="color:rgb(34,34,34)"><span style="color:rgb(34,34,34)">The information contained in this message, including any attachments hereto, may be confidential and is intended to be read only by the individual or entity to whom this message is addressed. If the reader of this message is not the intended recipient or an agent or designee of the intended recipient, please note that any review, use, disclosure or distribution of this message or its attachments, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and/or Rapt Touch Ltd via email at </span><a href="mailto:info@rapttouch.com" style="color:rgb(17,85,204)" target="_blank">info@rapttouch.com</a><span style="color:rgb(34,34,34)"> and delete or destroy any copy of this message and its attachments.</span></font>