Необходимо, чтобы память хоста была заблокирована на странице для достижения асинхронной передачи данных и вычислений на устройстве с помощью компилятора pgi? - PullRequest
0 голосов
/ 28 января 2019

Я тестировал асинхронную передачу данных между устройством nvidia-K80 на хост и суперпозицией ядра gpu с OpenACC.Мне удалось увидеть суперпозицию передачи и вычисления данных с помощью профилировщика nvprof при компиляции со следующей строкой.

pgc ++ -ta = tesla: pinned -acc -Minfo -o main main.cpp

Тем не менее, при чтении документации по компиляторам pgi упоминается, что: флаг компиляции -ta = tesla: pinned делает все выделение памяти на хосте для блокировки страниц.Есть ли альтернативная форма для достижения такого поведения без побочного эффекта с чисто директивами openACC?Я притворяюсь, что использую эту функцию в большом проекте.

Обратите внимание, что строка компиляции

pgc ++ -acc -Minfo -o main main.cpp

Не достигаетжелаемое поведение.Альтернативно, использование cudaHostAlloc для инициализации областей памяти с высоким трафиком между хостом и устройством работает.Мне любопытно, что такое чистое решение OpenACC.

...