Модель Roofline

Предлагаемая простая модель связывает производительность работы с числами с плавающей точкой, арифметическую интенсивность и производительность памяти (Williams, Patterson, 2008). Пиковая производительность работы с числами с плавающей точкой может быть определена с использованием вышеупомянутых спецификаций оборудования. Рассматриваемый здесь рабочий набор базовых компонентов не помещается в кэш-память, имеющуюся на кристалле, поэтому пиковая производительность памяти может быть определена в отношении системы памяти с отставанием от устройств кэш-памяти. Один из способов определения пиковой производительности памяти – использование контрольной задачи Stream.

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

Модель Roofline Williams, Patterson, 2008). У данного примера пиковая производительность работы с числами с плавающей точкой равна 16 Гфлоп/с, а пиковая пропускная способность памяти, полученная по результатам выполнения контрольной задачи Stream, равна 16 Гбайт/с. (поскольку при ее выполнении делается четыре измерения, эта линия является их средним показателем). Выделенная другим оттенком точечная вертикальная линия слева представляет Базовый компонент 1 (Kernel 1), имеющий арифметическую интенсивность 0,5 флоп/байт. Его производительность ограничена пропускной способностью (bandwidth – BW) памяти и на данном процессоре Opteron X2 не может превышать в Гфлоп/с. Вертикальная точечная линия справа представляет Базовый компонент 2 (Kernel 2), с арифметической интенсивностью 4 флоп/байт. Производительность ограничена только вычислительными возможностями, равными 16 Гфлоп/с.

Как изобразить графически пиковую производительность памяти? Поскольку по оси X откладываются значения в флоп/байт, а по оси Y откладываются значения в флоп/с, то на этом рисунке байт/с – это просто диагональная линия под углом 45 градусов. Следовательно, можно нарисовать еще одну линию, показывающую максимальную производительность работы с числами с плавающей точкой, поддерживаемую системой памяти данного компьютера для заданной арифметической интенсивности.

Достижимый показатель Гфлоп/с = Min (пиковая пропускная способность памяти, Арифметическая интенсивность, пиковая производительность работы с числами с плавающей точкой).

Горизонтальные и диагональные линии дали этой простой модели имя и показывают ее значение. «Линия крыши» («roofline») устанавливает верхнюю границу производительности базового компонента в зависимости от его арифметической интенсивности. Если арифметическая интенсивность представляется в виде столба, упирающегося в крышу, то этот столб упирается либо в ее плоскую часть – ограничение производительности вычислительными возможностями, либо упирается в наклонную часть крыши – производительность ограничена пропускной способностью памяти. Базовый компонент 2 является примером первого ограничения, а базовый компонент 1 – примером второго ограничения. При заданной для компьютера линии крыши ее можно использовать не один раз, поскольку она не зависит от базового компонента.

Учтите, что «ребро», где встречаются диагональ и горизонталь крыш, предлагает интересный взгляд на возможности компьютера. Если пойти от него вправо, то максимальной производительности этого компьютера могут достичь только базовые компоненты с высокой арифметической интенсивностью. Если пойти влево, то максимальной производительности может достичь практически любой базовый компонент.





Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: