OpenCL 同时用于 Intel CPU 和 Nvidia GPU

Posted

技术标签:

【中文标题】OpenCL 同时用于 Intel CPU 和 Nvidia GPU【英文标题】:OpenCL for Intel CPU and Nvidia GPU simultaneously 【发布时间】:2018-07-21 17:05:32 【问题描述】:

我正在尝试开始使用一些 OpenCL 编码。

我已经在我的计算机上安装了 NVidia CUDA OpenCL,并成功构建了一个简单的“Hello World!”使用 Visual Studio 2017 的应用程序。

我还安装了英特尔 OpenCL SDK(安装警告我需要更新我的 OpenCL 驱动程序,但英特尔更新管理器告诉我一切都是最新的,所以我不确定这是否是一个问题)。

现在每当我在我的 PC 上查询 OpenCL 平台时,都是这样:

std::vector< cl::Platform > platformList;
cl::Platform::get(&platformList);

我只拿回了我的 nVidia openCL 平台,我的 GPU 作为唯一的设备。我的 CPU 没有得到任何回报。

有人可以帮忙吗?是否可以在同一个项目中同时执行 CPU 和 GPU OpenCL 计算(在不同的 OpenCL 上下文中?我该怎么做?

【问题讨论】:

您似乎是从 nVidia 链接 OpenCL.dll,这可能是原因吗?请尝试从 Intel 链接 dll。 你的 CPU 型号是什么? CPU 是 i7-7700k。我尝试使用 Intel sdk 中的 Intel 包含和 OpenCL.lib,但只得到 GPU。 【参考方案1】:

似乎没有正确安装 Intel GPU 驱动程序。您可以改为安装仅 CPU 的软件包: https://software.intel.com/en-us/articles/opencl-drivers#latest_CPU_runtime

【讨论】:

以上是关于OpenCL 同时用于 Intel CPU 和 Nvidia GPU的主要内容,如果未能解决你的问题,请参考以下文章

为啥相同的 OpenCL 代码从 Intel Xeon CPU 和 NVIDIA GTX 1080 Ti GPU 具有不同的输出?

如何让 OpenCl 看到 intel 和 nvidia 设备?

如何创建 NVIDIA OpenCL 项目

一台机器上的 OpenCL Nvidia 和 Intel 平台

在 Linux 中的多个平台上启用 OpenCL?如何处理 ICD 文件?

OpenCL现在都支持哪些并行设备