gpt4 book ai didi

cuda - 计算 CUDA 数组中数字的出现次数

转载 作者:行者123 更新时间:2023-12-04 11:29:16 26 4
gpt4 key购买 nike

我在带有 CUDA 的 GPU 上存储了一个无符号整数数组(通常是 1000000 元素)。我想计算数组中每个数字的出现次数。只有几个不同的数字(大约 10),但这些数字的范围可以从 1 到 1000000 .关于 9/10第一个数字是 0 ,我不需要他们的数量。结果如下所示:

58458 -> 1000 occurrences
15 -> 412 occurrences

我有一个使用 atomicAdd 的实现s,但是太慢了(很多线程写到同一个地址)。有人知道快速/有效的方法吗?

最佳答案

您可以通过首先对数字进行排序,然后进行键控归约来实现直方图。

最直接的方法是使用 thrust::sort然后 thrust::reduce_by_key .它通常也比基于原子的临时分箱要快得多。这是一个 example .

关于cuda - 计算 CUDA 数组中数字的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7573900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com