OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
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.
1720 Discussions

two similar programs: one finds the gpu, one doesn't.


Hi all,

      I'm having issues after upgrading from to 10.18.14 4206, on Lenovo x240 Haswell machine, Win8 and visual studio 2012 with the matching vc++ compiler 11, debug win32 config.

      The surprising part is that one openCL app doesn't have any issues, while another, that accepts the previous as a DLL, while

     running the same code that supposed to find the GPU devices, doesn't find the GPU. Both ran on the same machine, and the second got broken after installing the latest gfx driver. 
      Here's a small example, which is exactly the same between the two applications:

 vector<cl_platform_id> platform = getClPlatforms(); //a wrapper for clGetPlatformIDs
    bool foundPlatform = ! types.size(); // in case the list is empty we take the first platform

    vector<cl_device_id> devIDFinal;
    for (auto plat : platform)
        cl_char version[256];
        clGetPlatformInfo(plat, CL_PLATFORM_VERSION, sizeof(version), & version, NULL);

        bool typeNotFound = false;

        vector<cl_device_id> devID = getClDevices(plat);


      On the two different rans, "opencl 1.2" version is found, but getClDevices returns different result for that platform.

      I've looked at the libs and dlls being loaded during both runs, and unless I've missed something, all of the headers/libs match.

      Any guess?

      P.S. I'm not sure if related, but One major change between before updating the gfx driver and after is the cpu-only experimental opencl2.0...





0 Kudos
1 Reply


Does Lenovo allow you to install driver from here: or does it force you to install its own custom driver?

Could you please provide both Apps? You could send me a private message.

One possibility is that one of the apps don't see all the DLLs that the other one does. Try to print the environment for both Apps and see if the content of environment variables match. Without some kind of reproducer it is hard to tell what is going on.

0 Kudos