CUDA кэширует данные в единый кеш из глобальной памяти, чтобы сохранить их в общей памяти?
Насколько я знаю, GPU выполняет шаги (глобальная память-l1-l1-регистр-разделяемая память) для сохранения данных в общей памяти для предыдущих архитектур NVIDIA GPU.
Тем не менее, Maxwell GPU (GTX980) физически разделили унифицированный кеш и разделяемую память, и я хочу знать, что эта архитектура также выполняет тот же шаг для хранения данных в разделяемой памяти? или они поддерживают прямую связь между глобальной и общей памятью?
- объединенный кеш включен с опцией "-dlcm=ca"
1 ответ
Это может ответить на большинство ваших вопросов о типах памяти и действиях в архитектуре Maxwell:
Как и в случае с Kepler, глобальные нагрузки в Maxwell кэшируются только в L2, если только не используется механизм кэширования данных только для чтения LDG, представленный в Kepler.
Аналогично Kepler GK110B, GM204 сохраняет это поведение по умолчанию, но также позволяет приложениям включить кэширование глобальных нагрузок в своем унифицированном кеше L1/Texture. Механизм согласия такой же, как и в GK110B: передайте флаг -Xptxas -dlcm=ca nvcc во время компиляции.
Локальные нагрузки также кэшируются только в L2, что может увеличить стоимость разливов регистров, если локальные нагрузки L1 были высокими с Kepler. Поэтому соотношение занятости и разлива следует пересмотреть, чтобы обеспечить наилучшую производительность. Особенно с учетом улучшений арифметических задержек, код, созданный для Maxwell, может выиграть от несколько меньшей загрузки (из-за увеличения количества регистров на поток) в обмен на меньшее количество разливов.
Унифицированный кэш L1 / текстуры действует как объединяющий буфер для обращений к памяти, собирая данные, запрошенные потоками деформации, до доставки этих данных в деформацию. Ранее эта функция обслуживалась отдельным кешем L1 в Fermi и Kepler.
Из раздела "1.4.2. Пропускная способность памяти", подраздел "1.4.2.1. Унифицированный L1 / кэш текстуры" в руководстве по настройке Maxwell от Nvidia.
Другие разделы и подразделы, следующие за этими двумя, также обучают и / или явно полезны другие подробности о размерах / пропускной способности совместно используемой памяти, кэшировании и т. Д. Попробуйте!