Проектирование вектора типа 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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