Size: a a a

2020 January 21

A

Andrei Konshyn in pro.asm
И может немного не по теме, но если кто знает, подскажите еще такой момент:
как можно замерить влияние суперскалярности на производительность?
Есть ли тулзятины, которые помогают как-то трекать prefetching, out of order, superscalar, branch prediction и т.п. штуки (если не все перечислил:))
источник

КП

Король Плутин in pro.asm
Andrei Konshyn
И может немного не по теме, но если кто знает, подскажите еще такой момент:
как можно замерить влияние суперскалярности на производительность?
Есть ли тулзятины, которые помогают как-то трекать prefetching, out of order, superscalar, branch prediction и т.п. штуки (если не все перечислил:))
Самому написать?
источник

A

Andrei Konshyn in pro.asm
Король Плутин
Самому написать?
даже не знаю как подступиться.
есть тематичские линки?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
Andrei Konshyn
чуваки, подскажите, пожалуйста, что здесь происходит?
https://monosnap.com/file/9bd2MgMnN1KWxicbSRRnbsjR8v6KYz

скомпилил nasm’ом обычный хелло_ворлд, слинковал и сделал дизасм.
MacOS.
у тя на этом участке памяти нули, дизасм расшифровывает эти опкоды так как ты и видишь
источник

A

Andrei Konshyn in pro.asm
нули  - это nop?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
Andrei Konshyn
нули  - это nop?
нули это 0000
источник

A

Andrei Konshyn in pro.asm
а, понял
спасибо
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
у nop код инстукции другой
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Andrei Konshyn
И может немного не по теме, но если кто знает, подскажите еще такой момент:
как можно замерить влияние суперскалярности на производительность?
Есть ли тулзятины, которые помогают как-то трекать prefetching, out of order, superscalar, branch prediction и т.п. штуки (если не все перечислил:))
Читай об инструкции rdpmc. Я её не использовал, просто знаю, что она есть и позволяет получать счётчики производительности (в т.ч. last-level cache misses, branch misses и пр). Короче, 18-я глава 3-го тома интеловского мана + описание инструкции во 2-м томе.
Но это нетривиальная задача. Инструкция привилегированная, а значит придётся юзать драйвер.
В качестве примера использования можно взять PMCTest Агнера Фога: https://www.agner.org/optimize/#testp (драйвер в комплекте).
Но разбираться придётся самому.
источник

A

Andrei Konshyn in pro.asm
Евгений Красников (Jin X)
Читай об инструкции rdpmc. Я её не использовал, просто знаю, что она есть и позволяет получать счётчики производительности (в т.ч. last-level cache misses, branch misses и пр). Короче, 18-я глава 3-го тома интеловского мана + описание инструкции во 2-м томе.
Но это нетривиальная задача. Инструкция привилегированная, а значит придётся юзать драйвер.
В качестве примера использования можно взять PMCTest Агнера Фога: https://www.agner.org/optimize/#testp (драйвер в комплекте).
Но разбираться придётся самому.
спасибо!
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Но это если самому делать.
А готовые "тулзятины" — это профайлеры, собственно. Intel VTune Amplifier, к примеру.
Правда, вот не подскажу, может ли он давать такую подробную инфу. Не так много им пользовался, да и времени много прошло с последнего раза.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Есть ещё Intel Architecture Code Analyzer (IACA).
Не знаю, насколько он будет по теме. Это статический анализатор кода. Как там branch misses протестить через него — х/з, но вероятно, что-то придумать можно :))
источник
2020 January 22

s

s54816 in pro.asm
Andrei Konshyn
И может немного не по теме, но если кто знает, подскажите еще такой момент:
как можно замерить влияние суперскалярности на производительность?
Есть ли тулзятины, которые помогают как-то трекать prefetching, out of order, superscalar, branch prediction и т.п. штуки (если не все перечислил:))
Линукс и perf? Сделать perf list, посмотреть, что процессор умеет отдавать.
источник

WI

Walking In the Darkness in pro.asm
#book
источник

WI

Walking In the Darkness in pro.asm
Тяжело когда нету закладки с этим тегом. Приходится в поисковик каждый раз заходить.
источник

A

Andrei Konshyn in pro.asm
а может в курсе, почему он мне 4к этих нулей забомбил?
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Andrei Konshyn
а может в курсе, почему он мне 4к этих нулей забомбил?
Как можно нормально ответить на этот вопрос просто по скриншоту куска кода с нулями?
Вообще, страница памяти обычно имеет размер 4кб.
источник

A

Andrei Konshyn in pro.asm
Евгений Красников (Jin X)
Как можно нормально ответить на этот вопрос просто по скриншоту куска кода с нулями?
Вообще, страница памяти обычно имеет размер 4кб.
https://pastebin.com/SA1NrG9U

если бы я знал как спросить, я бы спросил.
у меня обычный “hello world” бинарь на ассемблере на диске.
как это связано со страничной памятью? не понимаю.
или это как-то связано с тем, что файлы в фс не хранятся размером меньше, чем 4кб?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
Andrei Konshyn
а может в курсе, почему он мне 4к этих нулей забомбил?
винда при выделении памяти под секции программы (code data итд) видимо зануляет выделенные участки.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
ещё возможно при вырпвнивании кода, данных компиль может нулями заполнить промнжуток
источник