如何创建 NVIDIA OpenCL 项目

How to create NVIDIA OpenCL project

我想在 Visual Studio 2017 年在 NVIDIA OpenCL 中编写应用程序,但不知道如何为此目的创建项目。

我有来自 NVIDIA (GeForce 940M) 和 Intel (HD Graphics 5500) 的 GPU,并且已经设法打开 运行 Intel OpenCL 示例程序,但它们有将近一千行代码,所以我决定尝试 NVIDIA OpenCL 但不知道如何。在一些论坛上,他们说我应该下载 CUDA 工具包并安装 OpenCL,其他人说我应该下载支持 OpenCL 的驱动程序,但我不知道哪个驱动程序是合适的。我已经从 https://www.nvidia.pl/Download/index.aspx?lang=pl 安装了 CUDA 和驱动程序,但我仍然无法在 Visual Studio 的 OpenCL 中创建 NVIDIA 项目。

OpenCL 运行时已包含在 Nvidia 图形驱动程序中。您只需要 OpenCL C++ header 文件、OpenCL.lib 文件和 Linux 上的 libOpenCL.so 文件。这些都带有 CUDA 工具包,但不需要安装它只是为了获得 9 个必要的文件。

这里是 OpenCL C++ header 文件和来自 CUDA 工具包 10.1 的 lib 文件: https://github.com/ProjectPhysX/OpenCL-Wrapper/tree/master/src/OpenCL

下载 OpenCL 文件夹并将其复制到您的项目源文件夹中。 然后在您的 Visual Studio 项目中,转到“项目属性 -> C/C++ -> 常规 -> 附加包含目录”并添加 C:\path\to\your\project\src\OpenCL\include。然后,在“项目属性 -> 链接器 -> 所有选项 -> 附加依赖项”中添加 OpenCL.lib; 并在“项目属性 -> 链接器 -> 所有选项 -> 附加库目录”中添加 C:\path\to\your\project\src\OpenCL\lib.

最后,在您的 .cpp 源文件中,包含带有 #include <CL/cl.hpp> 的 header。

这也适用于 AMD/Intel GPU 和 CPU。它也适用于 Linux 如果你编译:

g++ *.cpp -o Test.exe -I./OpenCL/include -L./OpenCL/lib -lOpenCL

为了轻松开始使用 OpenCL,我创建了一个包装器,它极大地简化了 OpenCL C++ 绑定并消除了随之而来的整个代码开销。这包括 OpenCL header 和所有 Visual Studio 项目设置;无需额外设置: https://github.com/ProjectPhysX/OpenCL-Wrapper