Я думаю, что в то время как ваше "домашнее" решение может быть таким же хорошим в настоящее время, хотя одновременные вызовы глобального целого числа могут замедлить его, Malloc был бы моим выбором.
Это потому, что это позволяет Nvidia справляться с головной болью масштабируемости и вносить улучшения в аппаратную или программную реализацию, которыми вы можете воспользоваться, просто перекомпилировав свой код на более позднем этапе.