【问题标题】:OpenCL: Shared library with offline compilation of the kernes, is it possible?OpenCL:具有内核离线编译的共享库,有可能吗?
【发布时间】:2018-11-23 07:12:26
【问题描述】:

如果question,我的问题也是类似的。但是,我想要的是编译一个由 OpenCL 内核利用的shared library,这些内核是为同一个视频卡离线编译的。是否可以?为内核保存二进制文件有哪些注意事项? Makefile 有哪些注意事项?一个简单的例子将不胜感激。

【问题讨论】:

    标签: c makefile shared-libraries opencl


    【解决方案1】:

    这是可能的。

    1. 您需要编写一个简单的程序来创建二进制文件,然后将其转储到二进制文件中,或者如果您选择的 OpenCL SDK 提供了离线编译器,则需要使用离线编译器。

    2. 按照本手册将二进制文件嵌入到您的共享库中:https://csl.name/post/embedding-binary-data/

    3. 在您的共享库中使用 clCreateProgramWithBinary() 与嵌入的数据对象。

    对于 Makefile,您可以使用离线编译器或自写的二进制生成器添加目标以根据 kernel.cl 源文件创建 kernel.bin。然后将kernel.bin 作为依赖添加到您的共享库目标。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 2011-01-09
      相关资源
      最近更新 更多