📽️ Презентация (PDF): presentation/slides.pdf
Этот репозиторий — набор небольших примеров и экспериментов вокруг автоматического дифференцирования в 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 кода.
В корне лежит 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/.
Слайды лежат в presentation/slides.typ и собираются в slides.pdf при помощи Typst. Чтобы пересобрать презентацию, выполните команду:
typst compile presentation/slides.typ presentation/slides.pdf