Проектирование вектора типа std::pmr для памяти устройства с использованием ThrustC++

Программы на C++. Форум разработчиков
Anonymous
Проектирование вектора типа std::pmr для памяти устройства с использованием Thrust

Сообщение Anonymous »

Я хочу реализовать контейнер, аналогичный std::pmr::vector, но поддерживаемый памятью устройства CUDA, с семантикой использования, близкой к std::pmr::vector / Thust::device_vector.
Требования:
  • Интерфейс в стиле PMR
  • Распределение с помощью полиморфного ресурса памяти
  • Пользователи не должны не иметь возможность передавать ресурс памяти хоста
Я рассматривал возможность использования chunk::mr::device_memory_resource, но это окончательный вариант, поэтому я не могу извлечь из него данные для ограничения типов ресурсов.
Вопросы:
  • Как я могу обеспечить, чтобы принимались только ресурсы памяти устройства, сохраняя при этом API простым и похожим на PMR?
  • Почему Thust::mr::memory_resource является шаблоном, в отличие от std::pmr::memory_resource?
  • Почему Thrust::mr::allocator пытается получить указатель MR вместо того, чтобы следовать модели распределителя STL?
Будем признательны за любые рекомендации по предполагаемому дизайну Thrust или лучшим практикам.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-thrust

Вернуться в «C++»