我一直在使用OpenCL 1.2,而我遇到了OpenCL C ++ Wrapper API(https://www.khronos.org/registry/OpenCL/specs/opencl-cplusplus-1.2.pdf)的问题。
它没有说明在kerenel(cl)文件中包含类“class MyClass”的任何限制,我认为它是可能的,因为Platform,Device和Context是“Classes”(如果不是,那是什么它的客观性呢?X_X)
好吧,我在“ printer.h ”文件中有以下简单类:
class Printer{
public:
void print();
}
在 cl 文件中,我有以下几行:
#include "printer.h"
__kernel void hello()
{
Printer myPrinter;
//myPrinter.print();
}
但是当我在我的cpp程序中构建这个内核文件时,会出现错误:未知类型名称'class'。我已经阅读了建议使用SYCL的帖子Passing Class to a Kernel in Intel Opencl,但是,根据标准和包装器,没有其他方法“更容易”吗?
感谢您的帮助
答案 0 :(得分:7)
这里有三个不同的东西: