Skip to content

Conversation

ZuseZ4
Copy link
Member

@ZuseZ4 ZuseZ4 commented Oct 29, 2023

just in case that we want to look something up.

wsmoses and others added 30 commits October 4, 2022 16:03
* Add addr replacement handling of memtransfer

* Update test
* Add MLIR build infra

* With tests

* Update readme

* Add initial infra

* Continue pushing towards forward mode infra

* Most primitive functioning test

* Fix cmake

* Handle control flow (fwd)

* Add scf.for

* Update enzyme-mlir.yml

* Introduce a MLIR OpInterface and redistribute code

Note that the interface is not yet implement by the ops. This will be
done separately.

* Fix CI

* Fix CI

* Fix format

* Add python3-dev

* Reduce link

* Fix build and test

Real includes must precede .inc files. A function was not returning
anything leading to a segfault.

* Factor gradient implementations out into external interface models

MLIR-code must use interfaces instead of giant switches. External models
allow for interfaces to be attached to foreign dialect ops without
modifying them.

* Factor out the type interface for shadow and null

Introduce a separate type interface for types that will be handled by
AD. This interface currently allows for defining the (unique) shadow
type of the given type and for building a null value of the type. This
is a step towards removing the dependency on the arithmetic dialect from
the AD pass.

* Drop AD pass dependency on the Arith dialect

Now that null constant manipulation has been factored out into the
interface, the only remaining use is an attempt to match a constant. Use
the robust dialect-agnostic matcher instead.

* Factor out common OpBuilder manipulation into the driver

* Drop the dependency on FuncOps from GradientUtils

We don't need to know the specific op class of a function-like op to
clone it. This makes the autodiff interface independent of the func
dialect, but the AD pass still depends on it because it creates a
function call. There is currently no way of creating a function call in
an abstracted way, short of which the pass dependency on the func
dialect cannot be removed.

* Update enzyme-mlir.yml

* Only release llvm

* Fix CI

* Rebase

* Simplify TA

Co-authored-by: Alex Zinenko <zinenko@google.com>
* Consider even atomic loads as non-active writing

* Fix dso local nofree
Add autodiff attribute to foreign mods

Forward information to codegen backend
* Only with inst

* cleanup

* Add external warning

* Add checkedmerge

* fixup

* preserve ptls

* Fix LLVM Load default TT

* Fix phi lose
* Add noalias preservation to unwrap

* Fixup

* ix up
* Custom zero

* Enable on differentials

* Cleanup
* Custom forward zero

* Fix activity analysis of agg
* Keep integer extract

* Fixup
* Cleanup allocation and remat

* fix
@rustbot
Copy link
Collaborator

rustbot commented Oct 29, 2023

r? @b-naber

(rustbot has picked a reviewer for you, use r? to override)

@rustbot
Copy link
Collaborator

rustbot commented Oct 29, 2023

⚠️ Warning ⚠️

  • These commits modify submodules.

@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Oct 29, 2023
@ZuseZ4 ZuseZ4 closed this Oct 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.