我通过执行以下操作成功地在两个 float4 之间创建了一个 operator+:
__device__ float4 operator+(float4 a, float4 b) {
// ...
}
但是,如果另外,我想为 uchar4 提供一个 operator+,通过对 uchar4 执行相同的操作,我会收到以下错误:“错误:多个重载函数“operator+”实例具有“C”链接“”
当我声明多个具有相同名称但参数不同的函数时,我会收到类似的错误消息。所以,两个问题:
- 多态性:在 Cuda 中是否可以有多个具有相同名称和不同参数的函数?如果是这样,为什么我会收到此错误消息?
- operator+ for float4:似乎这个特性已经包含在“cutil_math.h”中,但是当我包含那个(
#include <cutil_math.h>
)时,它抱怨没有这样的文件或目录......我应该做些什么特别的事情?注意:我使用的是 pycuda,它是 python 的 cuda。
谢谢!