diff options
author | msglm <msglm@techchud.xyz> | 2025-06-19 19:25:22 -0500 |
---|---|---|
committer | msglm <msglm@techchud.xyz> | 2025-06-19 19:25:22 -0500 |
commit | d6119d8f49be6149c176f3de34a9e65cd7a20064 (patch) | |
tree | fb397b181178a713009c27dede3783cb7b56b779 /amd/packages/aocl-libs.scm | |
parent | edb38a355aebe1786447bacdfd5b3550aee5f91e (diff) | |
download | guix-msglm-d6119d8f49be6149c176f3de34a9e65cd7a20064.tar.gz guix-msglm-d6119d8f49be6149c176f3de34a9e65cd7a20064.tar.bz2 guix-msglm-d6119d8f49be6149c176f3de34a9e65cd7a20064.zip |
Diffstat (limited to 'amd/packages/aocl-libs.scm')
-rw-r--r-- | amd/packages/aocl-libs.scm | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/amd/packages/aocl-libs.scm b/amd/packages/aocl-libs.scm new file mode 100644 index 0000000..02c9ec4 --- /dev/null +++ b/amd/packages/aocl-libs.scm @@ -0,0 +1,192 @@ +;;; Copyright © 2024 Advanced Micro Devices, Inc. +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (amd packages aocl-libs) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix gexp) + #:use-module (guix licenses) + #:use-module (gnu packages gcc) + #:use-module (gnu packages mpi) + #:use-module (gnu packages python) + #:use-module (gnu packages perl)) + +(define-public aocl-blis-mt + (package + (name "aocl-blis-mt") + (version "4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/amd/blis.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bphmkwdgan7936v329bg56byia92rq35znamagmpy9z32w7ixyn")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + "-d opt" + "--enable-cblas" + "--enable-threading=openmp" + "zen3")))))) + (native-inputs (list python-wrapper perl)) + (synopsis "Basic Linear Algebra Subprograms (BLAS) Libraries") + (description + "BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries. The framework was designed to isolate essential kernels +of computation that enable optimized implementations of most of its commonly used and computationally +intensive operations. The optimizations are done for single and double precision routines. +AMD has extensively optimized the implementation of BLIS for AMD processors.") + (home-page "https://developer.amd.com/amd-aocl/blas-library") + (license bsd-3))) + +(define-public aocl-blis + (package + (inherit aocl-blis-mt) + (name "aocl-blis") + (arguments + `(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + "-d opt" "--enable-cblas" "zen3")))))) + (synopsis + "Basic Linear Algebra Subprograms (BLAS) Libraries (without multi-threading support for zen3 cpus)"))) + +(define-public aocl-blis-zen4 + (package/inherit aocl-blis-mt + (name "aocl-blis-zen4") + (arguments + `(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (invoke "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + "-d opt" "--enable-cblas" "zen4")))))) + (synopsis + "Basic Linear Algebra Subprograms (BLAS) Libraries (without multi-threading support for zen4 cpus)"))) + +(define-public aocl-utils + (package + (name "aocl-utils") + (version "4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/amd/aocl-utils.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k8fc3l5as2ga6b32d9zc0wqx8n11s7rvdi8qhsip1vbpkg8lpsm")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f)) ;No tests + (synopsis "AOCL libraries to access CPU features, especially AMD CPUs") + (description + "AOCL-Utils is designed to be integrated into other AOCL libraries. Each +project has their own mechanism to identify CPU and provide necessary features such as +'dynamic dispatch'. The main purpose of this library is to provide a centralized mechanism to +update/validate and provide information to the users of this library.") + (home-page "https://developer.amd.com/amd-aocl") + (license bsd-3))) + +(define-public aocl-lapack + (package + (name "aocl-lapack") + (version "4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/amd/libflame.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12n2f1xc817f8bnmvijd0as1iggmjiz73vmyppszk7l0hgb3b6a9")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ;No tests + #:configure-flags #~(list "--enable-amd-flags") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-config + (lambda _ + (substitute* "build/config.mk.in" + (("/usr/bin/env bash") + (which "bash"))) + (substitute* "src/aocl_dtl/Makefile" + ((".PHONY") + "CC=gcc\n.PHONY"))))))) + (inputs (list aocl-utils)) + (native-inputs (list gfortran python-wrapper perl)) + (synopsis "Linear Algebra Package (LAPACK) Libraries") + (description + "AOCL-libFLAME is a portable library for dense matrix computations, providing the complete functionality present in Linear Algebra Package (LAPACK). The library provides scientific and numerical computing communities with a modern, high-performance dense linear algebra library that is extensible, easy to use, and available under an open source license. It is a C-only implementation. Applications relying on stadard Netlib LAPACK interfaces can start taking advantage of AOCL-libFLAME with virtually no changes to their source code.") + (home-page "https://developer.amd.com/amd-aocl/blas-library") + (license bsd-3))) + +(define-public aocl-scalapack + (package + (name "aocl-scalapack") + (version "4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/amd/aocl-scalapack.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cz627x920ximydcs9qz6jilzia735hyg2flcd1lliq2xwvk1zd5")))) + (build-system cmake-build-system) + (arguments + (list + ;; One tests fails due to an illegal value being passed to DSTEGR2A. + ;; Disabling for now. + #:tests? #f + #:configure-flags #~(list "-DBUILD_SHARED_LIBS:BOOL=YES" + "-DUSE_OPTIMIZED_LAPACK_BLAS=ON" + (string-append "-DLAPACK_LIBRARIES=-lstdc++ " + #$aocl-utils + "/lib/libaoclutils.a " + #$aocl-lapack "/lib/libflame.a") + (string-append "-DBLAS_LIBRARIES=-fopenmp " + #$aocl-blis "/lib/libblis.a")))) + (native-inputs (list gfortran python-wrapper)) + (inputs (list openmpi aocl-lapack aocl-utils aocl-blis)) + (synopsis "Scalable Linear Algebra Package (ScaLAPACK) Library") + (description + "AOCL-ScaLAPACK is a library of high-performance linear algebra routines for parallel distributed memory machines. It depends on external libraries including BLAS and LAPACK for Linear Algebra computations. AMD’s optimized version of ScaLAPACK (AOCL-ScaLAPACK) enables using the BLIS and libFLAME libraries with optimized dense-matrix functions and solvers for AMD processors") + (home-page "https://developer.amd.com/amd-aocl/scalapack") + (license bsd-3))) |