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

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

pgC++ -ta=tesla: закреплено -acc -Minfo -o main main.cpp

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

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

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

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

0 ответов

Другие вопросы по тегам