CUDA закрепила память и слилась

На устройстве с вычислительными возможностями 2.x как мне убедиться, что gpu использует объединенный доступ к памяти при использовании отображенной закрепленной памяти и при условии, что обычно при использовании глобальной памяти двумерные данные требуют заполнения?

Кажется, я нигде не могу найти информацию об этом, возможно, я должен выглядеть лучше или, может быть, я что-то упускаю. Любые указатели в правильном направлении приветствуются …

1

Решение

сливающихся подход должен применяться при использовании нулевая копия памяти. Цитируя руководство по лучшей практике CUDA C:

Поскольку данные не кэшируются на графическом процессоре, отображаются
закрепленная память должна быть прочитана или записана только один раз, а глобальная загрузка и сохранение
что чтение и запись памяти должны быть объединены.

Цитирую книгу С. Кука «Программирование CUDA»

Если вы подумаете о том, что происходит с доступом к глобальной памяти, из памяти компьютера Compute 2.x извлекается целая строка кэша. Даже на оборудовании 1.x те же 128 байтов, которые могут быть уменьшены до 64 или 32, извлекаются из глобальной памяти.
NVIDIA не публикует информацию о размере передачи PCI-E, которую он использует, или подробности о том, как фактически реализовано нулевое копирование. Тем не менее, подход коалесцирования, используемый для глобальной памяти, может использоваться с передачей PCI-E. Модель скрытия задержки деформируемой памяти может в равной степени применяться к передачам PCI-E, при условии, что существует достаточная арифметическая плотность, чтобы скрыть задержку передач PCI-E.

2

Другие решения

Других решений пока нет …