具有私有(private)全局内核方法的 C++ 类

标签 c++ class cuda global

关于我在链接和多个定义的函数方面遇到的另一个问题,我想简单地将我的 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/

相关文章:

c++ - 具有复制分配的不同对象容器之间的自动化

c++ - 显式加载 DLL

添加时克隆元素的Java列表

java - 如何调用其他类(class)的名单?

c++ - 在Mysql C++ Connector中批量插入

c++ - 在 C++ 中使用嵌套 vector

c++ - CUDA 中的复杂算术

c - cuda共享内存静态分配错误

c++ - 调整 std::vector<std::atomic bool> 的大小,将 true 分配给所有原子书

cuda - 在一个 GPU 上运行多个 CUDA 应用程序