Jump to content

Модель крыши

Пример модели линии крыши в ее базовой форме. Как видно на изображении, кривая состоит из двух потолков производительности для конкретных платформ: пиковой производительности процессора и потолка, определяемого пропускной способностью памяти. Обе оси представлены в логарифмическом масштабе.

Модель крыши — это интуитивно понятная визуальная модель производительности , используемая для оценки производительности данного вычислительного ядра или приложения, работающего на многоядерных , многоядерных или ускорительных процессорных архитектурах , путем демонстрации присущих аппаратных ограничений, а также потенциальных преимуществ и приоритета оптимизации . Объединив локальность , пропускную способность и различные парадигмы распараллеливания в единый показатель производительности, модель может стать эффективной альтернативой для оценки качества достигнутой производительности вместо использования простых оценок процента пиковой производительности, поскольку она дает представление как о реализации, так и о производительности. присущие ограничения производительности.

Простейшую модель линии крыши можно визуализировать, построив график зависимости производительности с плавающей запятой от пиковой производительности машины. [ нечеткий ] [ нужны разъяснения ] , пиковая пропускная способность машины и интенсивность арифметических вычислений . Результирующая кривая фактически является границей производительности, при которой существует производительность ядра или приложения, и включает в себя два потолка производительности для конкретной платформы. [ нужны разъяснения ] : потолок, полученный на основе пропускной способности памяти, и предел, полученный на основе пиковой производительности процессора (см. рисунок справа).

[ редактировать ]

Работа обозначает количество операций, выполняемых данным ядром или приложением. [1] Эта метрика может относиться к любому типу операции: от количества обновленных точек массива до количества целочисленных операций и количества операций с плавающей запятой (FLOP). [2] и выбор того или иного обусловлен удобством. Однако в большинстве случаев выражается как FLOPs . [1] [3] [4] [5] [6]

Обратите внимание, что работа является свойством данного ядра или приложения и, следовательно, лишь частично зависит от характеристик платформы.

Трафик памяти

[ редактировать ]

Трафик памяти обозначает количество байтов передачи памяти, произведенных во время выполнения ядра или приложения. [1] В отличие от , сильно зависит от свойств выбранной платформы, таких как, например, структура иерархии кэша . [1]

Арифметическая интенсивность

[ редактировать ]

Арифметическая интенсивность , также называемый эксплуатационной интенсивностью , [3] [7] это отношение работы к трафику памяти : [1] и обозначает количество операций на байт трафика памяти. Когда работа выражается как FLOPs , результирующая арифметическая интенсивность будет отношением операций с плавающей запятой к общему перемещению данных ( флопс/байт ).

Наивная линия крыши

[ редактировать ]
Пример простого графика линии крыши, на котором двух ядрах сообщается о . Первая (вертикальная пунктирная красная линия) имеет арифметическую интенсивность. это находится под потолком пиковой пропускной способности (сплошная диагональная черная линия) и тогда оно привязано к памяти . Вместо этого вторая (соответствующая крайней правой вертикальной пунктирной красной линии) имеет арифметическую интенсивность. он находится ниже потолка максимальной производительности (сплошная горизонтальная черная линия) и, следовательно, привязан к вычислительным ресурсам .

Наивная линия крыши [3] получается путем применения простого анализа границ и узких мест. [8] В этой формулировке модели линии крыши есть только два параметра: пиковая производительность и пиковая пропускная способность конкретной архитектуры , а также одна переменная — арифметическая интенсивность . Пиковая производительность, обычно выражаемая как GFLOPS , обычно может быть получена в результате сравнительного тестирования , тогда как пиковая пропускная способность, которая, в частности, относится к пиковой пропускной способности DRAM , вместо этого получается с помощью руководств по архитектуре. [1] [3] Результирующий график, обычно с обеими осями в логарифмическом масштабе , затем выводится по следующей формуле: [1] где это достижимая производительность, это максимальная производительность , это пиковая полоса пропускания и - арифметическая интенсивность. Точка, в которой производительность достигает максимального уровня производительности. , то есть место пересечения диагональной и горизонтальной крыши, определяется как точка конька. [4] Точка гребня дает представление об общей производительности машины, обеспечивая минимальную арифметическую интенсивность, необходимую для достижения максимальной производительности, и с первого взгляда показывая объем усилий, необходимых программисту для достижения максимальной производительности. [4]

