我一直在使用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();
}
Run Code Online (Sandbox Code Playgroud)
在cl文件中,我有以下几行:
#include "printer.h"
__kernel void hello()
{
Printer myPrinter;
//myPrinter.print();
}
Run Code Online (Sandbox Code Playgroud)
但是当我在我的cpp程序中构建这个内核文件时,它会带来错误:未知类型名称'class'.我已经阅读了将文章传递给英特尔Opencl中的内核,建议使用SYCL,但是,根据标准和包装器,没有其他方法"更容易"吗?
谢谢你的帮助
这里有三个不同的东西: