Что делать с CU_MEMHOSTALLOC_DEVICEMAP и CU_CTX_MAP_HOST?
Документация для
cuCtxCreate()
говорит, что один из требуемых флагов:
CU_CTX_MAP_HOST
: Проинструктируйте CUDA о поддержке сопоставленных закрепленных выделений. Этот флаг должен быть установлен, чтобы выделить закрепленную память хоста, доступную для графического процессора.
Однако в документации для этого определенного значения говорится:
CU_CTX_MAP_HOST = 0x08
Устарело
Этот флаг устарел в CUDA 11.0 и больше не действует. Все контексты, начиная с CUDA 3.2, ведут себя так, как если бы флаг был включен.
Кажется, что эти две части документации противоречат друг другу.
Кроме того, в документации говорится :
- : Отображает выделение в адресное пространство CUDA.
...
В
CU_MEMHOSTALLOC_DEVICEMAP
Флаг может быть указан в контекстах CUDA для устройств, которые не поддерживают отображаемую закрепленную память.
и это практически внутреннее противоречие.
Итак, я в замешательстве. При каких обстоятельствах и какие версии инструментов и драйверов CUDA выделяют закрепленную память хоста с помощью
cuMemHostAlloc()
получить «отображение в адресное пространство CUDA», чтобы обеспечить доступ к графическому процессору?