Данное ядро ​​или приложение затем характеризуется точкой, определяемой его арифметической интенсивностью. (по оси х). Достижимая производительность затем вычисляется путем рисования вертикальной линии, пересекающей кривую линии крыши. Следовательно. ядро или приложение считаются привязанными к памяти, если . И наоборот, если , что вычисление Говорят привязано к вычислениям . [1]

Добавление потолков в модель

[ редактировать ]

Простая линия крыши обеспечивает лишь верхнюю границу (теоретический максимум) производительности . Хотя он по-прежнему может дать полезную информацию о достижимой производительности, он не дает полной картины того, что на самом деле ее ограничивает. Если, например, рассматриваемое ядро ​​или приложение работает намного ниже максимальной производительности, может быть полезно определить другие потолки производительности, помимо простой пиковой пропускной способности и производительности, чтобы лучше подсказать программисту, какую оптимизацию реализовать, или даже оценить пригодность используемой архитектуры по отношению к анализируемому ядру или приложению. [3] Добавленные потолки накладывают ограничение на достижимую производительность, которое находится ниже фактической линии потолка, и указывают на то, что ядро ​​или приложение не могут преодолеть ни один из этих потолков без предварительного выполнения соответствующей оптимизации. [3] [4]

График линии крыши можно расширить по трем различным аспектам: связь , добавление потолков пропускной способности ; вычисления , добавляющие так называемые внутриядерные потолки ; и местность , добавляя стены местности .

Потолок пропускной способности

[ редактировать ]

Потолки пропускной способности представляют собой диагонали полосы пропускания, расположенные ниже идеализированной пиковой диагонали полосы пропускания. Их существование связано с отсутствием какой-либо архитектурной оптимизации, связанной с памятью, такой как когерентность кэша , или оптимизации программного обеспечения, такой как плохое раскрытие параллелизма (что, в свою очередь, ограничивает использование полосы пропускания). [3] [4]

Внутренние потолки

[ редактировать ]

Внутренние потолки представляют собой изгиб, напоминающий линию крыши, под фактической линией крыши, которая может присутствовать из-за отсутствия той или иной формы параллельности . Эти потолки эффективно ограничивают достижение высокой производительности. Производительность не может превысить внутренний потолок до тех пор, пока не будет выражено и использовано основное отсутствие параллелизма. Потолки также могут быть получены из руководств по архитектурной оптимизации, а не из эталонных тестов. [3] [4]

Стены местности

[ редактировать ]

Если убрать идеальное предположение о том, что интенсивность арифметических вычислений является исключительно функцией ядра, и принять во внимание топологию кэша (и, следовательно, промахи в кэше ), интенсивность арифметических вычислений явно станет зависеть от комбинации ядра и архитектуры. Это может привести к ухудшению производительности в зависимости от баланса между результирующей интенсивностью арифметических вычислений и точкой гребня . В отличие от «правильных» потолков, полученные линии на участке линии крыши представляют собой вертикальные барьеры, через которые арифметическая интенсивность не может пройти без оптимизации. По этой причине их называют стенами локальности или стенами арифметической интенсивности . [3] [4]

Расширение модели

[ редактировать ]

С момента своего появления, [3] [4] модель была дополнительно расширена для учета более широкого набора показателей и узких мест, связанных с аппаратным обеспечением. В литературе уже имеются расширения, учитывающие влияние NUMA- организации памяти . [6] внеочередного исполнения , [9] задержки памяти , [9] [10] и более детально смоделировать кэша иерархию [5] [9] чтобы лучше понять, что на самом деле ограничивает производительность, и управлять процессом оптимизации .

