这是场景:
我有一些类函数必须由一些 C++ 派生的编译器(CUDA nvcc)编译。但是,我需要由常规 C++ 编译器编译类声明。我知道必须在类声明中声明一个类函数。不知道如何绕过这个问题。谢谢!
假设我有一个文件“a.cpp”:
class A
{
private:
int i;
public:
__global__ int f() {return i;}
}
这__global__
意味着需要由其特定编译器编译的 CUDA 内核代码。但是,我需要由常规 C++ 编译器编译“a.cpp”。
我考虑过使用链接到由 CUDA 编译器构建的内核库的包装器。但是,内核需要引用类私有变量(“int i”),我试图避免传递它们。