【问题标题】:How can I test for OpenCL compatibility?如何测试 OpenCL 兼容性?
【发布时间】:2011-12-15 03:07:58
【问题描述】:

我有一台配备集成 Intel HD 3000 和 i7 内核的 MacBook Pro 13'。
我必须使用并行编程。

我的教学顾问无法告诉我它是否适用于我的 MacBook。

是否可以在我的笔记本电脑上运行测试以进行测试? + 我找到了这个,但只有 Linux 和 Windows SDK……也许 Linux 版本也适用于 Mac。

我该怎么办?

【问题讨论】:

    标签: macos opencl gpu osx-lion


    【解决方案1】:

    我在 macbook air 2011 上测试了 OpenCL,它有一个 Core i5-2467M。我可以告诉你,苹果公司的 OpenCL 实现在 CPU 上不能正常工作,只能在 GPU 上工作。最大的问题是当您将工作组大小设置为大于 1 时。

    【讨论】:

    • 我迷路了:它在 GPU 上是否有效?我到处都在读 Intel HD 3000 不支持 openCL ...
    【解决方案2】:

    vocaro 的回答是绝对正确的;您可以始终在 Snow Leopard 和 Lion 上使用 CPU 计算设备,即使您的特定图形芯片不支持 OpenCL。

    以下程序将向您展示给定 Macintosh 上支持 OpenCL 的设备:

    // clang -framework OpenCL dumpcl.c -o dumpcl && ./dumpcl
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <OpenCL/opencl.h>
    
    int main(int argc, char* const argv[]) {
        cl_uint num_devices, i;
        clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices);
    
        cl_device_id* devices = calloc(sizeof(cl_device_id), num_devices);
        clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, num_devices, devices, NULL);
    
        char buf[128];
        for (i = 0; i < num_devices; i++) {
            clGetDeviceInfo(devices[i], CL_DEVICE_NAME, 128, buf, NULL);
            fprintf(stdout, "Device %s supports ", buf);
    
            clGetDeviceInfo(devices[i], CL_DEVICE_VERSION, 128, buf, NULL);
            fprintf(stdout, "%s\n", buf);
        }
    
        free(devices);
    }
    

    在我的 Macbook 上,这给出了:

    Device Intel(R) Core(TM) i7-2635QM CPU @ 2.00GHz supports OpenCL 1.1 
    Device ATI Radeon HD 6490M supports OpenCL 1.1 
    

    您可以使用此程序作为起点询问其他设备信息。 clGetDeviceInfo 的 Khronos API 参考应该很有用。

    【讨论】:

    • 这是否与 OSX 10.9 冲突?当我运行它时,我得到:dumpcl.c:1:10: fatal error: 'stdio.h' file not found
    • 没关系,升级后xcode开发工具好像消失了,你可以通过运行触发重新安装:xcode-select --install
    • @user1876508 在 Linux 上,您必须将 &lt;OpenCL/...&gt; 替换为 &lt;CL/...&gt; 并将 -framework OpenCL 替换为 -lOpenCL。当然,您必须同时安装库和 ICD。
    【解决方案3】:

    您可以使用 Apple 随 OS X Snow Leopard 和 Lion 一起提供的内置 OpenCL 平台。遵循本指南:

    http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/

    请注意,它不适用于 Intel HD 3000 GPU,只能在 CPU 上运行。

    【讨论】:

    • 我喜欢 Apple 如何创建 OpenCL,使其成为开放标准,然后基本上让他们对它的支持减少。他们总体支持的最新 OpenCL 是 1.2,截至今天(2017 年)已经超过 3 年。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2011-10-28
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多