我有一个带有NVidia显卡的系统,我正在寻找使用openCL替换openMP来处理一些小的CPU任务(感谢VS2010让openMP无用)
由于我安装了NVidia的opencl SDK,clGetPlatformIDs()只返回一个平台(NVidia),因此只返回一个设备(GPU).
我是否还需要安装英特尔的openCL sdk才能访问CPU平台?
CPU平台不应该总是可用 - 我的意思是,你怎么没有CPU?
你如何设法同时构建两个openCL SDK?
您需要一个提供CPU接口的SDK.nVidia没有,AMD和英特尔的SDK都可以; 在我的情况下,英特尔的显着速度(大约10倍)更快,这可能是由于我的编程不好.
您不需要SDK来运行程序,只需要运行时.在Linux中,每个供应商都安装一个文件/etc/OpenCL/vendors/*.icd,其中包含要使用的运行时库的路径.这是由您链接到的OpenCL运行时扫描的(libOpenCL.so),然后在查询该特定平台上的设备时调用每个供应商的库.
在Linux中,GPU驱动程序自动安装OpenCL运行时,英特尔运行时可能可以从SDK单独下载,但当然也是SDK的一部分.
| 归档时间: |
|
| 查看次数: |
7008 次 |
| 最近记录: |