我有一個集成英特爾HD 3000和i7核心的MacBook Pro 13'。
我必須使用並行編程。我該如何測試OpenCL的可兼容性?
我的教學顧問不能告訴我它是否適用於我的MacBook。
有沒有測試我可以在我的筆記本電腦上運行測試? +我發現這個,但只有Linux和Windows SDK ...也許Linux版本也適用於Mac。
我該怎麼辦?
我有一個集成英特爾HD 3000和i7核心的MacBook Pro 13'。
我必須使用並行編程。我該如何測試OpenCL的可兼容性?
我的教學顧問不能告訴我它是否適用於我的MacBook。
有沒有測試我可以在我的筆記本電腦上運行測試? +我發現這個,但只有Linux和Windows SDK ...也許Linux版本也適用於Mac。
我該怎麼辦?
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應該是有用的。
您可以使用Apple OS X Snow Leopard和Lion附帶的內置OpenCL平臺。按照本指南:
http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/
注意,它不會對英特爾HD 3000 GPU正常工作,只有CPU。
我喜歡蘋果公司如何創建OpenCL,使其成爲開放標準,然後基本上讓他們的支持減少。他們支持的最新OpenCL是1.2,這是今天(2017)超過3年。 :( – Entalpi
我已經在MacBook Air 2011上測試過OpenCL,它有一個Core i5-2467M。而且我可以告訴你,由蘋果公司實施的OpenCL實施方式,在CPU上只能在GPU上正常工作。最大的問題是當你設置的工作組大小大於1.
我迷路了:它在GPU上工作還是不工作?我在任何地方閱讀,Intel HD 3000不支持openCL ... –
這是否也與linux的工作? – user1876508
這與OSX 10.9打破嗎?當我運行這個我得到:dumpcl.c:1:10:致命錯誤:'stdio.h'文件沒有找到 – deweydb
沒關係,似乎是升級後xcode開發工具會消失,您可以運行以下命令來重新安裝: xcode-select --install – deweydb