在哪里可以找到矢量类型的定义(uchar3,float3,uint2等)?

时间:2013-03-14 13:40:35

标签: types cuda

现在我知道存在这样的类型,我知道它们有哪些字段,但我找不到它们的定义。即我找到了:

typedef __device_builtin__ struct uint2 uint2;

但这留下了我完整的所有问题 - 他们的构造者呢?运营商怎么样?等等。

那么,那些类型的定义(真实的)是否在某个地方发布?我不想重新发明轮子,特别是没有优化(开始如何初始化这样的结构)。

1 个答案:

答案 0 :(得分:7)

大多数这些载体类型的定义包含在:

/usr/local/cuda/include/vector_types.h

(假设标准cuda安装路径)。它们中的大多数是结构体,并且不需要特定的运算符定义来操作struct成员,也没有官方的c ++样式构造函数。

您所指的“构造函数”,例如make_int2是在:

中定义的内联函数
/usr/local/cuda/include/vector_functions.h

同样,它们是在结构成员上运行的普通c样式函数,而不是c ++样式类/结构方法。