Совместное использование памяти CPU и GPU - PullRequest
0 голосов
/ 19 марта 2019

Если (дискретный) графический процессор имеет собственное видео-ОЗУ, я должен скопировать свои данные из ОЗУ в VRAM, чтобы иметь возможность использовать их.Но если графический процессор интегрирован с процессором (например, AMD Ryzen) и разделяет память, мне все равно придется делать копии или они оба могут альтернативно обращаться к одному и тому же блоку памяти?

1 Ответ

1 голос
/ 20 марта 2019

Можно избежать копирования в случае встроенной графики, но эта функция зависит от платформы и может работать по-разному для разных поставщиков.

Как повысить производительность за счет уменьшения количества буферных копий на Intel® Processor Graphics В статье описывается, как этого добиться для оборудования Intel:

Чтобы создать нулевые буферы копирования, выполните одно из следующих действий:

Используйте CL_MEM_ALLOC_HOST_PTR и дайте дескриптору времени выполнениясоздание для вас буфера выделения нулевой копии

Если у вас уже есть данные и вы хотите загрузить данные в буферный объект OpenCL, используйте CL_MEM_USE_HOST_PTR с буфером, выделенным на границе 4096 байт (выровненной по странице играница строки кэша) и общий размер, кратный 64 байтам (размер строки кэша).

При чтении или записи данных в эти буферы с хоста используйте clEnqueueMapBuffer (), работайте с буфером, затемвызовите clEnqueueUnmapMemObject ().

...