Comments (8)
What happens if we do a top level @nospecialiize
on the whole package?
Answer: helps a bit but not much
from chainrulescore.jl.
What happens if we do a top level @nospecialiize on the whole package?
Is there still a large overhead between first and second call? Or are they about the same?
from chainrulescore.jl.
It was below the noise level for both.
Some minor different in allocations but not much.
from chainrulescore.jl.
You're probably just getting interpreter run time then
from chainrulescore.jl.
This feels a lot better when I was trying it after the breakup into two packages,
and when working in julia 1.3,
but I've not done new timing.
I suspect breaking into two packages has made precompilation happier.
from chainrulescore.jl.
#35 does indeed fix this.
Test Script
using Pkg: @pkg_str
pkg"activate /Users/oxinabox/JuliaEnvs/ChainRulesWorld/"
using ChainRules
using LinearAlgebra
function main()
x = [1 2; 3 4]
@time f, res = rrule(svd, x)
r = (U = f.U, S=f.S, V=f.V)
@time res(r)
end
main()
Timing Results
Current Master
rrule: 0.043273 seconds (29.90 k allocations: 1.602 MiB, 14.56% gc time)
res : 0.029336 seconds (59.08 k allocations: 3.668 MiB)
No cassette branch #35
rrule: 0.040967 seconds (29.90 k allocations: 1.602 MiB)
res: 0.000014 seconds (19 allocations: 1.891 KiB)
from chainrulescore.jl.
pkg"activate ChainRulesWorld"
😆
from chainrulescore.jl.
I have a Manifest.toml there
that has all the right branchs of ChainRules, ChainRulesCore, Zygote and FiniteDifferences etc
checked out for what ever I am working on.
from chainrulescore.jl.
Related Issues (20)
- ProjectTo access to undefined reference HOT 5
- writing rules for <:AbstractArray HOT 1
- ChainRulesCore v1.15.4 seems to have broken ChainRules HOT 2
- Loading ChainRulesCore.jl breaks complex number arithmetic on Julia 1.8.1 HOT 7
- ProjectTo(::Vector{Vector{Float64}}) type unstable HOT 2
- `Reusable` and `NonReusable` reverse mode capability
- `test_rrule` fails on the pedagogical example HOT 2
- Precompiling ChainRules stack not defined HOT 3
- Warnings about unused type variable HOT 3
- Document how to define own ProjectTo's
- Document how to construct Wirtinger derivative
- Making `getproperty`, `getindex` and `iterate` more type stable for `Tangent`s HOT 1
- Make ZeroTangent() == 0 HOT 3
- Using the gradient function from Flux / Zygote with a custom rrule HOT 5
- Cannot generate `frule` seed via `one(x)` HOT 1
- overload iszero for Tangent
- `ProjectTo(::AbstractSparseMatrix{Bool})` should be trivial
- No method matching `(::ChainRulesCore.ProjectTo)(::Tuple{Float64})` HOT 9
- ProjectTo causes scalar indexing when taking adjoints of complex CuArray HOT 1
- FAQ Broken Links HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chainrulescore.jl.