【问题标题】:Can I avoid __device__ qualifier when calling a function on the GPU? [duplicate]在 GPU 上调用函数时可以避免使用 __device__ 限定符吗? [复制]
【发布时间】:2015-03-23 06:02:35
【问题描述】:

将在 GPU 上运行的函数需要限定符 __device__。我目前正在编写一套通用的数学函数,可以在 GPU 和 CPU 上使用。我认为将所有这些函数限定为__device__ 并不是很好,因为它们也可能包含在根本不存在 CUDA 的其他程序中。有没有办法省略__device__

【问题讨论】:

    标签: c++ c cuda


    【解决方案1】:

    在为非 CUDA 目标构建时,您可以只使用 -D__device__="" 进行编译,或者在为 CUDA 编译时使用可以定义为 __device__ 的更通用的宏。

    【讨论】:

      【解决方案2】:
      #ifndef __CUDACC__
      #define __device__
      #endif
      

      或类似的。当然,您需要类似的守卫来处理在非 CUDA 设置中有意义的包含和函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 2012-11-11
        • 2018-07-15
        • 2012-09-15
        • 1970-01-01
        相关资源
        最近更新 更多