Инструмент статистики 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
Для анализа данных, представленных в инструменте:
- Сортировать таблицу по
Aggregated Total Stall
в порядке убывания. - Определите коллективное имя DCN с самым высоким
Aggregated Total Stall
. Значительно высокое значение по сравнению с другими может указывать на узкое место. - Умножьте
Required Bandwidth
коллектива DCN на количество ядер (например, 8 на хост v4 TPU). Если это значение больше максимальной пропускной способности сети TPU, это может указывать на перегрузку сети. Попробуйте изменить механизм шардинга , чтобы уменьшить требуемую пропускную способность. - Сгенерируйте дамп HLO для проверки проблем компилятора. Разветвление операций
send
иrecv-done
может позволить запланировать больше перекрывающихся операций HLO и сократить время простоя TPU. - Проверьте длительность операций
recv-done
в Trace Viewer для коллектива с максимальным агрегированным общим остановом. Высокая длительность передачи может указывать на узкое место в полосе пропускания, поскольку операцииrecv-done
обычно блокируются в сети. - Если длительность операций
recv-done
не слишком велика по сравнению со временем простоя, это может указывать на проблему с оборудованием.