如何在 opencl 内核中正确包含 header

how to include header correctly in the opencl kernel

我正在同一个 .cl 文件中编写一个带有许多辅助函数的 opencl 内核。我想将辅助函数打包到 header 文件中。我阅读了规范,发现我应该在 clCreateProgram 函数调用中传递 -I Dir

到这里我还是一头雾水。当我创建一个 A.h 文件以包含在 .cl 文件中时。我应该创建相应的 A.c 文件还是 A.cl 文件? 如果我创建一个对应的A.c文件,.c文件和.cl文件中的某些例程可能不同,可能导致内核无法直接使用该函数。

你可以有一个头文件并在内核文件中#include。因此,要在 kernel.cl 中包含 file1.h,您需要添加 #include "file1.h" 并且作为构建选项传递 -I. 如果头文件与内核文件位于同一文件夹中,或者即 -I./include 如果在 include 文件夹中。