c++ - 如何创建 NVIDIA OpenCL 项目

标签 c++ visual-studio opencl nvidia

我想在 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++ 头文件,OpenCL.lib文件,在 Linux 上也是 libOpenCL.so文件。它们随 CUDA 工具包一起提供,但无需安装它即可获得 9 个必需的文件。

以下是来自 CUDA 工具包 10.1 的 OpenCL C++ 头文件和 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> .

这也适用于 AMD/Intel GPU 和 CPU。如果你编译的话,它也可以在 Linux 上运行:

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

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

关于c++ - 如何创建 NVIDIA OpenCL 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56858213/

相关文章:

c++ - 当我从 map 中删除条目时, `map::iterator` 会发生什么情况?

c++ - boost 线程中的内存泄漏?

c - 仅当我对最近添加的头文件进行函数调用时链接器错误

cuda - 用于计算邻居列表的最佳 GPU 算法

c# - Opencl 内核缓冲区在 12k 浮点元素后泄漏

用于十进制和任意基数之间转换的 C++ 模板

c++ - 制作一棵n个 child 的树来存储计算机的目录

c++ - 如何使 armadillo-5.200.1(+openblas 或 lapacke)与 visual studio 2010 一起工作?

c++ - 在 C++ 项目中使用 C DLL

assembly - OpenCL 在线编译:从 cl::program 或 cl::kernel 获取程序集