GNU bug report logs - #47350
[PATCH 00/29] Add Zygote (piece for Machine Learning with Julia)

Previous Next

Package: guix-patches;

Reported by: zimoun <zimon.toutoune <at> gmail.com>

Date: Tue, 23 Mar 2021 19:43:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: zimoun <zimon.toutoune <at> gmail.com>
Subject: [PATCH 00/29] Add Zygote (piece for Machine Learning with Julia)
Date: Tue, 23 Mar 2021 20:42:11 +0100
Hi,

This adds all the packages required to build Zygote, the source-to-source
automatic differentiation in Julia.

   <https://github.com/FluxML/Zygote.jl>

It is the first brick to have Flux, the Julia machine learning framework.

  <https://github.com/FluxML/Flux.jl>

Noting that (at least 3) large pieces are still missing: Juno, Documenter and
CUDA.

Speaking about the Julia package CUDA, it is required by the test suite of
Zygote, that's why the #:tests? is #f.  However, we manually check the package
by running the small examples, e.g.,

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix environment -C --ad-hoc julia julia-zygote -- julia
julia> using Zygote
[ Info: Precompiling Zygote [e88e6eb3-aa80-5325-afca-941959d7151f]

julia> f(x) = 5x + 3
f (generic function with 1 method)

julia> f(10), f'(10)
(53, 5)

julia> @code_llvm f'(10)

;  @ /gnu/store/5m6676w77bbz44prbfxhxmk88srgxy81-profile/share/julia/packages/Zygote/src/compiler/interface.jl:62 within `#43'
define i64 @"julia_#43_2036"(i64) {
top:
  ret i64 5
}

julia>  W, b = rand(2, 3), rand(2);

julia> predict(x) = W*x .+ b;

julia> g = gradient(Params([W, b])) do
         sum(predict([1,2,3]))
       end
Grads(...)

julia> g[W], g[b]
([1.0 2.0 3.0; 1.0 2.0 3.0], 2-element Fill{Float64}: entries equal to 1.0)
--8<---------------cut here---------------end--------------->8---

All the packages are not archived because of the rate limit.  They should be soon.

--8<---------------cut here---------------start------------->8---
for n in $(git log -30 --format="%s" --reverse | cut -d'-' -f2 | sed 's/\.//');
do
  ./pre-inst-env guix lint -c archival julia-${n} ;
done

gnu/packages/julia-xyz.scm:397:7: julia-constructionbase <at> 1.1.0: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:817:5: julia-macrotools <at> 0.5.6: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:1040:5: julia-reexport <at> 1.0.0: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:723:5: julia-irtools <at> 0.4.2: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:283:5: julia-colortypes <at> 0.10.12: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:1059:5: julia-requires <at> 1.1.3: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:1085:5: julia-richardson <at> 1.4.0: scheduled Software Heritage archival
gnu/packages/julia-xyz.scm:552:5: julia-finitedifferences <at> 0.12.2: Software Heritage rate limit reached; try again later
gnu/packages/julia-xyz.scm:211:5: julia-chainrulestestutils <at> 0.6.4: archival rate limit exceeded; try again later

gnu/packages/julia-xyz.scm:528:5: julia-fillarrays <at> 0.11.7: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:309:5: julia-commonsubexpressions <at> 0.3.0: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:131:5: julia-calculus <at> 0.5.1: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:441:5: julia-diffresults <at> 1.0.3: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:488:5: julia-difftests <at> 0.1.1: archival rate limit exceeded; try again later
guix lint: error: julia-compilersupportlibraries: unknown package
guix lint: error: julia-openspecfun: unknown package
gnu/packages/julia-xyz.scm:1112:5: julia-specialfunctions <at> 1.3.0: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:155:5: julia-chainrules <at> 0.7.54: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:613:5: julia-forwarddiff <at> 0.10.17: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:1221:5: julia-zygoterules <at> 0.2.1: archival rate limit exceeded; try again later
gnu/packages/julia-xyz.scm:1243:5: julia-zygote <at> 0.6.4: archival rate limit exceeded; try again later
--8<---------------cut here---------------end--------------->8---


Last, well, I feel motivated to implement an (recursive) importer, even
inaccurate, it will greatly help.


All the best,
simon

zimoun (29):
  gnu: Add julia-constructionbase.
  gnu: Add julia-macrotools.
  gnu: Add julia-nanmath.
  gnu: Add julia-reexport.
  gnu: Add julia-irtools.
  gnu: Add julia-staticarrays.
  gnu: Add julia-unitful.
  gnu: Add julia-abstractffts.
  gnu: Add julia-colortypes.
  gnu: Add julia-colors.
  gnu: Add julia-example.
  gnu: Add julia-requires.
  gnu: Add julia-chainrulescore.
  gnu: Add julia-richardson.
  gnu: Add julia-finitedifferences.
  gnu: Add julia-chainrulestestutils.
  gnu: Add julia-fillarrays.
  gnu: Add julia-commonsubexpressions.
  gnu: Add julia-calculus.
  gnu: Add julia-diffresults.
  gnu: Add julia-difftests.
  gnu: Add julia-compilersupportlibraries-jll.
  gnu: Add julia-openspecfun-jll.
  gnu: Add julia-specialfunctions.
  gnu: Add julia-diffrules.
  gnu: Add julia-chainrules.
  gnu: Add julia-forwarddiff.
  gnu: Add julia-zygoterules.
  gnu: Add julia-zygote.

 gnu/packages/julia-xyz.scm | 777 +++++++++++++++++++++++++++++++++++++
 1 file changed, 777 insertions(+)


base-commit: a2f3a456bec357394fe550d927c26bbbdaa7ba6e
-- 
2.28.0





This bug report was last modified 4 years and 55 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.