- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 :)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Robert,
Thank you very much for your analysis. Can you say anything about the timeframe in which the regression will be solved?
Thanks,
Matthieu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Robert,
Thank you very much for you analysis. The problem at our side is now solved.
Best regards,
Matthieu
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page