关于我在链接和多个定义的函数方面遇到的另一个问题,我想简单地将我的 cuda 代码包装在一个单例类中。
一路走来
class Singleton{
public:
__host__ void doSomething();
private:
__global__ void someKernel();
};
显然只能使用 device 方法,上面给出了“内存限定符的无效组合”。我想将我的代码包装在一个类中以获得更结构化的代码,但如果我需要在外部放置每个内核,那将毫无意义。
同样的问题之前在 nvidias 网站上提出过,但没有答案 http://forums.nvidia.com/index.php?showtopic=176623
我也理解 this 指针的问题,但即使是静态方法也不能是全局的。
最佳答案
如果您希望调用代码看起来更有条理,您可以从一个方法中调用您的内核,如果有帮助的话。
关于具有私有(private)全局内核方法的 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8227464/