Skip to content

Commit 142bed3

Browse files
Link to videos (#507)
* Link to videos * remove excess text * Apply suggestions from code review Co-authored-by: Nick Robinson <npr251@gmail.com> * Update docs/src/videos.md * Update docs/src/videos.md Co-authored-by: Nick Robinson <npr251@gmail.com> * Use new DocThemeIndigo * new new doctheme indigo Co-authored-by: Nick Robinson <npr251@gmail.com>
1 parent f7fac32 commit 142bed3

File tree

4 files changed

+93
-9
lines changed

4 files changed

+93
-9
lines changed

docs/Manifest.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
1313
deps = ["Compat", "LinearAlgebra", "SparseArrays"]
1414
path = ".."
1515
uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
16-
version = "1.7.0"
16+
version = "1.11.0"
1717

1818
[[Compat]]
1919
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
20-
git-tree-sha1 = "1a90210acd935f222ea19657f143004d2c2a1117"
20+
git-tree-sha1 = "dce3e3fea680869eaa0b774b2e8343e9ff442313"
2121
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
22-
version = "3.38.0"
22+
version = "3.40.0"
2323

2424
[[Dates]]
2525
deps = ["Printf"]
@@ -35,15 +35,15 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
3535

3636
[[DocStringExtensions]]
3737
deps = ["LibGit2"]
38-
git-tree-sha1 = "a32185f5428d3986f47c2ab78b1f216d5e6cc96f"
38+
git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b"
3939
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
40-
version = "0.8.5"
40+
version = "0.8.6"
4141

4242
[[DocThemeIndigo]]
4343
deps = ["Sass"]
44-
git-tree-sha1 = "9f722e4ab9fe188f04c7bbe7b5d21ebd3fe0d0a1"
44+
git-tree-sha1 = "fa3a2ed249cb5545335e1928541734472daef284"
4545
uuid = "8bac0ac5-51bf-41f9-885e-2bf1ac2bec5f"
46-
version = "0.1.1"
46+
version = "0.1.3"
4747

4848
[[Documenter]]
4949
deps = ["Base64", "Dates", "DocStringExtensions", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"]
@@ -122,9 +122,9 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
122122

123123
[[Parsers]]
124124
deps = ["Dates"]
125-
git-tree-sha1 = "9d8c00ef7a8d110787ff6f170579846f776133a9"
125+
git-tree-sha1 = "ae4bbcadb2906ccc085cf52ac286dc1377dceccc"
126126
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
127-
version = "2.0.4"
127+
version = "2.1.2"
128128

129129
[[Pkg]]
130130
deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]

docs/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
66
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
77

88
[compat]
9+
DocThemeIndigo = "0.1.3"
910
Documenter = "0.25.2"

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ makedocs(;
5757
"Usage in AD" => "use_in_ad_system.md",
5858
"Converting ZygoteRules" => "converting_zygoterules.md",
5959
"Tips for making packages work with AD" => "tips_for_packages.md",
60+
"Videos" => "videos.md",
6061
"Design" => [
6162
"Changing the Primal" => "design/changing_the_primal.md",
6263
"Many Differential Types" => "design/many_differentials.md",

docs/src/videos.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Videos
2+
3+
For people who learn better by video we have a number of videos of talks we have given about the ChainRules project.
4+
Note however, that the videos are frozen in time reflecting the state of the packages at the time they were recorded.
5+
This documentation is the continously updated canonical source.
6+
However, we have tried to note below each video notes on its correctness.
7+
8+
The talks that follow are in reverse chronological order (i.e. most recent video is first).
9+
10+
## EuroAD 2021: ChainRules.jl: AD system agnostic rules for JuliaLang
11+
Presented by Lyndon White.
12+
[Slides](https://www.slideshare.net/LyndonWhite2/euroad-2021-chainrulesjl)
13+
14+
This is the talk to watch if you want to understand why the ChainRules project exists, what its challenges are, and how those have been overcome.
15+
It is intended less for users of the package, and more for people working in the field of AD more generally.
16+
It does also serve as a nice motivation for those first coming across the package as well though.
17+
18+
```@raw html
19+
<div class="video-container">
20+
<iframe src="https://www.youtube.com/embed/B3bC49OmTdk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
21+
</div>
22+
```
23+
24+
Abstract:
25+
> The ChainRules project is a suite of JuliaLang packages that define custom primitives (i.e. rules) for doing AD in JuliaLang.
26+
> Importantly it is AD system agnostic.
27+
> It has proved successful in this goal.
28+
> At present it works with about half a dozen different JuliaLang AD systems.
29+
> It has been a long journey, but as of August 2021, the core packages have now hit version 1.0.
30+
>
31+
> This talk will go through why this is useful, the particular objectives the project had, and the challenges that had to be solved.
32+
> This talk is not intended as an educational guide for users (For that see our 2021 JuliaCon talk: > Everything you need to know about ChainRules 1.0 (https://live.juliacon.org/talk/LWVB39)).
33+
> Rather this talk is to share the insights we have had, and likely (inadvertently) the mistakes we have made, with the wider autodiff community.
34+
> We believe these insights can be informative and useful to efforts in other languages and ecosystems.
35+
36+
37+
## JuliaCon 2021: Everything you need to know about ChainRules 1.0
38+
Presented by Miha Zgubič.
39+
[Slides](https://github.com/mzgubic/ChainRulesTalk/blob/master/ChainRules.pdf)
40+
41+
If you are just wanting to watch a video to learn all about ChainRules and how to use it, watch this one.
42+
43+
!!! note "Slide on opting out is incorrect"
44+
Slide 42 is incorrect (`@no_rrule sum_array(A::Diagonal)`), in the ChainRulesCore 1.0 release the following syntax is used: `@opt_out rrule(::typeof(sum_array), A::Diagonal)`. This syntax allows us to include rule config information.
45+
46+
```@raw html
47+
<div class="video-container">
48+
<iframe src="https://www.youtube.com/embed/a8ol-1l84gc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
49+
</div>
50+
```
51+
52+
Abstract:
53+
> ChainRules is an automatic differentiation (AD)-independent ecosystem for forward-, reverse-, and mixed-mode primitives. It comprises ChainRules.jl, a collection of primitives for Julia Base, ChainRulesCore.jl, the utilities for defining custom primitives, and ChainRulesTestUtils.jl, the utilities to test primitives using finite differences. This talk provides brief updates on the ecosystem since last year and focuses on when and how to write and test custom primitives.
54+
55+
56+
## JuliaCon 2020: ChainRules.jl
57+
Presented by Lyndon White.
58+
[Slides](https://raw.githack.com/oxinabox/ChainRulesJuliaCon2020/main/out/build/index.html)
59+
60+
This talk is primarily of historical interest.
61+
This was the first public presentation of ChainRules.
62+
Though the project was a few years old by this stage.
63+
A lot of things are still the same; conceptually, but a lot has changed.
64+
Most people shouldn't watch this talk now.
65+
66+
!!! warning "Outdated Terminology"
67+
A lot of terminology has changed since this presentation.
68+
- `DoesNotExist``NoTangent`
69+
- `Zero``ZeroTangent`
70+
- `Composite{P}``Tangent{T}`
71+
The talk also says differential in a lot of places where we now would say tangent.
72+
73+
```@raw html
74+
<div class="video-container">
75+
<iframe src="https://www.youtube.com/embed/B4NfkkkJ7rs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
76+
</div>
77+
```
78+
79+
Abstract:
80+
> The ChainRules project allows package authors to write rules for custom sensitivities (sometimes called custom adjoints) in a way that is not dependent on any particular autodiff (AD) package.
81+
> It allows authors of AD packages to access a wealth of prewritten custom sensitivities, saving them the effort of writing them all out themselves.
82+
> ChainRules is the successor to DiffRules.jl and is the native rule system currently used by ForwardDiff2, Zygote and soon ReverseDiff

0 commit comments

Comments
 (0)