какой использовать: память с нулевым копированием и закрепленная память - PullRequest
0 голосов
/ 17 сентября 2018

В функции моего устройства я сохраняю значение в глобальной памяти хоста (либо прикрепленное, либо нулевое) миллионы раз. В моей функции хоста цикл выполняет итерацию и считывает по одному значению за раз из глобальной памяти (например, я могу видеть значение, полученное с устройства, вместо ожидания получения всех значений).

Что я должен использовать между нулевым копированием и закреплением для лучшей производительности?

1 Ответ

0 голосов
/ 18 сентября 2018

В функции моего устройства я сохраняю значение в глобальной памяти хоста (закрепленное или с нулевой копией)

Что я должен использовать между нулевым копированием и закреплением для лучшей производительности?

В 64-битной ОС, где действует CUDA UVA, нет существенной разницы между закрепленной памятью и нулевым копированием (т.е. закрепленным и отображенным). Это потому, что, как указано здесь и в других местах:

"функция унифицированного адресного пространства в CUDA 4.0 приведет к сопоставлению всех закрепленных выделений по умолчанию"

«Унифицированная функция адресного пространства в CUDA 4.0» - это CUDA UVA , и она будет автоматически действовать в 64-битной ОС, где используется CUDA (возможно, за исключением Windows 7 WDDM). Поскольку использование 32-битной CUDA в течение некоторого времени постепенно устарело, 64-битная ОС, вероятно, является тем, что используется большинством в настоящее время.

Однако, даже если бы вы были в режиме без UVA, все равно не было бы никакого способа ответить на вопрос. Причина этого заключается в том, что закрепленная, но не сопоставленная память хоста не доступна напрямую для операций чтения / записи кода устройства CUDA, о чем вы спрашиваете в своем вопросе. Именно характеристика отображения (так называемая «нулевая копия») позволяет коду устройства CUDA непосредственно считывать и записывать местоположения в памяти хоста.

Таким образом, желаемая функциональность не может быть достигнута в любом случае, если у вас есть доступ к «закрепленной, но не сопоставленной» памяти хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...