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.

State of Headless Mode HD Graphics OpenCL

Florian_H_1
Beginner
2,693 Views

Hi,

What's the current (driver) state of accessing the compute capabilities of the an integrated HD graphics processor with OpenCL when there is NO display connected? I do not see the my HD 4000 when the display is connected to the discreet GPU.  

Driver version: 10.18.10.4252

Is there any software hack to this (not the dummy plug solution) ?

Thanks,

Florian

0 Kudos
1 Solution
Robert_I_Intel
Employee
2,605 Views

Yes, looks like an Ivy Bridge bug. I'll try to get driver folks to fix this.

View solution in original post

0 Kudos
28 Replies
Robert_I_Intel
Employee
2,331 Views

Florian,

Couple of questions:

1. Could you try the latest and greatest 4276 driver?

2. Which operating system are you trying it on? My understanding is that you will only be able to use headless mode on Windows 8 or above.

0 Kudos
Sean_S_3
Beginner
2,331 Views

Although I'm developing on an integrated Intel GPU with a display attached, I was hoping to deploy on headless cloud servers running CentOS 7.1.  Can you update the documentation to highlight this current limitation if it indeed exists, and comment on any timeline on when the support would be available?  I unfortunately took this for granted since other GPU vendors I've used can run headless.  Thanks!

0 Kudos
Florian_H_1
Beginner
2,331 Views

Robert,

Well, apparently your recommendation to just updated the driver doesn't help. The documentation below of the latest code builder states that it is not possible. 

Can you escalate this? There are numerous requests for this in this forum over multiple years. 

From: https://software.intel.com/file/458086/download

• OpenCL driver availability on systems with Intel® Processor Graphics and discrete graphics cards (Windows* OS only): o Capabilities of both discrete and integrated graphics are available if display is connected to:  Integrated graphics card display port.  Discrete and integrated graphics cards simultaneously. o Capabilities of a discrete card only are available if display is connected to:  Discrete graphics card display port.  Integrated graphics card, and a discrete graphics card has no display ports. 

0 Kudos
Robert_I_Intel
Employee
2,331 Views

Florian,

Which OS are you running on? Should work on Windows 8 and beyond. Will figure out what the answer is on CentOS 7.1.

0 Kudos
Florian_H_1
Beginner
2,331 Views

I tried with Windows 8, 8.1, and 10.

What makes you think it should work if the documentation states explicitly otherwise?

0 Kudos
Robert_I_Intel
Employee
2,331 Views

Oh, Ok, now I get it: you are asking for a headless operation in the presence of a discrete graphics card.

In the past, I used to connect monitor to discrete graphics, disable it, connect it to integrated graphics so that the driver for it is installed, and then enabled discrete graphics and reconnected display to discrete: the GEN driver remained and so I was able to have access to both discrete graphics and GEN. Let me know if that trick works for you, while I will try to coax a more scalable solution from the driver folks.

0 Kudos
Florian_H_1
Beginner
2,331 Views
No luck with that trick. There needs to be a solution that allows the software to control that, like it is intended for DirectX 12. In Direct X 12, when I query the available devices the Hd4000 does show up and I haven't tried this yet, but I can probably get a context and run compute shaders. However dx12 isn't a really portable solution and not an option. This is what OpenCL was made for. Please let me know if you find anything, registry entries, etc. Something that is redistributable to end users.
0 Kudos
Robert_I_Intel
Employee
2,331 Views

Florian,

I sent a request to driver architect, so hopefully he can clarify it for us. In the meantime, one thing you might try is C++ AMP - it should be optimized for Intel Processor Graphics - I tried it and was really impressed with the performance: in my tests it was comparable to OpenCL. And C++ AMP uses DirectX compute shaders under the hood, so if DirectX works for you, C++ AMP should as well. And C++ AMP should be portable https://bitbucket.org/multicoreware/cppamp-driver-ng/wiki/Home to Linux, though I haven't tried that (we did develop a portable version of C++ AMP internally and it worked nicely on Windows, Linux, Mac and Android - I know since I ported it :)

0 Kudos
Florian_H_1
Beginner
2,331 Views

Robert-

