CPUx · ТРАССА ИСПОЛНЕНИЯ
Между кодом
и временем
Для тех, кто читает простой код: процессор, память и проверка гипотез.
Знаете термин? Поиск →КОРОТКИЙ ПУТЬ · ОТ КОДА К ПРОВЕРКЕ
Три шага для первого разбора
- Шаг 01Отделите ISA от устройства ядра
- Шаг 02Проследите зависимость данных
- Шаг 03Поставьте небольшой опыт
Linux, терминал и компилятор C11/POSIX. Сначала проверьте контрольную сумму, затем сравните времена.
ПОЛНЫЙ ИНДЕКС · 7 РУКОВОДСТВ
Выберите тему без маршрута
Номера — порядок в каталоге, а не обязательные шаги чтения.
ISA и микроархитектура
Проследим простое сложение в RISC-V, отделим аппаратный контракт от ABI и проверим, что меняют параметры компиляции.
Как процессор выполняет программу
Разберём маленькую программу, построим её зависимости и отличим время одной инструкции от потока результатов.
Кэш, память и локальность
Посчитаем обращения к учебным кэш-линиям и разберём, что действительно сравнивает обход массива с разным шагом.
Условные переходы и предсказание
Одинаковые значения в разном порядке помогают поставить опыт, но сами по себе не доказывают ошибку предсказателя.
Как измерять производительность
Соберём проверяемый тест обхода массива: одинаковые данные, разные маршруты, контрольная сумма и серия повторов.
Ядра, потоки и предел ускорения
Рассчитаем предел для задачи фиксированного размера и разберём два разных источника потерь: общий замок и ложное разделение кэш-линии.
Частота, мощность и нагрев
Разделим частоту и скорость задачи, прочитаем доступную политику Linux и сравним короткую и длительную нагрузку без разгона.