build: LLVM: Add Flang compiler support and enable OpenMP for Clang
[platform/upstream/openblas.git] / Changelog.txt
index 54b11ad..2eb27ab 100644 (file)
@@ -1,5 +1,326 @@
 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:
+       * Support Open64 5.0. (#266)
+       * Add executable stack markings. (#262, Thank Sébastien Fabbro)
+       * Respect user's LDFLAGS (Thank Sébastien Fabbro)
+
+x86/x86-64:
+       * Rollback bulldozer and piledriver kernels to barcelona kernels (#263)
+         We will fix the compuational error bug in bulldozer and piledriver kernels.
+
+====================================================================
+Version 0.2.7
+20-Jul-2013
+common:
+       * Support LSB (Linux Standard Base) 4.1.
+          e.g. make CC=lsbcc
+       * 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
+          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 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
+          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
+          Sandybridge. (#237)
+        * Fix the overflow bug in gemv.
+       * 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.
+
+Power:
+        * Support Power7 by old Power6 kernels. (#220)
+
+====================================================================
 Version 0.2.6
 2-Mar-2013
 common:
@@ -28,7 +349,7 @@ common:
        * 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:
@@ -38,13 +359,13 @@ Version 0.2.4
 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.
@@ -54,14 +375,14 @@ Version 0.2.3
 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
@@ -109,14 +430,14 @@ x86/x86_64:
        * 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.
@@ -147,7 +468,7 @@ x86/x86_64:
 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)
@@ -156,16 +477,16 @@ common:
          $(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)
 
 ====================================================================
@@ -173,7 +494,7 @@ Version 0.1 alpha2.2
 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)
 
 ====================================================================
@@ -181,7 +502,7 @@ Version 0.1 alpha2.1
 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)
 
 ====================================================================
@@ -189,16 +510,16 @@ Version 0.1 alpha2
 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.
@@ -213,10 +534,10 @@ x86/x86_64:
        * 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)
 
@@ -225,9 +546,9 @@ Version 0.1 alpha1
 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).
@@ -236,15 +557,15 @@ common:
        * 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: