The NetBSD Project

CVS log for pkgsrc/math/openblas/buildlink3.mk

[BACK] Up to [cvs.NetBSD.org] / pkgsrc / math / openblas

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.4: download - view: text, markup, annotated - select for diffs
Sun Sep 17 08:56:18 2023 UTC (15 months, 4 weeks ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2024Q4-base, pkgsrc-2024Q4, pkgsrc-2024Q3-base, pkgsrc-2024Q3, pkgsrc-2024Q2-base, pkgsrc-2024Q2, pkgsrc-2024Q1-base, pkgsrc-2024Q1, pkgsrc-2023Q4-base, pkgsrc-2023Q4, pkgsrc-2023Q3-base, pkgsrc-2023Q3, HEAD
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
openblas*: updated to 0.3.24

OpenBLAS 0.3.24

general:

declared the arguments of cblas_xerbla as const (in accordance with the reference implementation
and others, the previous discrepancy appears to have dated back to GotoBLAS)
fixed the implementation of ?GEMMT that was added in 0.3.23
made cpu-specific SWITCH_RATIO parameters for GEMM available to DYNAMIC_ARCH builds
fixed application of SYMBOLSUFFIX in CMAKE builds
fixed missing SSYCONVF function in the shared library
fixed parallel build logic used with gmake
added support for compilation with LLVM17, in particular its new Fortran compiler
added support for CMAKE builds using the NVIDIA HPC compiler
fixed INTERFACE64 builds with CMAKE and the f95 Fortran compiler
fixed cross-build detection and management in c_check
disabled building of the tests with CMAKE when ONLY_CBLAS is defined
fixed several issues with the handling of runtime limits on the number of OPENMP threads
corrected the error code returned by SGEADD/DGEADD when LDA is too small
corrected the error code returned by IMATCOPY when LDB is too small
updated ?NRM2 to support negative increment values (as introduced in release 3.10.0
of the Reference BLAS)
updated ?ROTG to use the safe scaling algorithm introduced in release 3.10.0 of the Reference BLAS
fixed OpenMP builds with CLANG for the case where libomp is not in a standard location
fixed a potential overwrite of unrelated memory during thread initialisation on startup
fixed a potential integer overflow in the multithreading threshold for ?SYMM/?SYRK
fixed build of the LAPACKE interfaces for the LAPACK 3.11.0 ?TRSYL functions added in 0.3.22
fixed installation of .cmake files in concurrent 32 and 64bit builds with CMAKE
applied additions and corrections from the development branch of Reference-LAPACK:
fixed actual arguments passed to a number of LAPACK functions (from Reference-LAPACK PR 885)
fixed workspace query results in LAPACK ?SYTRF/?TRECV3 (from Reference-LAPACK PR 883)
fixed derivation of the UPLO parameter in LAPACKE_?larfb (from Reference-LAPACK PR 878)
fixed a crash in LAPACK ?GELSDD on NRHS=0 (from Reference-LAPACK PR 876)
added new LAPACK utility functions CRSCL and ZRSCL (from Reference-LAPACK PR 839)
corrected the order of eigenvalues for 2x2 matrices in ?STEMR (Reference-LAPACK PR 867)
removed spurious reference to OpenMP variables outside OpenMP contexts (Reference-LAPACK PR 860)
updated file comments on use of LAMBDA variable in LAPACK (Reference-LAPACK PR 852)
fixed documentation of LAPACK SLASD0/DLASD0 (Reference-LAPACK PR 855)
fixed confusing use of "minor" in LAPACK documentation (Reference-LAPACK PR 849)
added new LAPACK functions ?GEDMD for dynamic mode decomposition (Reference-LAPACK PR 736)
fixed potential stack overflows in the EIG part of the LAPACK testsuite (Reference-LAPACK PR 854)
applied small improvements to the variants of Cholesky and QR functions (Reference-LAPACK PR 847)
removed unused variables from LAPACK ?BDSQR (Reference-LAPACK PR 832)
fixed a potential crash on allocation failure in LAPACKE SGEESX/DGEESX (Reference-LAPACK PR 836)
added a quick return from SLARUV/DLARUV for N < 1 (Reference-LAPACK PR 837)
updated function descriptions in LAPACK ?GEGS/?GEGV (Reference-LAPACK PR 831)
improved algorithm description in ?GELSY (Reference-LAPACK PR 833)
fixed scaling in LAPACK STGSNA/DTGSNA (Reference-LAPACK PR 830)
fixed crash in LAPACKE_?geqrt with row-major data (Reference-LAPACK PR 768)
added LAPACKE interfaces for C/ZUNHR_COL and S/DORHR_COL (Reference-LAPACK PR 827)
added error exit tests for SYSV/SYTD2/GEHD2 to the testsuite (Reference-LAPACK PR 795)
fixed typos in LAPACK source and comments (Reference-LAPACK PRs 809,811,812,814,820)
adopt refactored ?GEBAL implementation (Reference-LAPACK PR 808)

x86_64:

added cpu model autodetection for Intel Alder Lake N
added activation of the AMX tile to the Sapphire Rapids SBGEMM kernel
worked around miscompilations of GEMV/SYMV kernels by gcc's tree-vectorizer
fixed compilation of Cooperlake and Sapphire Rapids kernels with CLANG
fixed runtime detection of Cooperlake and Sapphire Rapids in DYNAMIC_ARCH
fixed feature-based cputype fallback in DYNAMIC_ARCH
added support for building the AVX512 kernels with the NVIDIA HPC compiler
corrected ZAXPY result on old pre-AVX hardware for the INCX=0 case
fixed a potential use of uninitialized variables in ZTRSM

ARMV8:

added cpu model autodetection for Apple M2
fixed wrong results of CGEMM/CTRMM/DNRM2 under OSX (use of reserved register)
added support for building the SVE kernels with the NVIDIA HPC compiler
added support for building the SVE kernels with the Apple Clang compiler
fixed compiler option handling for building the SVE kernels with LLVM
implemented SWITCH_RATIO parameter for improved GEMM performance on Neoverse
activated SVE SGEMM and DGEMM kernels for Neoverse V1
improved performance of the SVE CGEMM and ZGEMM kernels on Neoverse V1
improved kernel selection for the ARMV8SVE target and added it to DYNAMIC_ARCH
fixed runtime check for SVE availability in DYNAMIC_ARCH builds to take OS or
container restrictions into account
fixed a potential use of uninitialized variables in ZTRSM
fix a potential misdetection of ARMV8 hardware as 32bit in CMAKE builds

LOONGARCH64:

added ABI detection
added support for cpu affinity handling
fixed compilation with early versions of the Loongson toolchain
added an optimized SGEMM kernel for 3A5000
added optimized DGEMV kernels for 3A5000
improved the performance of the DGEMM kernel for 3A5000

MIPS64:

fixed miscompilation of TRMM kernels for the MIPS64_GENERIC target

POWER:

fixed compiler warnings in the POWER10 SBGEMM kernel

RISCV:

fixed application of the INTERFACE64 option when building with CMAKE
fix a potential misdetection of RISCV hardware as 32bit in CMAKE builds
fixed IDAMAX and DOT kernels for C910V
fixed corner cases in the ROT and SWAP kernels for C910V
fixed compilation of the C910V target with recent vendor compilers

Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Jun 28 11:34:37 2022 UTC (2 years, 6 months ago) by wiz
Branches: MAIN
CVS tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4, pkgsrc-2022Q3-base, pkgsrc-2022Q3
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -2 lines
*: recursive bump for perl 5.36

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Jun 15 04:41:52 2021 UTC (3 years, 7 months ago) by thor
Branches: MAIN
CVS tags: pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4, pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +2 -1 lines
mk/blas.bl3, Netlib and OpenBLAS packages, NumPy: C fixup and 64 bits

This delivers 64 bit index BLAS libraries alongside 32 bit ones. This is often
called ILP64 in the BLAS world, as opposed to LP64 where integers are 32 bit
due to the Fortran default integer type, not to be confused with the basic
system ABI used by C. For really large vectors on modern machines, you want
an 'ILP64' BLAS and layers on top of it.

In preparation of better support for vendor BLAS libraries, I had to realize
that you better use the C interfaces supplied by them, not the netlib one
strapped on. A simple reason of practicability: The vendor blas libraries,
just like openblas, like to ship all symbols in one library, so you get them
whether you want it or not. Also implementations may skip Fortran and implement
the underlying functionality directly in C anyway, so one might skip a
layer of indirection. Future will tell if other layers will follow. We still
have the framework of individual layers from Netlib to combine with certain
implementations that miss them (Accelerate framework comes to mind, which
needs further work).

The framework of netlib reference packages for the separate libraries
is instructive and helps keeping things small when you not need all of them.
The installation location of the headers is now in a subdirectory to be able
to have 32 and 64 bit variants independently. The 32 bit ones are linked to
${PREFIX}/include to keep the old picture. We could be brave and remove
those, but there is some value in a build just trying -lcblas and
inclusion of <cblas.h> to be happy.

There is one blas.buildlink3.mk that is supposed to be used only once and
so avoids a combination of conflicting libraries (as the 64 bit index symbols
have the same names as the 32 bit ones).

Basic usage for getting LAPACK+BLAS is still the same as before. You get
CBLAS and LAPACKE by setting BLAS_C_INTERFACE=yes in the package. The 64 bit
indices are selected via BLAS_INDEX64=yes.

Due to the special nature of the Accelerate framework, a package has to
explicitly indicate support for it and it will also not appear on the
list of implementations by default. The reason is that it does provide
mainly CBLAS and CLAPACK (another version of C interface to LAPACK, f2c-based)
and BLAS/LAPACK with f2c/g77 calling conventions. A default build with
gfortran would not like that

This commit also fixes up math/py-numpy and math/py-numpy16 to follow the
new scheme, as that are the only packages directly affected by the change
in CBLAS providership.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Thu Nov 5 16:31:45 2020 UTC (4 years, 2 months ago) by bacon
Branches: MAIN
CVS tags: pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4
math/openblas: import openblas-0.3.7

OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
OpenBLAS is an open source project supported by
Lab of Parallel Software and Computational Science, ISCAS.

This package builds the serial library.

Needs patching and testing on platforms besides Linux

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>