diff options
author | zamfofex <zamfofex@twdb.moe> | 2025-02-23 10:33:45 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2025-02-23 10:55:34 +0100 |
commit | 9a0e97c4942fd2ef82ab9709316941010fc4b617 (patch) | |
tree | 2896ef7817d1bdd9fc9167f3207d28b653c1cbd6 | |
parent | 2ae74fb0b718e51814e454113de9474a49a3eadc (diff) | |
download | guix-9a0e97c4942fd2ef82ab9709316941010fc4b617.tar.gz guix-9a0e97c4942fd2ef82ab9709316941010fc4b617.zip |
gnu: lc0: Add neural networks for Leela Chess Zero.
* gnu/packages/lc0.scm (make-lc0-net, make-lc0-official-net)
(make-lc0-contrib-net): New procedures.
* gnu/packages/lc0.scm (lc0-t2, lc0-t1, lc0-t1-512, lc0-t1-256)
(lc0-611246, lc0-791556, lc0-815383): New variables.
Change-Id: I6ea23b353034de42a11f7944bb4de179c395fb62
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
-rw-r--r-- | gnu/packages/lc0.scm | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/gnu/packages/lc0.scm b/gnu/packages/lc0.scm index c7dad28ecd..d077d9f4d1 100644 --- a/gnu/packages/lc0.scm +++ b/gnu/packages/lc0.scm @@ -17,7 +17,10 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages lc0) + #:use-module (guix build utils) #:use-module (guix build-system meson) + #:use-module (guix build-system trivial) + #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -70,3 +73,87 @@ using neural networks. This package does not provide a neural network, which is necessary to use Leela Chess Zero and should be installed separately.") (home-page "https://lczero.org") (license license:gpl3+))) + +(define (make-lc0-net name file-name url hash description) + (package + (name (string-append "lc0-" name)) + (version "0") + (source (origin + (method url-fetch) + (uri url) + (file-name (string-append "lc0-" file-name)) + (sha256 + (base32 hash)))) + (build-system trivial-build-system) + (arguments + (list #:builder + (with-imported-modules '((guix build utils)) + #~(let ((share (string-append #$output "/share/lc0/"))) + (use-modules (guix build utils)) + (mkdir-p share) + (copy-file (assoc-ref %build-inputs "source") + (string-append share #$file-name)))))) + (synopsis "Pre-trained neural network for Leela Chess Zero") + (description description) + (home-page "https://lczero.org") + (license license:gpl3+))) + +(define-public (make-lc0-official-net name url-hash hash description) + (make-lc0-net + name + (string-append name ".pb.gz") + (string-append "https://storage.lczero.org/files/networks/" url-hash) + hash + description)) + +(define-public (make-lc0-contrib-net name file-name hash description) + (make-lc0-net name file-name + (string-append + "https://storage.lczero.org/files/networks-contrib/" + file-name) + hash description)) + +(define-public lc0-t2 + (make-lc0-contrib-net "t2" "t2-768x15x24h-swa-5230000.pb.gz" + "126305hby24k5agxiixadp1lcgmv8drm1dkpb4jf5jzq7k4m855w" + "T2 is currently one of the best neural networks for Leela Chess Zero, +superseding the neural network T1.")) + +(define-public lc0-t1 + (make-lc0-contrib-net "t1" "t1-768x15x24h-swa-4000000.pb.gz" + "0zm9v91gfnm69n4x2fckair24fypjrwiip3j86ylsqncsi1sh5nq" + "T1 is currently one of the best neural networks for Leela Chess Zero, +however, it was superseded by the neural network T2.")) + +(define-public lc0-t1-512 + (make-lc0-contrib-net "t1-512" "t1-512x15x8h-distilled-swa-3395000.pb.gz" + "1s4pq06qkdpaq0a4z6j5qqnf6h7njpmwh7i0v7qh6bmhwlcibnqz" + "This is a smaller version of the T1 neural network, which is currently one +of the best neural networks for Leela Chess Zero.")) + +(define-public lc0-t1-256 + (make-lc0-contrib-net "t1-256" "t1-256x10-distilled-swa-2432500.pb.gz" + "01ilar7y2nf3kfkq3x77n4jxlvqdpgddjsham2wz4dmdx35ac9xw" + "This is a smaller version of the T1 neural network, which is currently one +of the best neural networks for Leela Chess Zero.")) + +(define-public lc0-611246 + (make-lc0-official-net "611246" + "7ca2381cfeac5c280f304e7027ffbea1b7d87474672e5d6fb16d5cd881640e04" + "0rapfvjqqrhydhp8a6r3skmjci2dc2yxz912bglv9yd9k00l9rww" + "This is an official neural network of a ``main run'' of the Leela Chess +Zero project that was finished being trained in January of 2022.")) + +(define-public lc0-791556 + (make-lc0-official-net "791556" + "f404e156ceb2882470fd8c032b8754af0fa0b71168328912eaef14671a256e34" + "03b9xl9vkiihdilz5dzcpg6g4inb6n4k5gs911i3gbd8h9sh9ixi" + "This is an official neural network of the Leela Chess Zero project that +was finished being trained in April of 2022.")) + +(define-public lc0-815383 + (make-lc0-official-net "815383" + "8af6098d6fb76e2bef6ef9ee87e61fadcb99f0b789013a72953a95ad10a9e933" + "09gm8lgaick60rn4x9h9w5sxdqivr4ign73viviadw1gj7wsbnsg" + "This is an official neural network of a ``main run'' of the Leela Chess +Zero project. The network was finished being trained in September of 2023.")) |