如何有效地将这种数据结构发送到CUDA?

时间:2014-01-31 10:43:22

标签: c++ cuda

我有这样的数据结构:

的std ::矢量<浮动> MYSTRUCT [100];

mystruct [100]的每个向量都有不同的大小。例如,mystruct [0]的大小为10,mystruct [1]的大小为5,mystruct [2]的大小为12,依此类推。

那么如何才能有效地将这种数据结构发送给CUDA呢?

1 个答案:

答案 0 :(得分:1)

如果主机数据结构必须符合您的描述,我认为您不能单独下载每个矢量。

如果你可以改变数据结构,你可以考虑将所有矢量一个接一个地存储在一块大内存中,然后一起下载这个大块和一个偏移表,告诉你在什么位置找到哪个矢量。当然,在后一种方法中,调整矢量的大小可能会变得很昂贵,但是您可能不经常需要这种操作。此外,如果您知道向量大小的合理上限,您可以尝试为每个向量分配那么多空间,而不管它是否被完全使用。