Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将这种数据结构高效地发送到CUDA?_C++_Cuda - Fatal编程技术网

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

C++ 如何将这种数据结构高效地发送到CUDA?,c++,cuda,C++,Cuda,我的数据结构如下: std::vectormystruct[100] mystruct[100]的每个向量都有不同的大小。例如,mystruct[0]的大小是10,mystruct[1]的大小是5,mystruct[2]的大小是12,依此类推 那么,我如何才能有效地将这种数据结构发送到CUDA?如果主机数据结构必须是您描述的方式,我认为您不能比单独下载每个向量做得更好 如果你可以改变数据结构,你可以考虑把所有的向量一个接一个地存储在一个大的内存中,同时下载一个大块,连同一个偏移表,它告诉你在什么

我的数据结构如下:

std::vectormystruct[100]

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


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

如果主机数据结构必须是您描述的方式,我认为您不能比单独下载每个向量做得更好


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

是否使用推力和选择?您可以直接使用设备/主机向量实现。推力不会直接处理向量数组。您要么将数组展平为单个向量,要么使用循环复制每个向量。