Доступ к памяти графического процессора из ядра операционной системы - PullRequest
0 голосов
/ 10 февраля 2012

Мы работаем над исследовательским прототипом, в котором мы намереваемся использовать память GPU для «RAM RAM Disk». На данный момент у нас есть модуль пользовательского режима, который использует OpenCL для копирования данных в память GPU и из нее.

Мы бы предпочли способ доступа к памяти графического процессора непосредственно из ядра Windows (тем самым уменьшая накладные расходы, связанные, например, с переключением контекста). Каков наилучший способ добиться этого?

1 Ответ

0 голосов
/ 25 февраля 2012

Функция, которую вы ищете, называется память нулевого копирования . Последние графические процессоры от AMD и NVIDIA поддерживают это. Я лично не знаком с поддержкой нулевого копирования NVIDIA в OpenCL (я знаю, что она хорошо поддерживается в CUDA). Поддержка нулевого копирования AMD хорошо документирована в их руководстве по программированию OpenCL: http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide.pdf

См. Таблицу 4.2 (Свойства объекта памяти OpenCL) специально для описания того, какие флаги передавать clCreateBuffer. Скорее всего, вы захотите использовать CL_MEM_USE_PERSISTENT_MEM_AMD, который выделяет память в памяти устройства (GPU), доступной с хоста.

...