Contenuto
Latency profiler Представьте ситуацию, вы пишете код на Python, вызываете посередине библиотеку, например, для inference, понимаете, что программа работает медленно. Собираете профиль с помощью стандартных утилит вроде perf, и в итоге видите следующую картину 90% Matmul 10% some Python Смотрите на это, расстраивайтесь, ведь умножение матриц скорее всего так сильно соптимизировано, что можно даже не пытаться. К счастью, не все так просто. Perf собирает события со всех потоков и CPU, которые суммируются. В итоге если вдруг умножение матриц было на многих ядрах, скажем, 8, то вы увидите в профиле, что вес matmul в 8 раз больше. Недавно в perf добавили --latency, тулза, которая делит все события на количество активных CPU. После этого вы можете увидеть профиль в духе 40% matmul 60% some Python Теперь оптимизировать питон есть смысл для задержки (latency), ведь профиль показывает, что из реального времени вы провели 40% в умножении матриц (может, на многих ядрах) и 60% в питоне (скорее всего в 1 ядре). Это часто бывает полезно в серверах, системах сборки, в тулзах командной строки. Не без ограничений, если у вас многопоточный сервер, у которого есть thread pool для какой-то работы, то математика задержки будет сложнее. Тестировать лучше изолированно и без нагрузки на остальную систему. Полезно, но надо знать как пользоваться. https://www.phoronix.com/news/Linux-6.15-Perf-Tools-Latency