Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
如何在cuda中创建大位数组?_Cuda_Bitarray - Fatal编程技术网

如何在cuda中创建大位数组?

如何在cuda中创建大位数组?,cuda,bitarray,Cuda,Bitarray,在我的算法中,我需要跟踪大约10000个数组元素。为此,我需要每个记录使用布尔值。如果我使用char数组跟踪10000个数组(作为0/1),它将占用大量内存 因此,我可以在Cuda中创建一个10000位的位数组,其中每个位表示相应的数组记录吗?正如Roger所说,答案是肯定的,Cuda提供相同的位操作(即,,,正如Roger所说,答案是肯定的,Cuda提供相同的位操作(例如,>,实际上,决定如何存储布尔值的主要决定应该基于任务是受计算限制的还是受内存限制的。如果任务是受内存限制的,则每位存储一位

在我的算法中,我需要跟踪大约10000个数组元素。为此,我需要每个记录使用布尔值。如果我使用char数组跟踪10000个数组(作为0/1),它将占用大量内存


因此,我可以在Cuda中创建一个10000位的位数组,其中每个位表示相应的数组记录吗?

正如Roger所说,答案是肯定的,Cuda提供相同的位操作(即,
,正如Roger所说,答案是肯定的,Cuda提供相同的位操作(例如,
>
实际上,决定如何存储布尔值的主要决定应该基于任务是受计算限制的还是受内存限制的。如果任务是受内存限制的,则每位存储一位会带来巨大的好处,至少对于读取而言是如此。不过,正如您所提到的,写入是很棘手的。至少在费米上,这是没有意义的对于读/写数组,每一位存储超过一个字节——这只需要更多的内存事务。对于只读数组,我将每一位存储一个字节。实际上,决定如何存储布尔值的主要决定应该基于任务是计算绑定还是内存绑定。如果是内存绑定,则布尔值可以带来巨大的好处至少对于读取,每比特存储一个字节。但是,正如您所提到的,写入是很棘手的。至少在费米上,对于读/写数组,每比特存储超过一个字节是没有意义的——它只需要更多的内存事务。对于只读数组,我将每比特存储一个字节。