Согласно "CUDA C Programming Guide", постоянный доступ к памяти может быть полезен только при попадании кеша многопроцессорной константы (раздел 5.3.2.4) . В противном случае может быть даже больше запросов на память для полувращения, чем в случае чтения объединенной глобальной памяти. Итак, почему размер постоянной памяти ограничен 64 КБ?Почему постоянный объем памяти ограничен в CUDA?
Еще один вопрос, чтобы не спрашивать дважды. Насколько я понимаю, в архитектуре Fermi кеш текстуры объединен с кэшем L2. Сохраняется ли использование текстуры по-прежнему, или чтение глобальной памяти кэшируется таким же образом?
Постоянная память (раздел 5.3.2.4)
Постоянное пространство памяти находится в памяти устройства и кэшируется в постоянном кэше, указанного в разделах F.3.1 и F. 4.1.
Для устройств с вычислительной способностью 1.x запрос постоянной памяти для основы сначала разбивается на два запроса, по одному для каждого полувращения, которые выдаются независимо.
Затем запрос разбивается на столько раздельных запросов, что в исходном запросе есть разные адреса памяти, что уменьшает пропускную способность на коэффициент, равный количеству отдельных запросов.
Полученные запросы затем обслуживаются при пропускной способности постоянного кеша в случае попадания в кэш или при пропускной способности памяти устройства в противном случае.
Грег, извините, возможно, недостаточно ясен. Я знаю, как использовать постоянную память. В вопросе я задаюсь вопросом, почему размер постоянной памяти ограничен 64 КБ, если только кэшированный 8 КБ фактически обеспечивает производительность лучше, чем размер глобальной памяти. Аналогичным образом глобальная память может быть доступна через кеш L1. Итак, с точки зрения программиста какая разница между использованием глобальной памяти или постоянной памятью, поскольку оба они кэшируются одинаково? – AdelNick
Постоянный кеш оптимально рассчитан на графику и вычисляет шейдеры. API CUDA предоставляет постоянный кеш, чтобы разработчики могли использовать дополнительный кеш. Постоянный кеш имеет оптимальную производительность, когда все потоки обращаются к одному и тому же адресу.Хиты очень быстрые. Мисс может иметь одинаковые характеристики промаха L1. Постоянный кеш может использоваться для уменьшения измельчения L1. Вычислительная способность 1.x устройства не имеют кэш L1 или L2, поэтому постоянный кеш использовался для оптимизации некоторых доступов. –