У меня есть массив беззнаковых целых чисел, хранящийся на графическом процессоре с помощью CUDA (обычно 1000000
элементов). Я хотел бы подсчитать появление каждого числа в массив. Есть только несколько различных чисел (около 10
), но эти числа могут варьироваться от 1 до 1000000
. Примерно 9/10
-го числа числа 0
, мне не нужно их количество. Результат выглядит примерно так:
58458 -> 1000 occurrences
15 -> 412 occurrences
У меня есть реализация, использующая atomicAdd
s, но она слишком медленная ( много потоков пишут на один и тот же адрес). Кто-нибудь знает о быстром / эффективном методе?