如何在 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
文件夹中。
我正在同一个 .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
文件夹中。