【问题标题】:Configure OpenCL under Cygwin?Cygwin下配置OpenCL?
【发布时间】:2014-04-19 17:44:32
【问题描述】:

如何在 Cygwin 下安装 OpenCL 驱动程序?

例如,Linux 下的 OpenCL 通常会检查 /etc/OpenCL/vendors 列表中是否有指向 ICD 驱动程序的链接(例如在 Linux 上,nvidia.icd 引用 libnvidia-opencl.so.1),但由于 Cygwin 没有任何Nvidia 或 OpenCL 包,我假设我必须手动设置链接。

我确实在同一台机器上安装了 Windows Nvidia CUDA 开发工具包,但其中一个文件是否应该是要链接的文件并不明显。

[请注意,我已经从 coprthr 构建了 OpenCL 加载器实现 libopencl.a,因此该部分已完成 - 它只是弄清楚如何引用 ICD]

【问题讨论】:

    标签: cygwin opencl nvidia


    【解决方案1】:

    要在 Windows 上使用 Cygwin 或 MinGW 编译 C/C++ OpenCL 程序,您需要:

    • 确保 OpenCL 标头位于包含路径中。您可以下载它们here
    • 链接到您已有的静态 OpenCL 库 (libopencl.a)。

    要运行程序,它需要找到动态 OpenCL 库 DLL。 NVidia 驱动程序通常安装在 C:\Windows\System32。

    这对我有用。

    【讨论】:

    • 是的,这行得通:只需创建一个名为 /etc/OpenCL/vendors/nvidia.icd 的文本文件,其内容为 /cygdrive/c/Windows/System32/nvopencl.dll
    • 与 AMD 卡类似,创建一个名为 /etc/OpenCL/vendors/amd.icd 的文本文件,内容为 /cygdrive/c/Windows/System32/amdocl64.dll
    • 你是如何设置静态库的?
    • @RonanTarikDrevon,请更具体一些。
    • @faken 我实际上是在 sourceforge 上下载的,因为我不熟悉在 cygwin 上为 Windows 可执行文件创建静态库,但很乐意了解它