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

OpenCL driver / INDE issue on Win10

Matthieu_H_
Beginner
381 Views

I have a HP Z230 PC with an integrated Intel HD 4600 GPU.

On this PC with Windows 7 64bit, my OpenCL program runs correctly. After upgrading to Windows 10 64bit, the call to clSetKernelArg fails and returns CL_INVALID_ARG_SIZE. No code changes on my side.

On windows 10, the driver version is 10.18.15.4256. I tried to upgrade to the newest driver version (15.40.4.64.4256). The installation seems to succeed, but installs version 10.18.15.4256 again.

I also installed INDE 2015 update 2. The installer complains that the OpenCL driver is missing or out of date, but gives the option to install INDE anyway, which I did. The command line OpenCL compiler, ioc64, is not working however. It just doesn't produce any output. Using the INDE OpenCL code builder, building the OpenCL kernel produces error message IOC engine exited with code -1073740791.

So the current status is:

  • OpenCL code that runs fine on Win7, does not run on the same hardware on Win10: clSetKernelArg returns CL_INVALID_ARG_SIZE.
  • Trying to install the newest OpenCL driver for the HD 4600 on Win10 just reinstalls the current driver
  • INDE 2015 update 2 does not compile an OpenCL kernel on Win10: it doesn't produce any output using the command line compiler. Using the INDE IDE it produces the error message above.

My suspicion is that there is something not right with the driver. Can anyone confirm that, or point me to another possible cause? Thanks in advance!

0 Kudos
10 Replies
Uri_L_Intel
Employee
381 Views

Hi Matthieu,

We've recently released an updated version of OpenCL Code Builder for INDE 2015 U2 (ver. 5.2) which supposed to fix this issue.

Can you please try to re-download and install INDE U2 and see if you're still getting this error message?

Thanks,

Uri

Matthieu_H_
Beginner
381 Views

Hi Uri,

 

Thanks for your swift reply. I downloaded and installed version 5.2 of the OpenCL Code Builder on a fresh Windows10 Enterprise RTM system (HP Z230 with integrated Intel HD 4600). Again the installer complains about the outdated OpenCL driver. 

Using this I can now indeed compile the OpenCL kernel. That leaves the other two issues:

  • OpenCL code that runs fine on Win7, does not run on the same hardware on Win10: clSetKernelArg returns CL_INVALID_ARG_SIZE.
  • Trying to install the newest OpenCL driver for the HD 4600 on Win10 just reinstalls the current driver

Any ideas on those?

 

Best regards,

Matthieu

Robert_I_Intel
Employee
381 Views

Hi Matthieu,

1. Could you please create a small reproducer and attach it here or send me your code in a private message?

2. You actually have the latest and greatest driver for Win10 installed: 10.18.15.4256 is the same as 15.40.4.64.4256 - pardon our confusing numbering scheme.

 

Matthieu_H_
Beginner
381 Views

Hi Robert,

 

Thanks for your answer. I'll create a small reproducer. In the meantime, find the sequence of openCL calls below. Maybe that already gives you some relevant information:

clCreateContext()
clCreateCommandQueue()
clCreateProgramWithBinary()
clBuildProgram()
clCreateBuffer()
clEnqueueWriteBuffer()
clCreateKernel()
clSetKernelArg()

 

Regards,
Matthieu
 

Matthieu_H_
Beginner
381 Views

Hi Robert,

 

The attached sample reproduces the CL_INVALID_ARG_SIZE on Win10, while on WIn7 returning without errors. See line 675 in openclSample.cpp.

Looking forward to your analysis!

 

Best regards,
Matthieu

Robert_I_Intel
Employee
381 Views

Matthieu,

This is a bug: when I replace __constant with __global, things work again. This is a regression in the compiler. I will notify the driver team. Thanks for reporting!

Robert_I_Intel
Employee
381 Views

Matthieu,

Apparently, the limit on the size of the constant buffer is 64Kb. The issue goes away if your buffer that you feed to constant parameter is 64K or less. Just learned this one too :)

Matthieu_H_
Beginner
381 Views

Robert,

Thank you very much for your analysis. Can you say anything about the timeframe in which the regression will be solved?

 

Thanks,

Matthieu

Robert_I_Intel
Employee
381 Views

Hi Matthieu,

Apparently, this is not the regression: this is part of the specification. See this discussion: https://www.khronos.org/message_boards/showthread.php/9192-Const-memory-and-buffer-size-in-openCL

Matthieu_H_
Beginner
381 Views

Hi Robert,

 

Thank you very much for you analysis. The problem at our side is now solved.

 

 

Best regards,

Matthieu

Reply