我通过一些教程来优化使用二进制文件的内核调用。我提到了下面的链接,
http://www.fixstars.com/en/opencl/book/OpenCLProgrammingBook/online-offline-compilation/
有人提到,如果我们使用二进制文件,我们就不必构建创建的程序。我试过了。但它并没有像它提到的那样起作用。当我插入" clBuildProgram(程序,0,NULL,NULL,NULL,NULL)"在从二进制文件创建程序的行之后,该程序可以正常工作。
我也经历过其他参考文献。其中一些人提到我们必须插入" build"在那里。我还浏览了本网站的所有相关问题。但我无法对此有任何明确的想法。
我觉得如果我们真的避免了#34; build"部分,我们可以减少执行所需的时间。
如果我们必须使用" build"部分,那么我的另一个问题是使用二进制而不是源的好处是什么。
提前致谢。
答案 0 :(得分:2)
规范是你的朋友。 https://www.khronos.org/registry/cl/specs/opencl-1.2.pdf
。必须调用clBuildProgram 对于使用clCreateProgramWithSource或创建的程序 clCreateProgramWithBinary用于为一个或多个设备构建程序可执行文件 与计划相关联。
因此,明确表示即使使用二进制程序也必须调用构建程序。
在大多数情况下,二进制程序的构建程序比文本程序的构建程序更快。因此,边际速度有利。