结构体变量在GPU中的实现

大家好!我有个问题想请教一下。我在CPU中定义了一个结构体:


 Typedef struct NPixel
{
   int code;
   int xwideth;
   int yheight;
   int  flag;
}

在GPU中如果要用到这种数据结构的话,我应该怎么设计呢?谢谢

LZ您好:

CUDA中在GPU上定义一个结构体和CPU上定义一个结构体是一样的。

以及,您可以根据您的具体问题考虑是否使用结构体。

其他相关事宜,请参阅之前的详细讨论:

http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6672

http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6813

http://cudazone.nvidia.cn/forum/forum.php?mod=viewthread&tid=6820

大体如此,供您参考。

祝您编码顺利~

谢谢版主!!我想问一下可否用int4来代替呢。int4这种变量类型是不是代表四个整型变量啊?

LZ您好:

1:int4 类型您可以参阅Programming Guide B.3 BUILT-IN VECTOR TYPES章节。

2:仅就您1#给出的这个struct,可以考虑使用int4以优化访存。

大致如此,供您参考。

祝您编码顺利~

以及,我补充下,为了能让您的访存更有效率。

以及为了简化您对struct的理解,您可以将4个成员构成单独的4个数组,这样您可以规避对结构体的使用。

(当然,如果您直接使用者4个4B成员的结构体无压力的话,也可以直接用)