Инструмент моделирования линии крыши
Инструмент «Модель линии крыши» предлагает интуитивно понятную визуальную модель производительности, которую можно использовать для понимания внутренних аппаратных ограничений, влияющих на производительность вашей программы. В частности, он фокусируется на том, ограничена ли программа памятью или вычислительными ресурсами, а также на том, насколько производительность программы близка к теоретической пиковой производительности оборудования, представленной в виде «линии крыши».

Поддерживаемые платформы
Поддерживаются как TPU, так и GPU, поддержка GPU находится в стадии бета-тестирования.
Что такое диаграмма линии крыши?
Диаграмма крыши наглядно демонстрирует взаимосвязь между интенсивностью работы (FLOPS на полученный байт) и достигнутым значением FLOPS в секунду.
\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]
«Крыша» формируется наименьшим из двух значений: пикового значения FLOPS и производительности, достижимой с учётом пропускной способности памяти и интенсивности работы. Точка на гребне указывает минимальную интенсивность работы, необходимую для достижения пикового значения FLOPS.
Дополнительную информацию о моделях Roofline можно найти в статье Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures или в разделе «Модель Roofline» в Википедии.
Интерпретация диаграммы линии крыши
Отобразив на графике интенсивность работы и достигнутые показатели FLOPS для различных этапов, частей программы или отдельных операций HLO, вы можете получить представление об узких местах производительности:
- Если точка данных находится на наклонной части линии крыши, производительность, вероятно, ограничена пропускной способностью памяти (ограничена объёмом памяти). Увеличение интенсивности работы (выполнение большего количества вычислений на каждый байт данных) потенциально может повысить производительность.
- Если точка данных находится на плоской части линии крыши, производительность, вероятно, ограничена вычислительными возможностями (вычислительной мощностью). В этом случае дальнейшее увеличение интенсивности работы может не привести к значительному росту производительности, если только не удастся более эффективно использовать пиковую производительность оборудования (флопс).
- Расстояние точки данных от линии крыши указывает на потенциал повышения производительности. Большее расстояние указывает на возможность оптимизации программы для более эффективного использования возможностей оборудования.
Компоненты интерфейса
Интерфейс инструмента анализа линии кровли состоит из нескольких ключевых компонентов:
- Информация об устройстве : в этом разделе описываются характеристики оборудования; они используются для статического отображения «линий крыш» на диаграмме.
Раздел 1: Анализ на уровне программы:
- Диаграмма линии крыши на уровне программы с точками данных, соответствующими следующему:
- Общая продолжительность профиля.
- Общая продолжительность профиля, но с данными FLOPS/s, полученными из счетчиков производительности оборудования, а не из моделей стоимости по умолчанию, вычисленных компилятором XLA.
- Среднее количество полных шагов, выполненных в течение продолжительности профиля (для заданий по обучению; вы можете игнорировать терминологию шагов для заданий по выводу).
- Каждый завершенный шаг, который был выполнен в течение продолжительности профиля (для заданий по обучению; вы можете игнорировать терминологию шагов для заданий по выводу).
- Диаграмма линии крыши также имеет следующие особенности:
- Вы можете включить или исключить операции входящей/исходящей подачи, используя предоставленный раскрывающийся список.
- При наведении курсора на любую точку данных на диаграмме отображается дополнительная информация, например показатели пропускной способности для различных типов памяти, общее затраченное время и т. д.
- Таблица статистики на уровне программы, которая предоставляет дополнительные сведения для каждой точки данных, например, максимальный процент использования памяти, пиковая скорость FLOP в % и т. д.

- Диаграмма линии крыши на уровне программы с точками данных, соответствующими следующему:
Раздел 2: Анализ на уровне операций:
- Вторая диаграмма крыши, которая предоставляет более подробную информацию, с точками данных, нанесенными на график для 1000 наиболее трудоемких операций за период профилирования:
- Как и в случае с диаграммой крыши на уровне программы, наведение курсора на каждую точку данных выводит дополнительную информацию об этой операции.
- Вы можете настроить точки данных, отображаемые на диаграмме, следующими способами:
- Включение/исключение входящих и исходящих операций с помощью раскрывающегося списка.
- Фильтрация по определенным категориям операций.
- Фильтрация операций, привязанных к определенному ресурсу.
- Фильтрация по определенной именованной операции.

- Вторая статистическая таблица, аналогичная таблице уровня программы, содержит дополнительную информацию для каждой точки данных.
- Вторая диаграмма крыши, которая предоставляет более подробную информацию, с точками данных, нанесенными на график для 1000 наиболее трудоемких операций за период профилирования:
Во всех описанных выше разделах поддерживаются следующие виды памяти:
- Для TPU: HBM, VMEM, CMEM (только TPU v4).
- Для графических процессоров: HBM, L1/SharedMem.
- Соответствующие линии на диаграмме отображаются только в том случае, если в течение продолжительности профиля были операции, связанные с этой памятью. Например, если все операции связаны либо с HBM, либо с вычислительной памятью, линии для VMEM или CMEM не будут отображаться.