Skip to content

Commit b9b78cf

Browse files
committed
A few words on current status
1 parent ffe4976 commit b9b78cf

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

README.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Diffractor - Next Generation AD
22

3+
# General Overview
4+
35
Diffractor is an experimental next-generation, compiler-based AD system for Julia.
46
Its public interface should be fimilar to users, essentially matching Zygote.
57

@@ -8,20 +10,26 @@ Design goals:
810
- Efficient higher order derivatives
911
- Reasonable compile times
1012
- High flexibility (like Zygote)
13+
- Support for foward/reverse/mixed modes
1114

1215
This is achieved through a combination of innovations:
1316
- A new lowest level interface more suited to higher order AD (∂⃖ the "AD optic functor" or "diffractor"),
1417
more suited to higher order AD
1518
- New capabilities in Base Julia (Opaque closures, inference plugins)
1619
- Better integration with ChainRules.jl
1720

21+
# Current Status
22+
1823
The plan is to implement this in two stages:
1924
1. Generated function based transforms, using the ChainRules, the new low level interface and Opaque closures
2025
2. Adding inference plugins
2126

22-
After stage 1, Diffractor should hopefully match Zyogte in terms us usability,
23-
while having slightly better performance. Stage 2 is required for full performance,
24-
but should not require any interface changes.
27+
Currently the implementation of Phase 1 is essentially complete, though mostly untested.
28+
Experimentation is welcome, though it is probably not ready yet to be a production
29+
AD system. The compiler parts of phase 1 are a bit "quick and dirty" as the main
30+
point of phase 1 is to prove out that the overall scheme works. As a result, it
31+
has known suboptimalities. I do not intend to do much work on these, since they
32+
will be obsoleted by phase 2 anyway.
2533

26-
Work on both stages is proceeding simultaneously, but stage 2 will depend on
27-
additional features in Julia base that may take additional time to implement.
34+
A few features are still missing, e.g. chunking and I intend to do some more work
35+
on user friendly interfaces, but it should overall be useable as an AD system.

0 commit comments

Comments
 (0)