При использовании atomicAdd звучит так, что количество желаемых вызовов рассчитывается распределенным образом по всем вызовам первой отправки.Предполагая, что вы не можете это изменить, и действительно нуждаетесь в пост-процессе для преобразования количества вызовов в число рабочих групп, вы можете запустить очень маленькую отправку (один поток) после первой, которая выполняет это преобразование перед косвенной отправкой.По сути, это то, что вы делаете на CPU, но выполняются на GPU конвейерным способом, который должен иметь меньшую задержку.