cuda头文件.cuh私有主机功能

时间:2011-10-06 16:15:59

标签: cuda

在cuda中我们可以创建扩展名为.cuh的头文件,我们可以从任何地方调用这些函数,

   __device__ void doSomething()
  {
    ....................
  }

  void doSomthingOnHost()
  {
    ....................
  }

这两个功能都是公开的。如何将主机功能设为私有?

2 个答案:

答案 0 :(得分:5)

我发现最适合我的是

  1. 使用我的CUDA内核,他们的公共C / C ++包装器以及使设备代码工作所需的任何私有/封装C / C ++函数来创建.CU文件。
  2. 制作.H文件,提供对.CU文件中的C / C ++包装的访问,#包括.CU文件中的文件以及我需要调用设备代码的任何.C / .CPP文件
  3. 制作.C / .CPP文件,用于处理高级应用程序逻辑,并通过步骤2中描述的头文件提供的接口调用设备代码。
  4. 要在此方案中将主机功能设为私有,请不要在标题中放置原型...如果你问我,这是一个非常简洁的方案。

答案 1 :(得分:0)

严格来说,没有办法在C ++中创建一个私有的自由函数 - 任何可以看到函数签名的客户端都可以调用它。

相反,您可以使doSomethingOnHost成为某个类的私有静态成员函数:

class my_class
{
  private:
    static void doSomethingOnHost(); // only my_class or friends of my_class may use this function
};