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

Intel OpenCL SDK Command Queue View problem / OpenCL threading issue

Victor_Cherepanov
374 Views

Hi,

Today I downloaded the latest version of Intel SDK for OpenCL. I very like it. It's nice to look inside the device.

I have found couple strange thing with the Command Queue View.
1. It shows commands a bit strange way. I believe there is some problems with the font.
2. Some commands are found at 2 stages at the same time: WRITE_IMAGE(4), MAP_BUFFER(8), MAP_BUFFER(11), MAP_BUFFER(13). It's a bit hard to recognize them with the font issue. Is it expected?
3. Time after time I've got garbage in mapped region, when working kernel size is small (= kernel loading/submitting time is much bigger than kernel running time). The buffer contains bytes like "_Z55intel_sub_group_avc_ref_set_motion_vector_cost_functionmDv2_jh33intel_sub_group_avc_re". Looks like a wrong region was mapped. No error/warnings were return from any OpenCL function before getting the garbage. The OpenCL log view from MSVC contains only CL_SUCCESS.

command queue

A brief description of my application. The application creates an asynchronous command queue on the Intel device, writes YUV data to 8-bit frames allocated on the device (asynchronous clEnqueueWriteImage), asynchronously runs kernel vme.cl downloaded from the Intel site, and maps buffers with results into the host memory (asynchronous clEnqueueMapBuffer). All cl_event objects are passed correctly between the stages. At the end applications synchronizes with latest cl_event and reads the data. Commands are submitted from various threads. Is it possible that OpenCL library has problems with calls from different threads? When I map buffers with results only once (at the starting of the application), the everything runs fine. But it contradicts with OpenCL description of clEnqueueMapBuffer: "The behavior of writes by a kernel executing on a device to a mapped region of a memory object is undefined". So I have to map buffers after the kernel execution and to unmap them after finishing using.

My PC is running under regular Windows 10 Pro 64 bit, 24Gb RAM, i7 6700, GPU driver version is 22.20.16.4836. I'm running MSVC 2015 version 14.0.25420.01 Update 3.

I'll be very appreciated for any help.

Regards,
Victor

 

0 Kudos
0 Replies
Reply