我有这样的数据结构:
的std ::矢量<浮动> MYSTRUCT [100]; 的
mystruct [100]的每个向量都有不同的大小。例如,mystruct [0]的大小为10,mystruct [1]的大小为5,mystruct [2]的大小为12,依此类推。
那么如何才能有效地将这种数据结构发送给CUDA呢?
答案 0 :(得分:1)
如果主机数据结构必须符合您的描述,我认为您不能单独下载每个矢量。
如果你可以改变数据结构,你可以考虑将所有矢量一个接一个地存储在一块大内存中,然后一起下载这个大块和一个偏移表,告诉你在什么位置找到哪个矢量。当然,在后一种方法中,调整矢量的大小可能会变得很昂贵,但是您可能不经常需要这种操作。此外,如果您知道向量大小的合理上限,您可以尝试为每个向量分配那么多空间,而不管它是否被完全使用。