Инструмент статистики Megascale

Инструмент Megascale Stats можно использовать для анализа производительности межсрезовой связи рабочих нагрузок, охватывающих несколько срезов TPU, которые взаимодействуют через сеть центров обработки данных (DCN).

Все показатели, отображаемые в инструменте Megascale Stats, генерируются для каждого TPU.

Поддерживаемые платформы

ТПУ: Поддерживается

Графический процессор: не поддерживается

Инструмент отображает метрики, связанные с коммуникацией между срезами TPU, которые включают следующие операции:

  • send : прерывает работу хоста для запуска прямого доступа к памяти (DMA) и предоставляет хосту заполненный буфер для начала передачи данных.
  • send-done : сообщает хосту, что передача данных завершена.
  • recv : предоставляет хосту пустой буфер для заполнения переданными данными.
  • recv-done : сообщает хосту, что данные получены.

Коллектив инициируется операцией send и завершается соответствующей операцией recv-done . Фактическая отправка данных происходит после завершения операции send. Операция send-done происходит после отправки данных. Аналогично, данные принимаются после завершения операции recv . Операция recv-done происходит после получения данных.

Компоненты интерфейса

Инструмент отображает таблицу со следующими столбцами, по одной строке на каждую профилированную коллективную операцию:

  • Коллективное название DCN: Присвоено XLA.
  • Recv op name: Имя операции TPU recv-done . Это обеспечивает простой способ поиска Trace Viewer для соответствующих коллективных операций TPU.
  • Имя операции отправки: Имя операции send TPU.
  • Резервное время: определяется как независимое от сети время, которое коллектив должен передать данные. Это мера времени, которое коллектив имеет в своем распоряжении для отправки и получения данных, за исключением операций send , send-done , recv или recv-done . Увеличение резервного времени снижает вероятность остановки TPU для коллектива. Например, учитывая следующую временную шкалу:

временная шкала, показывающая резервное время

Slack time is calculated in this example as:

Slack time = t<sub>1</sub> + t<sub>2</sub> + t<sub>3</sub>
  • Наблюдаемая длительность: Длительность, наблюдаемая для каждого коллектива. Она вычисляется как интервал между началом операции send и окончанием соответствующей операции recv-done , включая время, потраченное на отправку и получение данных. Например, учитывая следующую временную шкалу:

временная шкала, показывающая наблюдаемую продолжительность

Observed duration is calculated as:

Observed duration = t<sub>send</sub> + t<sub>1</sub> + t<sub>send-done</sub> + t<sub>2</sub> + t<sub>recv</sub> + t<sub>3</sub> + t<sub>recv-done</sub>
  • Stall Duration: Продолжительность времени, в течение которого коллектив останавливает TPU. Это общая продолжительность времени, которое коллектив тратит на операции send , send-done , recv и recv-done , не включая время, потраченное на передачу данных. Например, учитывая следующую временную шкалу:

временная шкала, показывающая продолжительность простоя

Stall duration is calculated in this example as:

Stall duration = t<sub>send</sub> + t<sub>send-done</sub> + t<sub>recv</sub> + t<sub>recv-done</sub>
  • Вхождения: Общее количество раз, когда коллектив инициируется и завершается в течение продолжительности профиля. Операция send и соответствующая ей операция recv-done должны происходить в течение продолжительности профиля, чтобы быть включенными в эту метрику.
  • Агрегированный общий срыв: общее количество времени, когда коллектив останавливает TPU в течение продолжительности профиля. Агрегированный общий срыв рассчитывается как:
    • Суммарный общий срыв = длительность срыва * количество случаев
  • Объем передаваемых данных: объем данных, передаваемых по сети для коллектива, вычисляемый на основе формы операции XLA.
  • Требуемая пропускная способность: пропускная способность, необходимая для передачи данных в пределах предоставленного резерва. Вы можете использовать эту метрику, чтобы увидеть количество коллективов, конкурирующих за пропускную способность сети в течение продолжительности профиля. Требуемая пропускная способность вычисляется как:
    • Требуемая пропускная способность = объем переданных данных / время простоя

Анализ данных инструмента Megascale Stats

Для анализа данных, представленных в инструменте:

  1. Сортировать таблицу по Aggregated Total Stall в порядке убывания.
  2. Определите коллективное имя DCN с самым высоким Aggregated Total Stall . Значительно высокое значение по сравнению с другими может указывать на узкое место.
  3. Умножьте Required Bandwidth коллектива DCN на количество ядер (например, 8 на хост v4 TPU). Если это значение больше максимальной пропускной способности сети TPU, это может указывать на перегрузку сети. Попробуйте изменить механизм шардинга , чтобы уменьшить требуемую пропускную способность.
  4. Сгенерируйте дамп HLO для проверки проблем компилятора. Разветвление операций send и recv-done может позволить запланировать больше перекрывающихся операций HLO и сократить время простоя TPU.
  5. Проверьте длительность операций recv-done в Trace Viewer для коллектива с максимальным агрегированным общим остановом. Высокая длительность передачи может указывать на узкое место в полосе пропускания, поскольку операции recv-done обычно блокируются в сети.
  6. Если длительность операций recv-done не слишком велика по сравнению со временем простоя, это может указывать на проблему с оборудованием.