常春藤桥的IGP可以';OpenCLSDK找不到

常春藤桥的IGP可以';OpenCLSDK找不到,opencl,gpu,intel,Opencl,Gpu,Intel,我已经建立了一个IvyBridge平台来编写OpenCL程序。我的系统是win7 64位,VS2010作为开发工具。我的电脑上有一个带有nVidia GTX560的i7-3770k。当我查询我系统的设备时,我找不到HD4000。我已使用以下网页检查了HD4000的系统驱动程序:。报告称“当前驱动程序安装于8.15.10.2696”。OpenCL SDK是最新的Intel SDK for OpenCL Application 2012 windows 64位版,可从下载。下面是我的代码和输出 我还

我已经建立了一个IvyBridge平台来编写OpenCL程序。我的系统是win7 64位,VS2010作为开发工具。我的电脑上有一个带有nVidia GTX560的i7-3770k。当我查询我系统的设备时,我找不到HD4000。我已使用以下网页检查了HD4000的系统驱动程序:。报告称“当前驱动程序安装于8.15.10.2696”。OpenCL SDK是最新的Intel SDK for OpenCL Application 2012 windows 64位版,可从下载。下面是我的代码和输出

我还注意到CPU的设备名非常奇怪。顺便说一下,我已经将HD4000设备连接到监视器,因为我发现有人遇到了无法创建CL上下文的问题。现在我发现,在我们将显示器连接到HD4000之后,GPU-Z工具可以检测到HD4000。有人能帮我解决这个问题吗

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <CL/cl.h>

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, &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 >= 0; i--)
    {
        clGetPlatformInfo(platforms[i], CL_PLATFORM_NAME, sizeof(plt_name),&plt_name,NULL);
        clGetPlatformInfo(platforms[i], CL_PLATFORM_VENDOR, sizeof(plt_vendor),&plt_vendor,NULL);
        clGetPlatformInfo(platforms[i], CL_PLATFORM_VERSION, sizeof(plt_version),&plt_version,NULL);
        clGetPlatformInfo(platforms[i], CL_PLATFORM_PROFILE, sizeof(plt_profile),&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, &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 < num_devices; j++)
       {
           clGetDeviceInfo(devices_cpu[j], CL_DEVICE_NAME, sizeof(dev_name), &dev_name, NULL);
           clGetDeviceInfo(devices_cpu[j], CL_DEVICE_VENDOR, sizeof(dev_vendor), &dev_vendor, NULL);
           clGetDeviceInfo(devices_cpu[j], CL_DEVICE_VERSION, sizeof(dev_version), &dev_version, NULL);
           clGetDeviceInfo(devices_cpu[j], CL_DEVICE_PROFILE, sizeof(dev_profile), &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, &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 < num_devices; j++)
       {
           clGetDeviceInfo(devices_gpu[j], CL_DEVICE_NAME, sizeof(dev_name), &dev_name, NULL);
           clGetDeviceInfo(devices_gpu[j], CL_DEVICE_VENDOR, sizeof(dev_vendor), &dev_vendor, NULL);
           clGetDeviceInfo(devices_gpu[j], CL_DEVICE_VERSION, sizeof(dev_version), &dev_version, NULL);
           clGetDeviceInfo(devices_gpu[j], CL_DEVICE_PROFILE, sizeof(dev_profile), &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;
}
#包括“stdafx.h”
#包括
#包括
#包括
#包括
int _tmain(int argc,_TCHAR*argv[]
{
cl_平台_id*平台;
cl_uint num_平台;
cl_设备id*设备cpu、*设备gpu;
设备数量;
char dev_name[40]、dev_vendor[40]、dev_version[40]、dev_profile[40];
字符plt_名称[40],plt_供应商[40],plt_版本[40],plt_配置文件[40];
clGetPlatformIDs(1、NULL和num_平台);
平台=(cl_平台id*)malloc(sizeof(cl_平台id)*num_平台);
clGetPlatformIDs(num_平台,platforms,NULL);
对于(int i=num_平台-1;i>=0;i--)
{
clGetPlatformInfo(平台[i]、CL_平台名称、sizeof(plt_名称)和plt_名称,NULL);
clGetPlatformInfo(平台[i]、CL_平台供应商、sizeof(plt_供应商)和plt_供应商,空);
clGetPlatformInfo(平台[i],CL_平台版本,sizeof(plt_版本)和plt_版本,NULL);
clGetPlatformInfo(平台[i]、CL_平台配置文件、sizeof(plt_配置文件)和plt_配置文件,NULL);
printf(“\n\n\n平台#%d信息:\n\n”,i);
printf(“平台:%s\n”,plt\u名称);
printf(“供应商:%s\n”,plt\u供应商);
printf(“版本:%s\n”,plt\u版本);
printf(“配置文件:%s\n”,plt\u配置文件);
CLGetDeviceID(平台[i]、CL\U设备类型\U CPU、1、NULL和num\U设备);
设备cpu=(cl_设备id*)malloc(sizeof(cl_设备id)*num_设备);
CLGetDeviceID(平台[i]、CL\U设备类型\U CPU、num\U设备、设备\U CPU、NULL);
对于(int j=0;j
输出:

平台#1信息: 平台:英特尔(R)OpenCL 供应商:英特尔(R)公司 版本:OpenCL1.1 配置文件:完整配置文件 CPU设备信息: 本204甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲甲Ì英特尔(R)公司 供应商:英特尔(R)公司 版本:OpenCL1.1(构建31360.31441) 配置文件:完整配置文件 平台#0信息: 平台:英伟达CUDA 供应商:英伟达公司 版本:OpenCL 1.1 CUDA 4.2.1 配置文件:完整配置文件 GPU设备信息: 平台:GeForce GTX 560 Ti 供应商:英伟达公司 版本:OpenCL 1.1 CUDA 配置文件:完整配置文件
如果HD4000上没有连接到该卡的显示器,OpenCL将无法工作。 这是我自己在英特尔论坛上的测试和答案


在英特尔论坛上查看这些线程:。

GPU Caps会怎么说?英特尔在Khronos网站上列出了许多符合OpenCL的条目,但它们没有提供与AMD不同的细节。对于我来说,通过displayport将显示器连接到dvi适配器不起作用。使用displayport电缆连接显示器工作正常。我有一个显示器连接到HD4000,它工作正常,GPU-Z看到我的HD4000和我的离散Nvidia Titan黑色,但OpenCL找不到HD4000,是的,像OP一样,我安装了最新的Intel OpenCL SDK(现在已卸载并重新安装4或5次)和最新的驱动程序。。。 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