我想在 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/