Эффективные методы реализации моделей ИИ
От числа к векторному представлению
Чтобы понять квантизацию — нужно понимать биты.
Чтобы понять Flash Attention — нужно понимать память.
Чтобы понять оптимизацию — нужно считать руками.
Путь: 8-bit CPU → арифметика → матрицы → нейронные сети
8-bit, 4 регистра (A, B, C, D), SP, DP, флаги Zero, Carry и Fault
64 КБ (256 страниц × 256 байт), консоль на 0xE8–0xFF (24 символа)
Первая программа
CALL/RET — вызов подпрограммы и возврат. PUSH/POP — сохранение регистров на стеке.
Консоль начинается с адреса 0xE8 (232). Запись байта в этот диапазон выводит символ.
DB — директива данных, размещает строку прямо в памяти программы.
3 раунда · 2 команды · 30 минут
Обратный отсчёт
Выведите в консоль: 5 4 3 2 1 0
Подсказка: ASCII код символа '0' = 48. Чтобы превратить цифру в символ — прибавьте 48.
Сумма массива
Массив из 5 чисел: 10, 20, 30, 15, 25
Посчитайте сумму (= 100) и выведите результат в консоль.
Скалярное произведение
Два вектора: [3, 5, 2] и [4, 1, 6]
Вычислите скалярное произведение и выведите результат (= 29).
MUL умножает A на операнд, результат остаётся в A.