Show HN: Luminal – Open-source, search-based GPU compiler
luminal — библиотека для глубокого обучения, работающая «со скоростью света».
Основное
- Язык: Rust
- Цель: максимально быстрое вычисление градиентов и обучение нейросетей.
- Подход: компиляция вычислительного графа в высокооптимизированный нативный код (LLVM).
Возможности
- Автоматическое дифференцирование.
- JIT-компиляция графов.
- Поддержка CPU и GPU (CUDA).
- Минимальные накладные расходы: нет Python-интерпретатора и лишних библиотек.
Примеры
let x = Cpu::tensor([1.0, 2.0, 3.0]);
let y = x.relu().sum();
let g = y.backward(); // градиент за наносекунды
Установка
cargo add luminal
Статус
Проект в активной разработке; API может меняться.
Комментарии (53)
- Luminal — это ML-фреймворк, который вместо ручных правил формулирует оптимизацию как поиск по огромному пространству возможных ядер (tiling, потоки, инструкции и т.д.) с помощью e-graphs.
- Сейчас на M-серии MacBook Llama-3 8B Q8 выдаёт 15-25 ток/с; это ниже llama.cpp, но команда строит трекер производительности и продолжает улучшать поиск.
- Поиск ограничен 12 базовыми линейно-алгебраическими операциями, что делает задачу похожей на «superoptimisation» и позволяет добавлять аппаратно-специфичные инструкции (tensor cores, PTX/ASM) без роста frontend.
- Для оценки качества ядра используется реальное время выполнения на целевом железе; масштабировать планируют распараллеленным профилированием на кластерах GPU.
- Отличие от TVM/tinygrad — единое пространство поиска, включающее как параметры тайлинга, так и алгебраические преобразования (например, softmax → flash-attention).
Who Invented Backpropagation?
Кто изобрел обратное распространение ошибки (backpropagation)
Современный backpropagation (BP) впервые опубликовал в 1970 г. финский магистрант Сеппо Линнайнмаа [BP1][R7]; 2020 г. отмечали 50-летие метода. Предшественник — работа Келли 1960 г. [BPA].
BP — это обратный режим автоматического дифференцирования: стоимость вычисления градиента примерно равна стоимости прямого прохода. Линнайнмаа дал алгоритм для произвольных разреженных сетей и привёл код на FORTRAN; все современные фреймворки (TensorFlow и др.) опираются на его метод.
В 1960-е уже применяли цепное правило Лейбница для градиентного спуска в многослойных системах (Келли, Брайсон, Дрейфус и др.), но без учёта эффективности для разреженных сетей.
Первое применение BP к обучению весов нейросетей — Дрейфус 1973 г.; первое NN-специфическое описание — Вербос 1982 г. [BP2] (в диссертации 1974 г. его ещё нет).
Уже в 1967 г. Амари с учеником Сайто обучал пятислойный перцептрон SGD, получая внутренние представления; это было глубокое обучение задолго до 1980-х. Параллельно Ивахненко строил глубокие сети GMDH (с 1965 г.).
К 1985 г. вычисления подешевели в 1000 раз; Румелхарт и др. показали, что BP формирует полезные скрытые представления.
Комментарии (86)
- Суть спора: кто «изобрёл» backpropagation — Хинтон/Румелхарт (1980-е) или она была раньше в теории управления и автоматическом дифференцировании (1960-е, Kelley, Amari и др.).
- Большинство участников считают, что это лишь эффективное применение цепного правила, которое переоткрывалось множество раз.
- Юрген Шмидхубер подаётся как главный «скептик», обвиняющий академическое сообщество в игнорировании более ранних работ.
- Некоторые подчеркивают, что решающим стало не само «изобретение», а переход к GPU и масштабируемым фреймворкам в 2010-х.