Stu*_*der 5 nvidia 10.10 programming intel opencl
我有一台带有 Ubuntu 10.10 和 Nvidia GTX 480 显卡的双 Xeon 机器,我想在 CPU 和 GPU 上使用 OpenCL。
我使用 apt-get 安装了最新的 Nvidia 驱动程序 (nvidia-current),并从 Nvidia 页面下载并安装了最新的 CUDA Toolkit (3.2)。
但这让我只能在 Nvidia GPU 上运行 OpenCL 代码,而不能在 CPU 上运行。
然后我在网上看了一些文章,说ATI SDK 能够在CPU 上运行OpenCL 代码。
我安装了最新版本的 ATI 驱动程序,然后尝试编译 SDK。
然后我就可以在 CPU 上运行代码,但不能再在 GPU 上运行了。
有没有办法在 Nvidia GPU 和 Xeon CPU 上运行 OpenCL 代码?
Nvidia CUDA 和 ATI Stream OpenCL 实现都支持 Khronos ICD 扩展,因此当您调用 clGetPlatformIDs 时,您将获得两个不同的平台,因此您可以在这些平台上查询 CPU/GPU 设备,当然 ATI 平台将返回 CPU device 和 Nvidia 平台将返回 GPU 设备。
然后您可以在这些设备上创建命令队列并启动内核。当然,这意味着在 GPU 和 CPU 之间共享任务并不是一件容易的事,但至少在您的应用程序中拥有一个从 CPU 切换到 GPU 的按钮会很容易做到。