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.

HD4400 clEnqueueCopyBufferRect issue?

Vladimir_D_Intel1
787 Views

Hello,

we've detected suspicious behaviour of clEnqueueWriteBufferRect/clEnqueueCopyBufferRect functions which is demonstrated with simple test case attached. The test case depends on OpenCL API only. This work correctly on AMD Tahiti but not on Intel HD4400, HD4600.
 
The problem is in copying rectangle of interest with some specific parameters from whole image, which is kept in cl buffer.
 
The short description of test case:
1. create opencl buffer for whole image (not initialized)
2. copy to this buffer data a from aligned host memory rectangle with some specific parameters (using clEnqueueWriteBufferRect)
3. create opencl buffer for size of rectangle used on previous step (not initialized)
4. copy gpu data for the rectangle from whole image cl buffer to this rectangle-only cl buffer (using clEnqueueCopyBufferRect)
5. map rectangle-only cl buffer to host memory
6. compare content of original host data for rectangle with content of this mapped memory. It is expected to be exactly the same but it is not on our environment (HD4400).
 
Below is sample output
 
on AMD system:
 
C:\project\vdudnik\iocl-bug\build\Debug>iocl-bug.exe
AMD Accelerated Parallel Processing
OpenCL 1.2 AMD-APP (1445.5)
Advanced Micro Devices, Inc.
Tahiti
no mismatch found, test PASSED
 
on Intel system:
C:\dev\iocl-bug\build\Debug>iocl-bug.exe
Intel(R) OpenCL
OpenCL 1.2
Intel(R) Corporation
Intel(R) HD Graphics 4400
detetcted mismatch: [ 0 X 1 ], expected = 4, actual = 55
detetcted mismatch: [ 1 X 1 ], expected = 4, actual = 55
detetcted mismatch: [ 2 X 1 ], expected = 4, actual = 55
detetcted mismatch: [ 3 X 1 ], expected = 4, actual = 55
detetcted mismatch: [ 4 X 1 ], expected = 4, actual = 55
detetcted mismatch: [ 0 X 2 ], expected = 4, actual = 55
detetcted mismatch: [ 1 X 2 ], expected = 4, actual = 55
detetcted mismatch: [ 2 X 2 ], expected = 4, actual = 55
detetcted mismatch: [ 3 X 2 ], expected = 4, actual = 55
detetcted mismatch: [ 4 X 2 ], expected = 4, actual = 55
detetcted mismatch: [ 5 X 2 ], expected = 4, actual = 55
detetcted mismatch: [ 6 X 2 ], expected = 4, actual = 0
detetcted mismatch: [ 7 X 2 ], expected = 4, actual = 0
show only few first mismatches.., test FAILED
 
To build this test case CMake 3.1+ is required.

 

Regards,
  Vladimir

0 Kudos
4 Replies
Robert_I_Intel
Employee
787 Views

Hi Vladimir,

Before I attempt to reproduce this, couple of questions:

1. What OS version are you using?

2. What version of the graphics driver are you using?

0 Kudos
Vladimir_D_Intel1
787 Views

Hi Robert,

We've used Windows 7 Service Pack 1, x64

Video driver version is 10.18.14.4139 WHQL Win7 64

Regards,
  Vladimir
 

0 Kudos
Robert_I_Intel
Employee
787 Views

Hi Vladimir,

I just reproduced your problem on a newer driver and OS. I will take a closer look at the code and file a bug if there is an issue on our side. Thank you for reporting this problem!

0 Kudos
Vladimir_D_Intel1
787 Views

Ok, thanks.

0 Kudos
Reply