CPUx

CPUx · ТРАССА ИСПОЛНЕНИЯ

Между кодом
и временем

Для тех, кто читает простой код: процессор, память и проверка гипотез.

Знаете термин? Поиск →

КОРОТКИЙ ПУТЬ · ОТ КОДА К ПРОВЕРКЕ

Три шага для первого разбора

  1. Шаг 01Отделите ISA от устройства ядра
  2. Шаг 02Проследите зависимость данных
  3. Шаг 03Поставьте небольшой опыт

    Linux, терминал и компилятор C11/POSIX. Сначала проверьте контрольную сумму, затем сравните времена.

ПОЛНЫЙ ИНДЕКС · 7 РУКОВОДСТВ

Выберите тему без маршрута

Номера — порядок в каталоге, а не обязательные шаги чтения.

01 · Основы

ISA и микроархитектура

Проследим простое сложение в RISC-V, отделим аппаратный контракт от ABI и проверим, что меняют параметры компиляции.

02 · Основы

Как процессор выполняет программу

Разберём маленькую программу, построим её зависимости и отличим время одной инструкции от потока результатов.

03 · Память

Кэш, память и локальность

Посчитаем обращения к учебным кэш-линиям и разберём, что действительно сравнивает обход массива с разным шагом.

04 · Исполнение

Условные переходы и предсказание

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

05 · Практика

Как измерять производительность

Соберём проверяемый тест обхода массива: одинаковые данные, разные маршруты, контрольная сумма и серия повторов.

06 · Параллелизм

Ядра, потоки и предел ускорения

Рассчитаем предел для задачи фиксированного размера и разберём два разных источника потерь: общий замок и ложное разделение кэш-линии.

07 · Практика

Частота, мощность и нагрев

Разделим частоту и скорость задачи, прочитаем доступную политику Linux и сравним короткую и длительную нагрузку без разгона.