Skip to content

hexqnt/autodiff-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📽️ Презентация (PDF): presentation/slides.pdf

Автоматическое дифференцирование в Rust

Этот репозиторий — набор небольших примеров и экспериментов вокруг автоматического дифференцирования в Rust: от простых дуальных чисел и ручного reverse‑mode до использования std::autodiff(Enzyme).

Структура репозитория 🗂️

  • crates/forward_mode — реализация дуальных чисел и forward‑mode AD.
  • crates/reverse_mode — минимальный пример ручного reverse‑mode с лентой операций.
  • crates/enzyme_base — песочница для экспериментов с Enzyme и std::autodiff.
  • crates/ad_artifacts — небольшие «артефакты»: ветвления, негладкие функции, численная устойчивость и т.п.
  • crates/fake_cblas — прикидываемся cblas_dgemm поверх faer для экспериментов с мат-осведомлёнными градиентами Enzyme.
  • crates/regression — пример оптимизации/регрессии с использованием библиотеки argmin.
  • presentation/ — слайды доклада про автодифференцирование в Rust (slides.typ, slides.pdf).
  • py/ — пример SymPy и кодогенерация Rust кода.

just: удобный таск‑раннер 🛠️

В корне лежит justfile. just — это небольшой таск‑раннер в духе make, но заточенный под удобный запуск часто используемых команд.

Основные рецепты:

  • just или just list — показать список доступных задач.
  • just install — скачать и собрать rustc с поддержкой Enzyme, зарегистрировать тулчейн enzyme в rustup.
  • just toolchain — посмотреть установленные тулчейны (rustup toolchain list).
  • just uninstall — убрать кастомный тулчейн enzyme и локальную папку с исходниками.
  • just run <crate> — запустить конкретный пример.
  • just expand <crate> — посмотреть развёрнутый после макросов код (для получения декларации диф. функции).
  • just clean — очистить target/.

Typst и презентация 🧾

Слайды лежат в presentation/slides.typ и собираются в slides.pdf при помощи Typst. Чтобы пересобрать презентацию, выполните команду:

typst compile presentation/slides.typ presentation/slides.pdf

About

Набор примеров и экспериментов вокруг автоматического дифференцирования в Rust

Topics

Resources

Stars

Watchers

Forks

Contributors