【发布时间】:2018-11-23 07:12:26
【问题描述】:
如果question,我的问题也是类似的。但是,我想要的是编译一个由 OpenCL 内核利用的shared library,这些内核是为同一个视频卡离线编译的。是否可以?为内核保存二进制文件有哪些注意事项? Makefile 有哪些注意事项?一个简单的例子将不胜感激。
【问题讨论】:
标签: c makefile shared-libraries opencl
如果question,我的问题也是类似的。但是,我想要的是编译一个由 OpenCL 内核利用的shared library,这些内核是为同一个视频卡离线编译的。是否可以?为内核保存二进制文件有哪些注意事项? Makefile 有哪些注意事项?一个简单的例子将不胜感激。
【问题讨论】:
标签: c makefile shared-libraries opencl
这是可能的。
您需要编写一个简单的程序来创建二进制文件,然后将其转储到二进制文件中,或者如果您选择的 OpenCL SDK 提供了离线编译器,则需要使用离线编译器。
按照本手册将二进制文件嵌入到您的共享库中:https://csl.name/post/embedding-binary-data/
在您的共享库中使用 clCreateProgramWithBinary() 与嵌入的数据对象。
对于 Makefile,您可以使用离线编译器或自写的二进制生成器添加目标以根据 kernel.cl 源文件创建 kernel.bin。然后将kernel.bin 作为依赖添加到您的共享库目标。
希望对您有所帮助。
【讨论】: