У меня есть структура графа, в которой я поддерживаю, посещал ли я определенную вершину или нет (так что она обрабатывается не более одного раза). Для этой цели я использую функцию atomicIn c, которая принимает переменные типа unsigned, проверяет заданное значение (1 для меня) и увеличивает при необходимости.
Однако проблема с функцией atomicIn c заключается в том, что, как только она достигает заданного значения (1), она сбрасывается в 0, чего я не хочу, так как посещение узла два раза будет иметь то же самое ценность как никогда не посещая его. Какая работа вокруг этого? Есть ли более подходящая функция, которую я могу использовать, или есть более разумный способ сделать это?
Примечание. Я делаю это внутри вызова ядра в CUDA