Note that there are some explanatory texts on larger screens.

plurals
  1. POIGP of Ivy bridge can't be found by OpenCL SDK
    primarykey
    data
    text
    <p>I have set up a IvyBridge platform for coding OpenCL program. My system is win7 64-bit, VS2010 as developement tools. There is one i7-3770k with a nVidia GTX560 on my PC. When I queried the devices of my system, I cann't find HD4000. I have checked my system driver for HD4000 by using this webpage: <a href="http://www.intel.com/p/en_US/support/detect/graphics" rel="nofollow">http://www.intel.com/p/en_US/support/detect/graphics</a>. The report said "Current Driver Installed 8.15.10.2696". OpenCL SDK is the latest Intel SDK for OpenCL Application 2012 windows 64-bit downloaded from <a href="http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/" rel="nofollow">http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/</a>. The following is my code and the output. </p> <p>I also noticed that the device name of CPU is very strange. By the way, I have connected the HD4000 device to a monitor since I found someone met the issue that failed to create a CL context. And now I can find HD4000 can be detected by GPU-Z tool after we connected a monitor to HD4000. So anyone can help me solve this problem? </p> <pre><code>#include "stdafx.h" #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;CL/cl.h&gt; int _tmain(int argc, _TCHAR* argv[]) { cl_platform_id *platforms; cl_uint num_platforms; cl_device_id *devices_cpu, *devices_gpu; cl_uint num_devices; char dev_name[40], dev_vendor[40], dev_version[40], dev_profile[40]; char plt_name[40], plt_vendor[40], plt_version[40], plt_profile[40]; clGetPlatformIDs(1, NULL, &amp;num_platforms); platforms = (cl_platform_id*) malloc(sizeof(cl_platform_id) * num_platforms); clGetPlatformIDs(num_platforms, platforms, NULL); for(int i = num_platforms - 1; i &gt;= 0; i--) { clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME, sizeof(plt_name),&amp;plt_name,NULL); clGetPlatformInfo(platforms[i], CL_PLATFORM_VENDOR, sizeof(plt_vendor),&amp;plt_vendor,NULL); clGetPlatformInfo(platforms[i], CL_PLATFORM_VERSION, sizeof(plt_version),&amp;plt_version,NULL); clGetPlatformInfo(platforms[i], CL_PLATFORM_PROFILE, sizeof(plt_profile),&amp;plt_profile,NULL); printf("\n\n\nPlatform #%d Info: \n\n", i); printf("Platform: %s \n", plt_name); printf("Vendor: %s \n", plt_vendor); printf("Version: %s \n", plt_version); printf("Profile: %s \n", plt_profile); clGetDeviceIDs(platforms[i],CL_DEVICE_TYPE_CPU, 1, NULL, &amp;num_devices); devices_cpu = (cl_device_id *)malloc(sizeof(cl_device_id) * num_devices); clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_CPU, num_devices, devices_cpu, NULL); for(int j = 0 ; j &lt; num_devices; j++) { clGetDeviceInfo(devices_cpu[j], CL_DEVICE_NAME, sizeof(dev_name), &amp;dev_name, NULL); clGetDeviceInfo(devices_cpu[j], CL_DEVICE_VENDOR, sizeof(dev_vendor), &amp;dev_vendor, NULL); clGetDeviceInfo(devices_cpu[j], CL_DEVICE_VERSION, sizeof(dev_version), &amp;dev_version, NULL); clGetDeviceInfo(devices_cpu[j], CL_DEVICE_PROFILE, sizeof(dev_profile), &amp;dev_profile, NULL); printf("\n\n\nCPU Device Info: \n\n"); printf("Name: %s \n", dev_name); printf("Vendor: %s \n", dev_vendor); printf("Version: %s \n", dev_version); printf("Profile: %s \n", dev_profile); } clGetDeviceIDs(platforms[i],CL_DEVICE_TYPE_GPU, 1, NULL, &amp;num_devices); devices_gpu = (cl_device_id *)malloc(sizeof(cl_device_id) * num_devices); clGetDeviceIDs(platforms[i],CL_DEVICE_TYPE_GPU, num_devices, devices_gpu, NULL); for(int j = 0; j &lt; num_devices; j++) { clGetDeviceInfo(devices_gpu[j], CL_DEVICE_NAME, sizeof(dev_name), &amp;dev_name, NULL); clGetDeviceInfo(devices_gpu[j], CL_DEVICE_VENDOR, sizeof(dev_vendor), &amp;dev_vendor, NULL); clGetDeviceInfo(devices_gpu[j], CL_DEVICE_VERSION, sizeof(dev_version), &amp;dev_version, NULL); clGetDeviceInfo(devices_gpu[j], CL_DEVICE_PROFILE, sizeof(dev_profile), &amp;dev_profile, NULL); printf("\n\n\nGPU Device Info: \n\n"); printf("Platform: %s \n", dev_name); printf("Vendor: %s \n", dev_vendor); printf("Version: %s \n", dev_version); printf("Profile: %s \n", dev_profile); } free((void*)devices_cpu); free((void*)devices_gpu); } return 0; } </code></pre> <p>output: </p> <blockquote> <pre>Platform #1 Info: Platform: Intel(R) OpenCL Vendor: Intel(R) Corporation Version: OpenCL 1.1 Profile: FULL_PROFILE CPU Device Info: Name: ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌIntel(R) Corporation Vendor: Intel(R) Corporation Version: OpenCL 1.1 (Build 31360.31441) Profile: FULL_PROFILE Platform #0 Info: Platform: NVIDIA CUDA Vendor: NVIDIA Corporation Version: OpenCL 1.1 CUDA 4.2.1 Profile: FULL_PROFILE GPU Device Info: Platform: GeForce GTX 560 Ti Vendor: NVIDIA Corporation Version: OpenCL 1.1 CUDA Profile: FULL_PROFILE </pre> </blockquote>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload