Что такое «длинное» и «короткое» табло по сравнению с MIO/L1TEX?

В последних микроархитектурах NVIDIA появилась новая (?) Систематика причин остановки деформации / состояний планировщика деформации.

Два элемента в этой таксономии:

  • Краткое табло - зависимость табло от операции очереди MIO.
  • Длинное табло - зависимость табло от операции L1TEX.

где, как я полагаю, «табло» используется в смысле отслеживания зависимостей данных вне очереди (см., например, здесь ).

Мои вопросы:

  • Что описывают прилагательные «короткий» или «длинный»? Это длина одного табло? Два разных табло для двух разных видов операций?
  • Что означает эта несколько неинтуитивная дихотомия между MIO - некоторые, но не все, являются операциями с памятью; и операции L1TEX, которые все операции с памятью? Это дихотомия только по причинам срыва или дело в реальном оборудовании?

1 ответ

Графический процессор NVIDIA имеет две классификации инструкций:

  1. Фиксированная задержка - математические, побитовые, движение регистра
  2. Переменная задержка - ld / st для общих, локальных, глобальных и текстурных, а также медленных математических операций

Короткие табло и Long Табло сообщаются на инструкции в зависимости от данных , возвращаемых из команды переменной задержки. Сообщается о коротких таблицах результатов для зависимостей, приходящих для инструкций с переменной задержкой, которые не оставляют SM, таких как медленная математика, такая как взаимный sqrt или общая память). Сообщается о длинных табло для зависимостей, которые могут оставить SM, таких как доступ к глобальной / локальной памяти и выборка текстур.

Подробные описания приведены в Руководстве по профилированию ядра Nsight Cmpute v2020.3.1.

Длинное табло

Warp остановился в ожидании зависимости табло от операции L1TEX (local, global, surface, tex). Чтобы уменьшить количество циклов, ожидающих доступа к данным L1TEX, убедитесь, что шаблоны доступа к памяти оптимальны для целевой архитектуры, попытайтесь увеличить частоту попаданий в кеш, увеличив локальность данных или изменив конфигурацию кеша, и рассмотрите возможность перемещения часто используемых данных в общую память. .

Краткое табло

Деформация застопорилась в ожидании зависимости табло от операции MIO (ввод / вывод в память) (не от L1TEX). Основной причиной большого количества остановок из-за коротких табло обычно являются операции с общей памятью. Другие причины включают частое выполнение специальных математических инструкций (например, MUFU) или динамическое ветвление (например, BRX, JMX). Проверьте наличие операций с общей памятью и уменьшите конфликты банков, если применимо.

Другие вопросы по тегам