Инструмент статистики операций HLO
Вы можете использовать HLO Op Stats, чтобы просмотреть статистику производительности операций оптимизатора высокого уровня (HLO), выполняемых во время сеанса профилирования. Этот инструмент полезен для определения потенциальных целей для оптимизации производительности, выделяя наиболее трудоемкие операции на графике HLO в течение профилируемого периода.
Поддерживаемые платформы
ТПУ: Поддерживается
Графический процессор: поддерживается
Для графических процессоров операции HLO имеют отношение N:M к ядрам, которые фактически выполняются. Статистические данные на уровне ядра см. в инструменте Статистика ядра графического процессора.
Компоненты инструмента статистики операций HLO
Инструмент HLO Op Stats имеет следующие ключевые компоненты:
- Таблица статистики операций HLO. Это основной компонент, представляющий подробную разбивку каждой операции HLO, выполненной во время сеанса профилирования, в табличном формате. Для каждой отдельной операции HLO имеется одна строка и столбцы, содержащие различные сведения об этой операции.
- Раскрывающийся список позволяет вам решить, какие столбцы вы хотите визуализировать для каждой операции HLO.
- Вы также можете фильтровать строки по категориям операций HLO с помощью второго раскрывающегося списка.
- Поля поиска позволяют выполнять фильтрацию по конкретным идентификаторам программ, операциям HLO, тексту операции HLO или имени операции платформы; фильтры выбирают предоставленную строку, появляющуюся в любом месте соответствующего столбца.
- Раздел «Сводные диаграммы». В этом разделе представлены диаграммы, которые суммируют подробную таблицу по каждой операции следующим образом:
- Круговая диаграмма, показывающая долю времени, затраченную на различные категории операций HLO.
- Круговая диаграмма, показывающая долю времени, затраченную на различные отдельные операции HLO (усекается до первых N операций, а остальные классифицируются как «Другие» для улучшения читаемости).
- Круговая диаграмма, показывающая долю общего времени, затраченного на операции, являющиеся частью рематериализации; XProf получает эту информацию из метаданных компилятора, связанных с профилем.
- Круговая диаграмма, показывающая категории операций HLO, на которые уходит время рематериализации (если таковое имеется).
- Время, затрачиваемое на внешнюю компиляцию. Внешняя компиляция — это функция TensorFlow, которая позволяет определенным операциям в рамках вычисления XLA прозрачно выполняться на главном процессоре, а не на устройстве-ускорителе (например, tf.summary или tf.print, которым требуется доступ к вводу-выводу, которого нет у устройства).
- Диаграмма, показывающая количество гигафлопс/с для всех операций HLO, упорядоченное по общему собственному времени.
- Только для TPU: время на HLO по группе реплик: раскрывающийся список позволяет выбирать различные коллективные операции, выполняемые во время сеанса профилирования. Различные экземпляры этой коллективной операции могли выполняться в разных группах реплик (например, AllGather ); круговая диаграмма показывает распределение времени между этими различными экземплярами.
Подробности таблицы статистики операций HLO
Вы можете щелкнуть любой заголовок столбца, чтобы отсортировать таблицу статистики операций HLO. Порядок по умолчанию основан на общем времени выполнения операции (помеченном в таблице как «ранг»).
Таблица включает следующую информацию для каждой операции HLO:
- Имя операции: уникальное имя, присвоенное операции HLO компилятором XLA.
- Идентификатор программы: идентификатор модуля HLO, с которым связана эта операция.
- Категория операций HLO: они в основном определяются компилятором XLA; XProf дополнительно использует эвристику для идентификации и классификации определенных операций (например, слияния сверток).
- Текст HLO Op: предоставляется компилятором XLA и включает такие сведения, как типы и формы входных данных/параметров.
- Имя операции платформы: операция на уровне платформы (например, JAX), в результате которой была сгенерирована эта операция HLO.
- Вхождения: общее количество раз, когда данная конкретная операция HLO выполнялась в течение периода профилирования.
- Общее время (мкс): совокупное время, затраченное на выполнение этой операции во всех ее случаях. Если у этой операции есть какие-либо дочерние операции (например, в рамках слияния), это время включает время, проведенное в этих дочерних операциях.
- Среднее время (мкс): среднее время выполнения этой операции HLO, включая время, затраченное на дочерние операции, если таковые имеются.
- Общее время самостоятельного выполнения (мкс): совокупное время, проведенное исключительно в теле этой операции HLO, исключая любое время, затраченное на ее дочерние операции.
- Среднее время выполнения (мкс): среднее время выполнения этой операции HLO, исключая время, затраченное на ее дочерние операции.
- Общее время работы (%): время работы операции в процентах от общего времени на устройстве во всех операциях.
- Совокупное общее время на себя (%): текущая сумма общего времени на себя (%) для всех операций, которые появляются раньше в порядке «ранга».
- Задержка DMA (%): процент общего времени, в течение которого операция была остановлена из-за операций прямого доступа к памяти (DMA).
- Потребление полосы пропускания (использование в секунду) для FLOP, HBM и внутренней памяти TPU, если она доступна (например, CMEM присутствует только в TPU v4). Все они рассчитываются с использованием статического анализа затрат компилятора (числитель) и профилированного времени выполнения (знаменатель).
- Модель GFLOPS/s: Стоимость GFLOP вычисляется компилятором XLA, а время измеряется профилем.
- Нормализованные GFLOPS/с: нормализует число FLOP, вычисленное компилятором для каждой операции, на основе его числовой точности и пиковых значений FLOP, поддерживаемых устройством для различной точности. Например, TPU v6e поддерживает в два раза больше пиковых значений FLOP при int8, чем при bf16; По умолчанию XProf нормализуется до bf16.
- Пропускная способность памяти: количество байт/с, потребляемых операцией из любой памяти (например, встроенного TPU VMEM и HBM). Компилятор XLA предоставляет количество «байтов», а продолжительность измеряется в профиле.
- HBM BW: количество байт/с, конкретно потребляемых из HBM.
- Эксплуатационная интенсивность: рассчитывается как соотношение FLOPS на байт, определенное для анализа линии крыши.
- Ограничение вычислений/памяти. На основе модели Roofline в этом столбце указывается, ограничена ли производительность операции в первую очередь вычислительными возможностями или пропускной способностью памяти.
- Рематериализация: указывает, была ли операция частью рематериализации.
- Внешняя компиляция: указывает, выполнялась ли операция на центральном процессоре с использованием средства внешней компиляции Tensorflow.
- Автонастройка: указывает, была ли операция автоматически настроена XLA. Дополнительные сведения см. в разделах «Автонастройка» и «Постоянная автонастройка» .