CUDA текстура памяти - PullRequest
       8

CUDA текстура памяти

7 голосов
/ 11 июля 2011

Когда я связываю массив с текстурой в CUDA,

  1. этот массив копирует в текстурное пространство? или
  2. это ссылка на массив в качестве текстуры?

Если ответ равен 1., тогда я могу связать данные извлечения текстуры и безопасности из пространства памяти текстур, пока записываю результат в массив, который размещен в глобальной памяти.

Если ответ 2., то является ли текстурная память глобальным пространством памяти, где данные кэшируются и пространственно извлекаются?

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

Заранее спасибо.

1 Ответ

14 голосов
/ 11 июля 2011

Ответ - второй вариант, но с этого момента все становится немного сложнее. Не существует такого понятия, как «память текстур», а только глобальная память, доступ к которой осуществляется через специальное оборудование, которое включает в себя кэш чтения GPU (6–8 КБ на МП в зависимости от карты, см. Таблицу F-2 в «Приложении F» Руководства по программированию Cuda) и ряд аппаратных ускоренных действий фильтрации / интерполяции. Существует два способа использования текстурного оборудования в CUDA:

  1. Привязка линейной памяти к текстуре и чтение из нее в ядре с использованием 1D API выборки. В этом случае текстурное оборудование на самом деле просто действует как сквозной кэш, и (IIRC) нет доступных действий фильтрации.
  2. Создайте массив CUDA, скопируйте содержимое линейной памяти в этот массив и привяжите его к текстуре. Результирующий массив CUDA содержит пространственно упорядоченную версию линейного источника, сохраненную в глобальной памяти в некоторой (недокументированной) кривой заполнения пространства . Аппаратное обеспечение текстуры обеспечивает кэшированный доступ к этому массиву, включая одновременное чтение памяти с аппаратной ускоренной фильтрацией.

Вы можете найти обзор архитектуры GT200, написанный David Kanter , который стоит прочитать, чтобы получить лучшее представление о том, как в реальной архитектуре реализована иерархия памяти, которую предоставляют API.

...