OpenCL 找到平台,但无法打开它们

Posted

技术标签:

【中文标题】OpenCL 找到平台,但无法打开它们【英文标题】:OpenCL finds platform, but cannot open them 【发布时间】:2017-07-14 20:36:53 【问题描述】:

我目前使用的是联想 Yoga 510,它使用 AMD Radon R5 显卡。 OpenCL 可以使用它,但是,当我运行我的代码来查询和获取平台详细信息时,会返回可用平台的总数,但如果给出了无法打开该平台的错误。请参阅下面的错误消息。

错误:无法在运行时打开平台键 SOFTWARE\Intel\OpenCL\Boards 以加载板库。 在编译主机代码时链接到板库,或者参考板供应商的文档,了解如何安装板库以便在运行时加载它。

无法关闭平台键(null),忽略 警告:找不到任何英特尔(R) FPGA 板库。 不会加载任何英特尔(R) FPGA 设备。 请联系您的电路板供应商或参阅编程指南的“将您的主机应用程序链接到 Khronos ICD 加载程序库”部分以手动设置 FCD。

找到2个平台

在下面查看我的代码

[INCLUDE STATEMENTS] 

int main() 

    cl_int returned;
    cl_int zero = (cl_int)0;

    //SET-UP DEVICE EXECUTION ENVIRONMENT
    cl_uint no_of_platforms;
    //cl_uint no_of_entries;
    cl_platform_id* platforms;
    size_t device_info_val_size;
    char* detail;

    //1. Query and select the vendor specific platform
    returned = clGetPlatformIDs(zero, NULL, &no_of_platforms);
    if (returned == CL_SUCCESS) 
        printf("%d PLATFORM(s) FOUND \n", no_of_platforms);
    
    else 
        printf("No Platform Found\n");
        return EXIT_FAILURE; //Terminante programme
    

    platforms = (cl_platform_id*)malloc(sizeof(cl_platform_id) * no_of_platforms); //create enough space to put platofrm IDs into
    clGetPlatformIDs(no_of_platforms, platforms, NULL); //Fill in platform with their ID


    free(platforms);
    return 0;

任何想法我可能做错了什么或设置错误?我想知道为什么它在我的 Radon 显卡上寻找英特尔 FPGA

【问题讨论】:

你从哪里得到这些错误信息?此程序中唯一的文本输出是 printf("%d PLATFORM(s) FOUND \n", no_of_platforms);printf("No Platform Found\n"); 语句,并且 OpenCL API 不会将信息转储到控制台,除非明确指示这样做。 @Xirema 这就是我在 Visual Studio 中运行调试器时控制台上显示的内容。我也不知道错误消息来自哪里,但我想它应该是 OpenCL 库内部的东西 【参考方案1】:

根据您提供的信息,听起来 OpenCL ICD(可安装客户端驱动程序)配置不正确。这可能是由多种因素(独立)引起的:

旧的/过时的图形驱动程序 系统更新/注册表编辑造成的损坏

最可靠的建议是更新(或者,作为最后的手段,重新安装)您的图形驱动程序。除非您的 GPU/iGPU 太旧而无法使用可用的 OpenCL 驱动程序,否则应该正确设置所有内容。

由于您使用的是 MSVC,我还建议您下载 Intel(或 AMD,如果这是 AMD CPU)提供的 OpenCL SDK,因为这不仅可以确保您拥有最新的-与 OpenCL 相关的日期标头和实用程序,它还为 OpenCL 安装 CPU ICD,为您提供额外的测试平台。

【讨论】:

我的主要问题是。在过去的几周里,我使用我的计算机为英特尔 FPGA 编译了一个 OpenCL 应用程序。但是现在,我只是尝试使用我的 AMD Radon 显卡而不是 FPGA,然而,Visual Studio 仍在寻找未连接的 FPGA。我认为这只是我需要正确重定向的东西。如果您有任何想法,请告诉我 当我转到此注册表位置 [HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors] 时,我发现“alteracl_icd.dll”=dword:00000000 和“C:\WINDOWS\System32” \DriverStore\FileRepository\c0313745.inf_amd64_133311ca362c9cc6\amdocl64.dll" = dword:00000000 但我认为 Visual Studio 正在尝试使用英特尔 Altera icd。我应该怎么做才能解决这个问题?

以上是关于OpenCL 找到平台,但无法打开它们的主要内容,如果未能解决你的问题,请参考以下文章

无法打开某些活动 java 文件

错误 LNK1104:无法打开文件 'aocl_utils.lib'

FileLock 以防止删除文件但我无法打开它

企业版管理工具无法打开

如何创建 NVIDIA OpenCL 项目

无法在 GeForce 540M 上运行 CUDA 或 OpenCL