Кроме того, модель была расширена, чтобы лучше соответствовать конкретным архитектурам и связанным с ними характеристикам, таким как FPGA . [11]

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и ж г час Офенбек, Г.; Штайнманн, Р.; Капаррос, В.; Спампинато, генеральный директор; Пюшель, М. (01 марта 2014 г.). «Применение модели линии крыши». 2014 Международный симпозиум IEEE по анализу производительности систем и программного обеспечения (ISPASS) . стр. 76–85. дои : 10.1109/ISPASS.2014.6844463 . ISBN  978-1-4799-3606-9 . S2CID   206992177 .
  2. ^ Дэвид А. Паттерсон, Джон Л. Хеннесси. Компьютерная организация и дизайн . п. 543.
  3. ^ Jump up to: а б с д и ж г час я дж Уильямс, Сэмюэл В. (2008). Автонастройка производительности на многоядерных компьютерах (доктор философии). Калифорнийский университет в Беркли.
  4. ^ Jump up to: а б с д и ж г час Уильямс, Сэмюэл; Уотерман, Эндрю; Паттерсон, Дэвид (01 апреля 2009 г.). «Линия крыши: содержательная модель визуальной производительности для многоядерных архитектур» . Коммун. АКМ . 52 (4): 65–76. дои : 10.1145/1498765.1498785 . ISSN   0001-0782 . S2CID   7766361 .
  5. ^ Jump up to: а б Илич, А.; Пратас, Ф.; Соуза, Л. (01 января 2014 г.). «Модель крыши с поддержкой кэша: модернизация чердака». Письма IEEE по компьютерной архитектуре . 13 (1): 21–24. дои : 10.1109/L-CA.2013.6 . ISSN   1556-6056 . S2CID   9208032 .
  6. ^ Jump up to: а б Лоуренс, Оскар Г.; Пенья, Томас Ф.; Найт, Джозеф К.; Пичел, Джон К.; Ривера, Франсиско Ф. (31 марта 2014 г.). «Использование расширенной модели Roofline для понимания привязки данных и потоков в системах NUMA» . Анналы многоядерного и графического программирования . 1 (1): 56–6 ISSN   2341-3158 .
  7. ^ «Модель производительности линии крыши» . Национальная лаборатория Лоуренса Беркли . Проверено 19 июня 2016 г.
  8. ^ Куртис, Корнилиос; Гумас, Георгиос; Козирис, Нектариос (1 января 2008 г.). «Оптимизация умножения разреженной матрицы на вектор с использованием сжатия индексов и значений». Материалы 5-й конференции по передовым технологиям . CF '08. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 87–96. CiteSeerX   10.1.1.140.9391 . дои : 10.1145/1366230.1366244 . ISBN  9781605580777 . S2CID   8038147 .
  9. ^ Jump up to: а б с Кабесас, ВК; Пюшель, М. (01 октября 2014 г.). «Расширение модели линии крыши: анализ узких мест с учетом микроархитектурных ограничений». Международный симпозиум IEEE по характеристикам рабочей нагрузки (IISWC) , 2014 г. стр. 222–231. дои : 10.1109/IISWC.2014.6983061 . ISBN  978-1-4799-6454-3 . S2CID   33023605 .
  10. ^ Лоренцо, Огайо; Пена, ТФ; Кабалейро, JC; Пичел, Дж. К.; Ривера, ФФ (26 марта 2014 г.). «3DyRM: динамическая модель линии крыши, включая информацию о задержке памяти». Журнал суперкомпьютеров . 70 (2): 696–708. дои : 10.1007/s11227-014-1163-4 . ISSN   0920-8542 . S2CID   5318695 .
  11. ^ да Силва, Бруно; Брекен, Ан; Д'Холландер, Эрик Х.; Тухафи, Абдалла (1 января 2013 г.). «Моделирование производительности для FPGA: расширение модели линии крыши с помощью инструментов синтеза высокого уровня» . Международный журнал реконфигурируемых вычислений . 2013 : 1–10. дои : 10.1155/2013/428078 . hdl : 1854/LU-4226966 . ISSN   1687-7195 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 20ce713b97c07b5e9b4805bdaf494f0c__1704319980
URL1:https://arc.ask3.ru/arc/aa/20/0c/20ce713b97c07b5e9b4805bdaf494f0c.html
Заголовок, (Title) документа по адресу, URL1:
Roofline model - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)