OpenBLAS ChangeLog
====================================================================
+Version 0.2.19
+1-Sep-2016
+common:
+ * Improved cross compiling.
+ * Fix the bug on musl libc.
+
+POWER:
+ * Optimize BLAS on Power8
+ * Fixed Julia+OpenBLAS bugs on Power8
+
+MIPS:
+ * Optimize BLAS on MIPS P5600 and I6400 (Thanks, Shivraj Patil, Kaustubh Raste)
+
+ARM:
+ * Improved on ARM Cortex-A57. (Thanks, Ashwin Sekhar T K)
+
+
+====================================================================
+Version 0.2.18
+12-Apr-2016
+common:
+ * If you set MAKE_NB_JOBS flag less or equal than zero,
+ make will be without -j.
+
+x86/x86_64:
+ * Support building Visual Studio static library. (#813, Thanks, theoractice)
+ * Fix bugs to pass buidbot CI tests (http://build.openblas.net)
+
+ARM:
+ * Provide DGEMM 8x4 kernel for Cortex-A57 (Thanks, Ashwin Sekhar T K)
+
+POWER:
+ * Optimize S and C BLAS3 on Power8
+ * Optimize BLAS2/1 on Power8
+
+====================================================================
+Version 0.2.17
+20-Mar-2016
+common:
+ * Enable BUILD_LAPACK_DEPRECATED=1 by default.
+
+====================================================================
+Version 0.2.16
+15-Mar-2016
+common:
+ * Avoid potential getenv segfault. (#716)
+ * Import LAPACK svn bugfix #142-#147,#150-#155
+
+x86/x86_64:
+ * Optimize c/zgemv for AMD Bulldozer, Piledriver, Steamroller
+ * Fix bug with scipy linalg test.
+
+ARM:
+ * Improve DGEMM for ARM Cortex-A57. (Thanks, Ashwin Sekhar T K)
+
+POWER:
+ * Optimize D and Z BLAS3 functions for Power8.
+
+====================================================================
+Version 0.2.16.rc1
+23-Feb-2016
+common:
+ * Upgrade LAPACK to 3.6.0 version.
+ Add BUILD_LAPACK_DEPRECATED option in Makefile.rule to build
+ LAPACK deprecated functions.
+ * Add MAKE_NB_JOBS option in Makefile.
+ Force number of make jobs.This is particularly
+ useful when using distcc. (#735. Thanks, Jerome Robert.)
+ * Redesign unit test. Run unit/regression test at every build (Travis-CI and Appveyor).
+ * Disable multi-threading for small size swap and ger. (#744. Thanks, Jerome Robert)
+ * Improve small zger, zgemv, ztrmv using stack alloction (#727. Thanks, Jerome Robert)
+ * Let openblas_get_num_threads return the number of active threads.
+ (#760. Thanks, Jerome Robert)
+ * Support illumos(OmniOS). (#749. Thanks, Lauri Tirkkonen)
+ * Fix LAPACK Dormbr, Dormlq bug. (#711, #713. Thanks, Brendan Tracey)
+ * Update scipy benchmark script. (#745. Thanks, John Kirkham)
+
+x86/x86_64:
+ * Optimize trsm kernels for AMD Bulldozer, Piledriver, Steamroller.
+ * Detect Intel Avoton.
+ * Detect AMD Trinity, Richland, E2-3200.
+ * Fix gemv performance bug on Mac OSX Intel Haswell.
+ * Fix some bugs with CMake and Visual Studio
+
+ARM:
+ * Support and optimize Cortex-A57 AArch64.
+ (#686. Thanks, Ashwin Sekhar TK)
+ * Fix Android build on ARMV7 (#778. Thanks, Paul Mustiere)
+ * Update ARMV6 kernels.
+
+POWER:
+ * Fix detection of POWER architecture
+ (#684. Thanks, Sebastien Villemot)
+
+====================================================================
+Version 0.2.15
+27-Oct-2015
+common:
+ * Support cmake on x86/x86-64. Natively compiling on MS Visual Studio.
+ (experimental. Thank Hank Anderson for the initial cmake porting work.)
+
+ On Linux and Mac OSX, OpenBLAS cmake supports assembly kernels.
+ e.g. cmake .
+ make
+ make test (Optional)
+
+ On Windows MS Visual Studio, OpenBLAS cmake only support C kernels.
+ (OpenBLAS uses AT&T style assembly, which is not supported by MSVC.)
+ e.g. cmake -G "Visual Studio 12 Win64" .
+ Open OpenBLAS.sln and build.
+
+ * Enable MAX_STACK_ALLOC flags by default.
+ Improve ger and gemv for small matrices.
+ * Improve gemv parallel with small m and large n case.
+ * Improve ?imatcopy when lda==ldb (#633. Thanks, Martin Koehler)
+ * Add vecLib benchmarks (#565. Thanks, Andreas Noack.)
+ * Fix LAPACK lantr for row major matrices (#634. Thanks, Dan Kortschak)
+ * Fix LAPACKE lansy (#640. Thanks, Dan Kortschak)
+ * Import bug fixes for LAPACKE s/dormlq, c/zunmlq
+ * Raise the signal when pthread_create fails (#668. Thanks, James K. Lowden)
+ * Remove g77 from compiler list.
+ * Enable AppVeyor Windows CI.
+
+x86/x86-64:
+ * Support pure C generic kernels for x86/x86-64.
+ * Support Intel Boardwell and Skylake by Haswell kernels.
+ * Support AMD Excavator by Steamroller kernels.
+ * Optimize s/d/c/zdot for Intel SandyBridge and Haswell.
+ * Optimize s/d/c/zdot for AMD Piledriver and Steamroller.
+ * Optimize s/d/c/zapxy for Intel SandyBridge and Haswell.
+ * Optimize s/d/c/zapxy for AMD Piledriver and Steamroller.
+ * Optimize d/c/zscal for Intel Haswell, dscal for Intel SandyBridge.
+ * Optimize d/c/zscal for AMD Bulldozer, Piledriver and Steamroller.
+ * Optimize s/dger for Intel SandyBridge.
+ * Optimize s/dsymv for Intel SandyBridge.
+ * Optimize ssymv for Intel Haswell.
+ * Optimize dgemv for Intel Nehalem and Haswell.
+ * Optimize dtrmm for Intel Haswell.
+
+ARM:
+ * Support Android NDK armeabi-v7a-hard ABI (-mfloat-abi=hard)
+ e.g. make HOSTCC=gcc CC=arm-linux-androideabi-gcc NO_LAPACK=1 TARGET=ARMV7
+ * Fix lock, rpcc bugs (#616, #617. Thanks, Grazvydas Ignotas)
+POWER:
+ * Support ppc64le platform (ELF ABI v2. #612. Thanks, Matthew Brandyberry.)
+ * Support POWER7/8 by POWER6 kernels. (#612. Thanks, Fábio Perez.)
+
+====================================================================
+Version 0.2.14
+24-Mar-2015
+common:
+ * Improve OpenBLASConfig.cmake. (#474, #475. Thanks, xantares.)
+ * Improve ger and gemv for small matrices by stack allocation.
+ e.g. make -DMAX_STACK_ALLOC=2048 (#482. Thanks, Jerome Robert.)
+ * Introduce openblas_get_num_threads and openblas_get_num_procs.
+ (#497. Thanks, Erik Schnetter.)
+ * Add ATLAS-style ?geadd function. (#509. Thanks, Martin Köhler.)
+ * Fix c/zsyr bug with negative incx. (#492.)
+ * Fix race condition during shutdown causing a crash in
+ gotoblas_set_affinity(). (#508. Thanks, Ton van den Heuvel.)
+
+x86/x86-64:
+ * Support AMD Streamroller.
+
+ARM:
+ * Add Cortex-A9 and Cortex-A15 targets.
+
+====================================================================
+Version 0.2.13
+3-Dec-2014
+common:
+ * Add SYMBOLPREFIX and SYMBOLSUFFIX makefile options
+ for adding a prefix or suffix to all exported symbol names
+ in the shared library.(#459, Thanks Tony Kelman)
+ * Provide OpenBLASConfig.cmake at installation.
+ * Fix Fortran compiler detection on FreeBSD.
+ (#470, Thanks Mike Nolta)
+
+
+x86/x86-64:
+ * Add generic kernel files for x86-64. make TARGET=GENERIC
+ * Fix a bug of sgemm kernel on Intel Sandy Bridge.
+ * Fix c_check bug on some amd64 systems. (#471, Thanks Mike Nolta)
+
+ARM:
+ * Support APM's X-Gene 1 AArch64 processors.
+ Optimize trmm and sgemm. (#465, Thanks Dave Nuechterlein)
+
+====================================================================
+Version 0.2.12
+13-Oct-2014
+common:
+ * Added CBLAS interface for ?omatcopy and ?imatcopy.
+ * Enable ?gemm3m functions.
+ * Added benchmark for ?gemm3m.
+ * Optimized multithreading lower limits.
+ * Disabled SYMM3M and HEMM3M functions
+ because of segment violations.
+
+x86/x86-64:
+ * Improved axpy and symv performance on AMD Bulldozer.
+ * Improved gemv performance on modern Intel and AMD CPUs.
+
+====================================================================
+Version 0.2.11
+18-Aug-2014
+common:
+ * Added some benchmark codes.
+ * Fix link error on Linux/musl.(Thanks Isaac Dunham)
+
+x86/x86-64:
+ * Improved s/c/zgemm performance for Intel Haswell.
+ * Improved s/d/c/zgemv performance.
+ * Support the big numa machine.(EXPERIMENT)
+
+ARM:
+ * Fix detection when cpuinfo uses "Processor". (Thanks Isaiah)
+
+====================================================================
+Version 0.2.10
+16-Jul-2014
+common:
+ * Added BLAS extensions as following.
+ s/d/c/zaxpby, s/d/c/zimatcopy, s/d/c/zomatcopy.
+ * Added OPENBLAS_CORETYPE environment for dynamic_arch. (a86d34)
+ * Added NO_AVX2 flag for old binutils. (#401)
+ * Support outputing the CPU corename on runtime.(#407)
+ * Patched LAPACK to fix bug 114, 117, 118.
+ (http://www.netlib.org/lapack/bug_list.html)
+ * Disabled ?gemm3m for a work-around fix. (#400)
+x86/x86-64:
+ * Fixed lots of bugs for optimized kernels on sandybridge,Haswell,
+ bulldozer, and piledriver.
+ https://github.com/xianyi/OpenBLAS/wiki/Fixed-optimized-kernels-To-do-List
+
+ARM:
+ * Improved LAPACK testing.
+
+====================================================================
+Version 0.2.9
+10-Jun-2014
+common:
+ * Improved the result for LAPACK testing. (#372)
+ * Installed DLL to prefix/bin instead of prefix/lib. (#366)
+ * Build import library on Windows.(#374)
+x86/x86-64:
+ * To improve LAPACK testing, we fallback some kernels. (#372)
+ https://github.com/xianyi/OpenBLAS/wiki/Fixed-optimized-kernels-To-do-List
+
+====================================================================
+Version 0.2.9.rc2
+06-Mar-2014
+common:
+ * Added OPENBLAS_VERBOSE environment variable.(#338)
+ * Make OpenBLAS thread-pool resilient to fork via pthread_atfork.
+ (#294, Thank Olivier Grisel)
+ * Rewrote rotmg
+ * Fixed sdsdot bug.
+x86/x86-64:
+ * Detect Intel Haswell for new Macbook.
+
+====================================================================
+Version 0.2.9.rc1
+13-Jan-2013
+common:
+ * Update LAPACK to 3.5.0 version
+ * Fixed compatiable issues with Clang and Pathscale compilers.
+
+x86/x86-64:
+ * Optimization on Intel Haswell.
+ * Enable optimization kernels on AMD Bulldozer and Piledriver.
+
+ARM:
+ * Support ARMv6 and ARMv7 ISA.
+ * Optimization on ARM Cortex-A9.
+
+====================================================================
Version 0.2.8
01-Aug-2013
common:
common:
* Support LSB (Linux Standard Base) 4.1.
e.g. make CC=lsbcc
- * Include LAPACK 3.4.2 source codes to the repo.
+ * Include LAPACK 3.4.2 source codes to the repo.
Avoid downloading at compile time.
* Add NO_PARALLEL_MAKE flag to disable parallel make.
- * Create openblas_get_parallel to retrieve information which
+ * Create openblas_get_parallel to retrieve information which
parallelization model is used by OpenBLAS. (Thank grisuthedragon)
* Detect LLVM/Clang compiler. The default compiler is Clang on Mac OS X.
* Change LIBSUFFIX from .lib to .a on windows.
- * A walk round for dtrti_U single thread bug. Replace it with LAPACK codes. (#191)
+ * A work-around for dtrti_U single thread bug. Replace it with LAPACK codes. (#191)
x86/x86-64:
- * Optimize c/zgemm, trsm, dgemv_n, ddot, daxpy, dcopy on
+ * Optimize c/zgemm, trsm, dgemv_n, ddot, daxpy, dcopy on
AMD Bulldozer. (Thank Werner Saar)
* Add Intel Haswell support (using Sandybridge optimizations).
(Thank Dan Luu)
* Add AMD Piledriver support (using Bulldozer optimizations).
- * Fix the computational error in zgemm avx kernel on
+ * Fix the computational error in zgemm avx kernel on
Sandybridge. (#237)
* Fix the overflow bug in gemv.
- * Fix the overflow bug in multi-threaded BLAS3, getrf when NUM_THREADS
+ * Fix the overflow bug in multi-threaded BLAS3, getrf when NUM_THREADS
is very large.(#214, #221, #246).
MIPS64:
* Support loongcc (Open64 based) compiler for ICT Loongson 3A/B.
* Fixed NetBSD build. (#155)
* Fixed compilation with TARGET=GENERIC. (#160)
x86/x86-64:
- * Restore the original CPU affinity when calling
+ * Restore the original CPU affinity when calling
openblas_set_num_threads(1) (#153)
* Fixed a SEGFAULT bug in dgemv_t when m is very large.(#154)
MIPS64:
8-Oct-2012
common:
* Upgraded LAPACK to 3.4.2 version. (#145)
- * Provided support for passing CFLAGS, FFLAGS, PFLAGS,
+ * Provided support for passing CFLAGS, FFLAGS, PFLAGS,
FPFLAGS to make. (#137)
- * f77blas.h:compatibility for compilers without C99 complex
+ * f77blas.h:compatibility for compilers without C99 complex
number support. (#141)
x86/x86-64:
* Added NO_AVX flag. Check OS supporting AVX on runtime. (#139)
- * Fixed zdot incompatibility ABI issue with GCC 4.7 on
+ * Fixed zdot incompatibility ABI issue with GCC 4.7 on
Windows 32-bit. (#140)
MIPS64:
* Fixed the generation of shared library bug.
20-Aug-2012
common:
* Fixed LAPACK unstable bug about ?laswp. (#130)
- * Fixed the shared library bug about unloading the library on
+ * Fixed the shared library bug about unloading the library on
Linux (#132).
* Fixed the compilation failure on BlueGene/P (TARGET=PPC440FP2)
Please use gcc and IBM xlf. (#134)
x86/x86-64:
- * Supported goto_set_num_threads and openblas_set_num_threads
+ * Supported goto_set_num_threads and openblas_set_num_threads
APIs in Windows. They can set the number of threads on runtime.
-
+
====================================================================
Version 0.2.2
6-July-2012
* Auto-detect Intel Sandy Bridge Core i7-3xxx & Xeon E7 Westmere-EX.
* Test alpha=Nan in dscale.
* Fixed a SEGFAULT bug in samax on x86 windows.
-
+
====================================================================
Version 0.1.0
23-Mar-2012
common:
* Set soname of shared library on Linux.
- * Added LIBNAMESUFFIX flag in Makefile.rule. The user can use
- this flag to control the library name, e.g. libopenblas.a,
+ * Added LIBNAMESUFFIX flag in Makefile.rule. The user can use
+ this flag to control the library name, e.g. libopenblas.a,
libopenblas_ifort.a or libopenblas_omp.a.
* Added GEMM_MULTITHREAD_THRESHOLD flag in Makefile.rule.
The lib use single thread in GEMM function with small matrices.
Version 0.1 alpha2.4
18-Sep-2011
common:
- * Fixed a bug about installation. The header file "fblas77.h"
+ * Fixed a bug about installation. The header file "fblas77.h"
works fine now.
* Fixed #61 a building bug about setting TARGET and DYNAMIC_ARCH.
* Try to handle absolute path of shared library in OSX. (#57)
$(PREFIX)/lib
x86/x86_64:
- * Fixed #58 zdot/xdot SEGFAULT bug with GCC-4.6 on x86. According
- to i386 calling convention, The callee should remove the first
- hidden parameter.Thank Mr. John for this patch.
+ * Fixed #58 zdot/xdot SEGFAULT bug with GCC-4.6 on x86. According
+ to i386 calling convention, The callee should remove the first
+ hidden parameter.Thank Mr. John for this patch.
====================================================================
Version 0.1 alpha2.3
5-Sep-2011
x86/x86_64:
- * Added DTB_ENTRIES into dynamic arch setting parameters. Now,
+ * Added DTB_ENTRIES into dynamic arch setting parameters. Now,
it can read DTB_ENTRIES on runtime. (Refs issue #55 on github)
====================================================================
14-Jul-2011
common:
- * Fixed a building bug when DYNAMIC_ARCH=1 & INTERFACE64=1.
+ * Fixed a building bug when DYNAMIC_ARCH=1 & INTERFACE64=1.
(Refs issue #44 on github)
====================================================================
28-Jun-2011
common:
- * Stop the build and output the error message when detecting
+ * Stop the build and output the error message when detecting
fortran compiler failed. (Refs issue #42 on github)
====================================================================
23-Jun-2011
common:
- * Fixed blasint undefined bug in <cblas.h> file. Other software
+ * Fixed blasint undefined bug in <cblas.h> file. Other software
could include this header successfully(Refs issue #13 on github)
- * Fixed the SEGFAULT bug on 64 cores. On SMP server, the number
- of CPUs or cores should be less than or equal to 64.(Refs issue #14
+ * Fixed the SEGFAULT bug on 64 cores. On SMP server, the number
+ of CPUs or cores should be less than or equal to 64.(Refs issue #14
on github)
* Support "void goto_set_num_threads(int num_threads)" and "void
openblas_set_num_threads(int num_threads)" when USE_OPENMP=1
- * Added extern "C" to support C++. Thank Tasio for the patch(Refs
+ * Added extern "C" to support C++. Thank Tasio for the patch(Refs
issue #21 on github)
- * Provided an error message when the arch is not supported.(Refs
+ * Provided an error message when the arch is not supported.(Refs
issue #19 on github)
* Fixed issue #23. Fixed a bug of f_check script about generating link flags.
* Added openblas_set_num_threads for Fortran.
* Fixed #28 a wrong result of dsdot on x86_64.
* Fixed #32 a SEGFAULT bug of zdotc with gcc-4.6.
* Fixed #33 ztrmm bug on Nehalem.
- * Walk round #27 the low performance axpy issue with small imput size & multithreads.
+ * Work-around #27 the low performance axpy issue with small imput size & multithreads.
MIPS64:
- * Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64.
+ * Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64.
* Optimized single/double precision BLAS Level3 on Loongson3A/MIPS64. (Refs #2)
* Optimized single/double precision axpy function on Loongson3A/MIPS64. (Refs #3)
20-Mar-2011
common:
- * Support "make NO_LAPACK=1" to build the library without
+ * Support "make NO_LAPACK=1" to build the library without
LAPACK functions.
- * Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34.
+ * Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34.
Thank Mr.Ei-ji Nakama providing this patch. (Refs issue #12 on github)
* Added DEBUG=1 rule in Makefile.rule to build debug version.
* Disable compiling quad precision in reference BLAS library(netlib BLAS).
* Imported GotoBLAS2 1.13 BSD version
x86/x86_64:
- * On x86 32bits, fixed a bug in zdot_sse2.S line 191. This would casue
- zdotu & zdotc failures.Instead,Walk around it. (Refs issue #8 #9 on github)
- * Modified ?axpy functions to return same netlib BLAS results
+ * On x86 32bits, fixed a bug in zdot_sse2.S line 191. This would casue
+ zdotu & zdotc failures. Instead, work-around it. (Refs issue #8 #9 on github)
+ * Modified ?axpy functions to return same netlib BLAS results
when incx==0 or incy==0 (Refs issue #7 on github)
- * Modified ?swap functions to return same netlib BLAS results
+ * Modified ?swap functions to return same netlib BLAS results
when incx==0 or incy==0 (Refs issue #6 on github)
- * Modified ?rot functions to return same netlib BLAS results
+ * Modified ?rot functions to return same netlib BLAS results
when incx==0 or incy==0 (Refs issue #4 on github)
- * Detect Intel Westmere,Intel Clarkdale and Intel Arrandale
+ * Detect Intel Westmere,Intel Clarkdale and Intel Arrandale
to use Nehalem codes.
* Fixed a typo bug about compiling dynamic ARCH library.
MIPS64: