我正在为TensorFlow编写一个C++和CUDA的操作(Op),其中包含共享的自定义函数代码。通常,在CPU和CUDA实现之间共享代码时,人们会定义一个宏,以便在为CUDA编译时将__device__
说明符插入到函数签名中。TensorFlow中是否有内置的方法以这种方式共享代码?
如何定义可以在CPU和GPU上运行的实用函数(通常是内联的)?
回答:
事实证明,TensorFlow中的以下宏可以实现我所描述的功能。
namespace tensorflow{ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void foo() { // }}