2011-10-25 20 views
13

我有一個集成英特爾HD 3000和i7核心的MacBook Pro 13'。
我必須使用並行編程。我該如何測試OpenCL的可兼容性?

我的教學顧問不能告訴我它是否適用於我的MacBook。

有沒有測試我可以在我的筆記本電腦上運行測試? +我發現這個,但只有Linux和Windows SDK ...也許Linux版本也適用於Mac。

我該怎麼辦?

回答

37

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 

你可以要求使用該另一裝置信息方案作爲出發點。 Khronos API參考clGetDeviceInfo應該是有用的。

+1

這是否也與linux的工作? – user1876508

+0

這與OSX 10.9打破嗎?當我運行這個我得到:dumpcl.c:1:10:致命錯誤:'stdio.h'文件沒有找到 – deweydb

+0

沒關係,似乎是升級後xcode開發工具會消失,您可以運行以下命令來重新安裝: xcode-select --install – deweydb

0

我已經在MacBook Air 2011上測試過OpenCL,它有一個Core i5-2467M。而且我可以告訴你,由蘋果公司實施的OpenCL實施方式,在CPU上只能在GPU上正常工作。最大的問題是當你設置的工作組大小大於1.

+1

我迷路了:它在GPU上工作還是不工作?我在任何地方閱讀,Intel HD 3000不支持openCL ... –