在GPU上调用函数时,我可以避免__device__限定符吗
Can I avoid __device__ qualifier when calling a function on the GPU?
将在GPU上运行的函数需要限定符__device__
。我目前正在编写一组通用的数学函数,这些函数既可以在GPU上使用,也可以在CPU上使用。我认为将所有这些函数限定为__device__
不是很好,因为它们可能也包含在其他根本没有CUDA的程序中。有没有办法去掉__device__
?
在为非CUDA目标构建时,您可以只使用-D__device__=""
进行编译,或者在为CUDA进行编译时,可以使用更通用的宏,该宏可以定义为__device__
。
#ifndef __CUDACC__
#define __device__
#endif
或者类似的。当然,您需要类似的保护来处理在非CUDA设置中没有意义的包含和函数。
相关文章:
- C++方法实现:是否可以避免每次都键入类名?
- 是否可以避免在以下代码中复制/移动构造函数的需要?
- 我可以避免通过time_t打印时间点吗
- 有什么技巧可以避免在模板类中使用"typename"关键字吗
- 在这种情况下,我可以避免使用带有主体的纯虚函数吗?
- 是否可以避免将参数复制到 lambda 函数?
- 是否有一种方法可以避免标头文件中使用的constexpr函数输入全局范围,而无需额外的名称空间
- 如果BOOL仅从false到true一次,我可以避免锁定布尔
- 是否有一种方法可以避免在RVALUE和LVALUE参考中创建功能时避免重复的代码
- 在这种情况下是否可以避免使用虚拟方法调用?
- 是否可以避免在前向声明中使用嵌套命名空间?
- 使用GCOV时,是否有一种方法可以避免使用CPP文件中包含的标头文件进行仪器
- 是否可以避免 for 循环来计算矩阵条目
- 在Thrift中,有没有一种方法可以避免生成C++setter
- 我可以避免在std ::变体中明确编写每个结构的构造函数
- 是否可以避免使用lambda中的尾随返回型语法
- 在GPU上调用函数时,我可以避免__device__限定符吗
- 我是否可以避免由特定类定义的限定名称
- 我是否可以避免模板化需要模板化成员的类
- 是否有任何方法可以避免警告/错误模板实例化回溯