Пользовательский распределитель статической тяги?
Просто пара фактов для настройки:
- Тяга не работает на месте для всех своих операций.
- Вы можете поставить пользовательские распределители
thrust::device_vectors
,
Я смотрел в thrust::system
а также thrust::system::cuda
и не нашел ничего похожего на статический системный распределитель. Под этим я подразумеваю, что не могу найти способ замены распределителя, который внутренне используется в толчке для выделения дополнительной памяти для алгоритмов не на своем месте.
Мне также трудно поверить, что функции, которые не на месте, используют распределители для данного thrust::device_vectors
выделить рабочую память.
Вопрос: thrust
есть способ заменить внутренний распределитель на определенный пользователем?
Смежные вопросы:
подразумевает, что тяга работает не на своем месте
пример кастома thrust
распределитель
1 ответ
Упорный-х custom_temporary_allocation
Пример демонстрирует, как создать свой собственный распределитель для временного хранилища, используемого внутри алгоритмами Thrust. В примере используется схема кэширования для выполнения распределения, но в принципе вы можете использовать любую понравившуюся вам стратегию.
По сути, идея заключается в создании пользовательского бэкэнда, полученного из бэкэнда CUDA специально для настройки распределения. Затем, когда вы хотите использовать алгоритм с вашим пользовательским распределителем, вы указываете Thrust на свой пользовательский бэкэнд, когда вызываете алгоритм.
Обратите внимание, что эта функция требует Thrust 1.6 или выше.