From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 07 18:51:57 2021 Received: (at submit) by debbugs.gnu.org; 7 Apr 2021 22:51:57 +0000 Received: from localhost ([127.0.0.1]:45485 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUH1g-0000Cv-GI for submit@debbugs.gnu.org; Wed, 07 Apr 2021 18:51:57 -0400 Received: from lists.gnu.org ([209.51.188.17]:51430) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUH1e-0000Cm-OZ for submit@debbugs.gnu.org; Wed, 07 Apr 2021 18:51:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lUH1e-0003pU-GT for guix-patches@gnu.org; Wed, 07 Apr 2021 18:51:54 -0400 Received: from mail-qv1-xf35.google.com ([2607:f8b0:4864:20::f35]:35730) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lUH1c-0004uj-Ie for guix-patches@gnu.org; Wed, 07 Apr 2021 18:51:54 -0400 Received: by mail-qv1-xf35.google.com with SMTP id x27so9929249qvd.2 for ; Wed, 07 Apr 2021 15:51:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=r+opNAQPLcZQZnOJ1VJRjnXxNTkXjen3eILZJeDqra4=; b=Uj5YrGSeJe2A7mFtyOrLSC6+jay+vYiW9/2S7WtEX8PwvHHRGpjbfNQCUVPvSH5NeK F44Vh6GafWwEc4doEfznSc6WXUG5dNY1KVdt4HiTmMkMb3Xvg88EF/RNF0Y9qjHCV7OH lDPgukSrIsNQx5GAUXCf6luB0O4CPzDmoxE8TOBJfDHsWTKJX+KzIoW5dZ4OFmL9sGkl 59ejZosyLxbQnDsS/C/X9ovY726eX0FbwZqTLZQRb3HAgxrvTKO10L1ObECGPUeEH/24 y2kHJ3KjM0m91hCWGjbN9dSIwkNwFjhQTqkQHSbYAp4gFM4Wilh7qRVZ49UDkSd3h7bf SEIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=r+opNAQPLcZQZnOJ1VJRjnXxNTkXjen3eILZJeDqra4=; b=dky3ZQlU1tNQho85c5RtWZR0qNKrOMX9kXWE67lpZD+6yrkRiWc7sSmsTlSrPnZKgp +5bO62QUmnpfMsl+GJGJxe2haRb4NWRNfvmpSYVkstRiP/1b3b5PbkxAh0zqGaMeGfzt N7SHss+kqDDbtviAl4CmV8Oc7Wvpv67coxz8SQtcqqi74NnQBINFYmikcxIqPsnyl+Rq ZubpT8pwfGxo9Typ9w9xx6H82wIMpfmYHMEUNcuQxD/ghrOIpXDE12ZbCT307VmlD0eI DtHbgpJZQ0PPCP6x+j4dF6lhdfs8aCW5Yko184PFwghfr79/WYmLoMrF7E3xw9U+GCKT lGhQ== X-Gm-Message-State: AOAM533ui/29zfTrK64mCtLikPEu/50RqAfavm0jNRTj29RsLtKSxlXi wcHHt85O6FPfz4wwNYj3bBU7bG7OfcOJ1NldQ3c= X-Google-Smtp-Source: ABdhPJyrQYoS6efvYgq+G1/vxvY/8e5S1r51zpuXk816tj8W/7JkbBwu9lpzQyXSMIgFK4ATTr6baQ== X-Received: by 2002:a05:6214:1633:: with SMTP id e19mr5976481qvw.3.1617835910979; Wed, 07 Apr 2021 15:51:50 -0700 (PDT) Received: from localhost (c-73-125-89-242.hsd1.fl.comcast.net. [73.125.89.242]) by smtp.gmail.com with ESMTPSA id a10sm8593450qtd.7.2021.04.07.15.51.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Apr 2021 15:51:50 -0700 (PDT) From: Philip McGrath To: guix-patches@gnu.org Subject: [PATCH] gnu: blis: Update to 0.8.1. Date: Wed, 7 Apr 2021 18:51:23 -0400 Message-Id: <20210407225123.17837-1-philip@philipmcgrath.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: neutral client-ip=2607:f8b0:4864:20::f35; envelope-from=philip@philipmcgrath.com; helo=mail-qv1-xf35.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: submit Cc: Philip McGrath X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) * gnu/packages/maths.scm (make-blis): Remove internal function. Inline into ... (bliss): ... this variable. Update to 0.8.1. [native-inputs]: Add "python" and "perl". [arguments]: Adjust 'configure' phase to take advantage of new support for "configuration families" with runtime hardware detection. Select configuration automatically based on target systems, and allow "--blis-config=" in #:configure-flags to override the default. When building for x86_64, include all supported microarchetecture specializations. Add "--enable-verbose-make" configure flag for better build logs. Stop ignoring other flags from #:configure-flags. Remove explicit #:substitutable? argument: the package is now always substitutable. Add (srfi srfi-1) to #:modules. (blis/x86_64): Remove internal macro. (blis-sandybridge): Remove package: included in 'blis'. (blis-haswell): Remove package: included in 'blis'. (blis-knl): Remove package: included in 'blis'. --- gnu/packages/maths.scm | 142 +++++++++++++++++++++++------------------ 1 file changed, 79 insertions(+), 63 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ff1b46f095..e7d6eef893 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -44,6 +44,7 @@ ;;; Copyright © 2020 Martin Becze ;;; Copyright © 2021 Gerd Heber ;;; Copyright © 2021 Franck Pérignon +;;; Copyright © 2021 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -3824,52 +3825,94 @@ parts of it.") (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 version)") (license license:bsd-3))) -(define* (make-blis implementation #:optional substitutable?) - "Return a BLIS package with the given IMPLEMENTATION (see config/ in the -source tree for a list of implementations.) - -SUBSTITUTABLE? determines whether the package is made available as a -substitute. - -Currently the specialization must be selected at configure-time, but work is -underway to allow BLIS to select the right optimized kernels at run time: -." +(define-public blis (package - (name (if (string=? implementation "reference") - "blis" - (string-append "blis-" implementation))) - (version "0.2.2") + (name "blis") + (version "0.8.1") (home-page "https://github.com/flame/blis") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit version))) (sha256 (base32 - "1wr79a50nm4abhw8w3sn96nmwp5mrzifcigk7khw9qcgyyyqayfh")) + "05ifil6jj9424sr8kmircl8k4bmxnl3y12a79vwj1kxxva5gz50g")) (file-name (git-file-name "blis" version)))) + (native-inputs + `(("python" ,python) + ("perl" ,perl))) (build-system gnu-build-system) (arguments - `(#:test-target "test" - - #:substitutable? ,substitutable? - - #:phases (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; This is a home-made 'configure' script. - (let ((out (assoc-ref outputs "out"))) - (invoke "./configure" "-p" out - "-d" "opt" - "--disable-static" - "--enable-shared" - "--enable-threading=openmp" - - ,implementation)))) - (add-before 'check 'show-test-output - (lambda _ - ;; By default "make check" is silent. Make it verbose. - (system "tail -F output.testsuite &") - #t))))) + `(#:modules + ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs + target + system + (configure-flags '()) + #:allow-other-keys) + ;; This is a home-made 'configure' script. + (let* ((out (assoc-ref outputs "out")) + ;; Guix-specific support for choosing the configuration + ;; via #:configure-flags: see below for details. + (config-flag-prefix "--blis-config=") + (maybe-config-flag (find + (lambda (s) + (string-prefix? config-flag-prefix s)) + configure-flags)) + (configure-flags (if maybe-config-flag + (delete maybe-config-flag + configure-flags) + configure-flags)) + ;; Select the "configuration" to build. + ;; The "generic" configuration is non-optimized but + ;; portable (no assembly). + ;; The "x86_64" configuration family includes + ;; sub-configurations for all supported + ;; x86_64 microarchitectures. + ;; BLIS currently lacks runtime hardware detection + ;; for other architectures: see + ;; . + ;; Conservatively, we stick to "generic" on armhf, + ;; aarch64, and ppc64le for now. (But perhaps + ;; "power9", "cortexa9", and "cortexa57" might be + ;; general enough to use?) + ;; Another approach would be to use the "auto" + ;; configuration and make this package + ;; non-substitutable. + ;; The build is fairly intensive, though. + (blis-config + (cond + (maybe-config-flag + (substring maybe-config-flag + (string-length config-flag-prefix))) + ((string-prefix? "x86_64" (or target system)) + "x86_64") + (else + "generic"))) + (configure-args + `("-p" ,out + "-d" "opt" + "--disable-static" + "--enable-shared" + "--enable-threading=openmp" + "--enable-verbose-make" + ,@configure-flags + ,blis-config))) + (format #t "configure args: ~s~%" configure-args) + (apply invoke + "./configure" + configure-args) + #t))) + (add-before 'check 'show-test-output + (lambda _ + ;; By default "make check" is silent. Make it verbose. + (system "tail -F output.testsuite &") + #t))))) (synopsis "High-performance basic linear algebra (BLAS) routines") (description "BLIS is a portable software framework for instantiating high-performance @@ -3881,35 +3924,8 @@ it also includes a BLAS compatibility layer which gives application developers access to BLIS implementations via traditional BLAS routine calls.") (license license:bsd-3))) -(define-public blis - ;; This is the "reference" implementation, which is the non-optimized but - ;; portable variant (no assembly). - (make-blis "reference" #t)) - (define ignorance blis) -(define-syntax-rule (blis/x86_64 processor) - "Expand to a package specialized for PROCESSOR." - (package - (inherit (make-blis processor)) - (supported-systems '("x86_64-linux")))) - -(define-public blis-sandybridge - ;; BLIS specialized for Sandy Bridge processors (launched 2011): - ;; . - (blis/x86_64 "sandybridge")) - -(define-public blis-haswell - ;; BLIS specialized for Haswell processors (launched 2013): - ;; . - (blis/x86_64 "haswell")) - -(define-public blis-knl - ;; BLIS specialized for Knights Landing processor (launched 2016): - ;; . - (blis/x86_64 "knl")) - - (define-public openlibm (package (name "openlibm") -- 2.21.1 (Apple Git-122.3) From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 12 06:39:44 2021 Received: (at 47646-done) by debbugs.gnu.org; 12 Apr 2021 10:39:44 +0000 Received: from localhost ([127.0.0.1]:56603 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVtyq-0000om-II for submit@debbugs.gnu.org; Mon, 12 Apr 2021 06:39:44 -0400 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:59112) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lVtyp-0000oW-AN for 47646-done@debbugs.gnu.org; Mon, 12 Apr 2021 06:39:43 -0400 IronPort-HdrOrdr: =?us-ascii?q?A9a23=3As1sOIqpmZ+I8VT5KGUWGNQsaV5q7eYIsi2QD?= =?us-ascii?q?101hICF9WMbwra2Ttd4c0gL5jytUZWopnsqONLLFbXTX85N05od5B8bHYCDNvm?= =?us-ascii?q?y0IIZ+qbbz2jGIIVyaysdx3bptGpIRNPTeFl5/5PyQ3CCZFJIazMCD4OSUg47l?= =?us-ascii?q?rktFaSFPR+Ve4xxiCgCde3cGJjVuIZYiDpKT6o5milObGUg/VciwCnkbU+Wrnb?= =?us-ascii?q?SiqLvcbRELHBIh4gWV5AnG1JfBDxOa0h0COgki/Z4e9wH++TDR2r+uqLWSxBPa?= =?us-ascii?q?ygbonvdrpOc=3D?= X-IronPort-AV: E=Sophos;i="5.82,216,1613430000"; d="scan'208";a="378400395" Received: from 91-160-117-201.subs.proxad.net (HELO ribbon) ([91.160.117.201]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Apr 2021 12:39:15 +0200 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Philip McGrath Subject: Re: bug#47646: [PATCH] gnu: blis: Update to 0.8.1. References: <20210407225123.17837-1-philip@philipmcgrath.com> Date: Mon, 12 Apr 2021 12:39:14 +0200 In-Reply-To: <20210407225123.17837-1-philip@philipmcgrath.com> (Philip McGrath's message of "Wed, 7 Apr 2021 18:51:23 -0400") Message-ID: <87lf9nrdm5.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 47646-done Cc: 47646-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Philip, Philip McGrath skribis: > * gnu/packages/maths.scm (make-blis): Remove internal function. > Inline into ... > (bliss): ... this variable. Update to 0.8.1. > [native-inputs]: Add "python" and "perl". > [arguments]: Adjust 'configure' phase to take advantage of new support > for "configuration families" with runtime hardware detection. Select > configuration automatically based on target systems, and allow > "--blis-config=3D" in #:configure-flags to override the default. > When building for x86_64, include all supported microarchetecture > specializations. Add "--enable-verbose-make" configure flag for better > build logs. Stop ignoring other flags from #:configure-flags. > Remove explicit #:substitutable? argument: the package is now always > substitutable. Add (srfi srfi-1) to #:modules. > (blis/x86_64): Remove internal macro. > (blis-sandybridge): Remove package: included in 'blis'. > (blis-haswell): Remove package: included in 'blis'. > (blis-knl): Remove package: included in 'blis'. Nice! I applied it and followed up with a commit that adds deprecated aliases for =E2=80=9Cblis-sandybridge=E2=80=9D & co. Thanks, Ludo=E2=80=99. From unknown Sat Jun 14 19:11:35 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 10 May 2021 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator