./math/openblas64_pthread, Optimized BLAS library based on GotoBLAS2 (variant openblas64_pthread)

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.3.26, Package name: openblas64_pthread-0.3.26, Maintainer: thomas.orgis

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 parallel library using pthreads and indices of
64 bits (INTERFACE64=1).



Package options: dynamic-arch

Master sites:

Filesize: 23832.922 KB

Version history: (Expand)


CVS history: (Expand)


   2024-02-17 11:13:20 by Adam Ciarcinski | Files touched by this commit (11) | Package updated
Log message:
openblas: updated to 0.3.26

OpenBLAS 0.3.26

general:

improved the version of openblas.pc that is created by the CMAKE build
fixed a CMAKE-specific build problems on older versions of MacOS
worked around linking problems on old versions of MacOS
corrected installation location of the lapacke_mangling header in CMAKE builds
added type declarations for complex variables to the MSVC-specific parts of the \ 
LAPACK header
significantly sped up ?GESV for small problem sizes by introducing a lower bound \ 
for multithreading
imported additions and corrections from the Reference-LAPACK project:
added new LAPACK functions for truncated QR with pivoting
handle miscalculation of minimum work array size in corner cases
fixed use of uninitialized variables in ?GEDMD and improved inline documentation
fixed use of uninitialized variables (and consequential failures) in ?BBCSD
added tests for the recently introduced Dynamic Mode Decomposition functions
fixed several memory leaks in the LAPACK testsuite
fixed counting of testsuite results by the Python script

x86-64:

fixed computation of CASUM on SkylakeX and newer targets in the special
case that AVX512 is not supported by the compiler or operating environment
fixed potential undefined behaviour in the CASUM/ZASUM kernels for AVX512 targets
worked around a problem in the pre-AVX kernel for GEMV
sped up the thread management code on MS Windows

arm64:

fixed building of the LAPACK testsuite with Xcode 15 on Apple M1 and newer
sped up the thread management code on MS Windows
sped up SGEMM and DGEMM on Neoverse V1
sped up ?DOT on SVE-capable targets
reduced the number of targets in DYNAMIC_ARCH builds by eliminating functionally \ 
equivalent ones
included support for Apple M1 and newer targets in DYNAMIC_ARCH builds

power:

improved the SGEMM kernel for POWER10
fixed compilation with (very) old versions of gcc
fixed detection of old 32bit PPC targets in CMAKE-based builds
added autodetection of the POWERPC 7400 subtype
fixed CMAKE-based compilation for PPCG4 and PPC970 targets

loongarch64:

added and improved optimized kernels for almost all BLAS functions
   2023-10-16 00:08:51 by Dr. Thomas Orgis | Files touched by this commit (8)
Log message:
math/openblas*: more portable sed for .pc modification

The old path added \b, which is not POSIX BRE. [:space:] works better with
differing seds. It removes more than \b, but in our installs, the following
suffix variable is emtpy, anyway.
   2023-10-08 17:41:33 by Dr. Thomas Orgis | Files touched by this commit (8) | Package updated
Log message:
math/openblas: Fix pkg-config file for current version.

The last update broke the library name in the installed pkg-config file
for the openblas variants. Fixing this.

Our type of library naming should be pushed upstream, or adapted to
some other scheme.
   2021-06-15 06:41:53 by Dr. Thomas Orgis | Files touched by this commit (36)
Log message:
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.