Динамическое размещение в CUDA - более низкий уровень конкуренции, чем рукописное решение?

Теперь CUDA позволяет динамическое размещение в глобальной памяти. Тем не менее, я не мог найти ссылку на масштабируемость этого malloc Функция: это лучше, чем, например, предварительно выделить кусок памяти, а затем просто назначить следующий фрагмент памяти для потока, атомно увеличивая глобальное целое число? Это последнее "домашнее" решение работает, но есть очевидная проблема с масштабируемостью, поэтому мне интересно malloc как-то заботится об этом.

1 ответ

Решение

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

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

Другие вопросы по тегам