【问题标题】:OpenCL - lightweight enough for static linking?OpenCL - 足够轻量级的静态链接?
【发布时间】:2013-07-02 23:27:40
【问题描述】:

我希望将 OpenCL 库用于需要分发到许多(1000 台)机器的程序。因为程序的大小是一个问题,所以我想知道静态链接 OpenCL 库是否有意义。 OpenCL 的轻量级是否足以满足该应用程序的需求?

【问题讨论】:

  • 嗯,我不认为 OpenCL 是轻量级的。图形驱动程序呢?所有机器都一样吗?
  • 嗯,机器是高度异构的。

标签: static-libraries opencl distributed-computing dynamic-linking


【解决方案1】:

您不能真正静态链接 OpenCL,但是您可以静态链接 OpenCL ICD(可安装客户端驱动程序)。 ICD 将动态加载所有本地可用的 OpenCL 平台。

ICD 实现依赖于操作系统,但运行良好,并得到主要供应商 SDK(AMD、NVIDIA、Intel 等)的支持。感谢 ICD,您可以使用 AMD SDK 编译二进制文件,但同样的二进制文件也可以在 NVIDIA 和 Intel OpenCL 上运行。

ICD 对您的问题也应该非常有用,因为二进制文件只包含非常少量的代码(即仅动态加载本地 OpenCL 平台的代码)。

【讨论】:

  • 什么是ICD?是头文件吗?它是一个库吗?我似乎无法通过谷歌搜索找到获得它的地方
  • ICD(可安装的客户端驱动程序:khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt)。您只需使用主要供应商 SDK 之一(如 AMD、NVIDIA 或 Intel 提供的 SDK)即可使用此机制并获得上述优势。
猜你喜欢
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
相关资源
最近更新 更多