AMP is not an option as it doesn't really support runtime recompile, but thanks for pointing that out.

Any news from the driver guys?

0 Kudos
Robert_I_Intel
Employee
2,331 Views

Florian,

Driver guy is saying things should work right out of the box with Windows 8 (but I suspect that he means it will work on 4th, 5th, or 6th gen chip, and you have 3rd gen - Ivy Bridge, which could be an issue). I need to find a system with both Integrated Graphics and Discrete Graphics internally (I have one 4th gen system in mind) and try it out there. Is it an option to upgrade to 4th gen chip or above?

0 Kudos
Florian_H_1
Beginner
2,331 Views

Unfortunately this isn't just for me running some compute on one machine. I'm basically looking to utilize the integrated intel chips in a game engine just like DirectX 12 is advertising, but without requiring Windows 10 as Microsoft insists on. So the most natural way is to go OpenGL with OpenCL  (while waiting for Vulkan). Requiring a 4th gen+ Intel chip isn't an options as it needs to maximize reach and hw compatibility. The the target I'd like to reach are gaming PCs which typically have both a discrete and an integrated GPU.

Can you ask the drivers guys whether there is a deployable/redistributable software solution for getting this to work?

Thanks.

PS: just tried this: https://github.com/GameTechDev/DX12-Multi-Adapter and I can confirm that both my Nvidia and Hd4000 are found and rendering/computing. This tells me it is NOT a hardware (Ivy Bridge) issue but on the driver (design) level.

0 Kudos
Robert_I_Intel
Employee
2,331 Views

Florian,

I found some 4th gen box with NVidia graphics card on it: the monitor is connected to the card, it runs Win10, and OpenCL sees both Intel's and NVidia's GPUs. So, on your system, you don't see Intel(R) HD Graphics 4000 in the display adapters at all? Or is it disabled somehow? Not sure how to replicate it on my end.

0 Kudos
Florian_H_1
Beginner
2,331 Views

2015-09-22 16_07_04-Cortana_0.png

 

Here you go. Like I said, its full operational with DX12 when the monitor is connected to the NVIDIA card. No luck with OpenCL.

0 Kudos
Robert_I_Intel
Employee
2,331 Views

Florian,

Could you go to this link https://software.intel.com/en-us/forums/opencl/topic/591196 and download Code Builder. Then in Visual Studio (hope you have it) , go to CODE-BUILDER/Platform Info and send me a screenshot of available Intel OpenCL platforms. Should look like this:

code builder platform info.png

0 Kudos
Florian_H_1
Beginner
2,331 Views

2015-09-22 16_21_57-Start Page - Microsoft Visual Studio.png

Robert, thanks for pointing out the steps, but this list (and the device query via API) is were I have already been looking.

Please see attached screenshot.

 

0 Kudos
Robert_I_Intel
Employee
2,606 Views

Yes, looks like an Ivy Bridge bug. I'll try to get driver folks to fix this.

0 Kudos
Florian_H_1
Beginner
2,331 Views

Well that would be fantastic news. Any chance you have an estimate timeframe for a fix? 

0 Kudos
Robert_I_Intel
Employee
2,331 Views

Florian,

If driver folks would identify and fix it today, it could take anywhere from 1 to 2 months until we see it in the production driver. The biggest issue is that this only shows up on 3rd gen processors, while driver folks are busy supporting 5th and 6th gen and actively working on 7th gen driver: in the past I was having a hard time persuading them to fix issues with drivers on older chips.

0 Kudos
Florian_H_1
Beginner
2,331 Views

Oh well. This would make it useless at least in my case. At this point might as well wait for Vulkan. The while I understand pushing the new products, that HD4000 is a very popular product out on the market: http://store.steampowered.com/hwsurvey/directx/ It seems in fact the number one GPU among all Steam customers.

Would you mind asking them if it would be possible to DIY tweak this issue? I.e.: are there any windows registry or hidden driver options that could force Windows to turn on the display adapter?

0 Kudos
Robert_I_Intel
Employee
1,867 Views

Yes, in fact my work laptop is HD4000 :)

I'll see what I can do: I will be out training people in OpenCL tomorrow. Hopefully, we will get some response by Thursday.

0 Kudos
Reply