Merge pull request #386 from wernsaar/develop
[platform/upstream/openblas.git] / Changelog.txt
1 OpenBLAS ChangeLog
2 ====================================================================
3 Version 0.2.9
4 10-Jun-2014
5 common:
6         * Improved the result for LAPACK testing. (#372)
7         * Installed DLL to prefix/bin instead of prefix/lib. (#366)
8         * Build import library on Windows.(#374)
9 x86/x86-64:
10         * To improve LAPACK testing, we fallback some kernels. (#372)
11         https://github.com/xianyi/OpenBLAS/wiki/Fixed-optimized-kernels-To-do-List
12
13 ====================================================================
14 Version 0.2.9.rc2
15 06-Mar-2014
16 common:
17         * Added OPENBLAS_VERBOSE environment variable.(#338)
18         * Make OpenBLAS thread-pool resilient to fork via pthread_atfork.
19           (#294, Thank Olivier Grisel)
20         * Rewrote rotmg
21         * Fixed sdsdot bug.
22 x86/x86-64:
23         * Detect Intel Haswell for new Macbook.
24
25 ====================================================================
26 Version 0.2.9.rc1
27 13-Jan-2013
28 common:
29         * Update LAPACK to 3.5.0 version
30         * Fixed compatiable issues with Clang and Pathscale compilers.
31
32 x86/x86-64:
33         * Optimization on Intel Haswell.
34         * Enable optimization kernels on AMD Bulldozer and Piledriver.
35
36 ARM:
37         * Support ARMv6 and ARMv7 ISA.
38         * Optimization on ARM Cortex-A9.
39
40 ====================================================================
41 Version 0.2.8
42 01-Aug-2013
43 common:
44         * Support Open64 5.0. (#266)
45         * Add executable stack markings. (#262, Thank Sébastien Fabbro)
46         * Respect user's LDFLAGS (Thank Sébastien Fabbro)
47
48 x86/x86-64:
49         * Rollback bulldozer and piledriver kernels to barcelona kernels (#263)
50           We will fix the compuational error bug in bulldozer and piledriver kernels.
51
52 ====================================================================
53 Version 0.2.7
54 20-Jul-2013
55 common:
56         * Support LSB (Linux Standard Base) 4.1.
57           e.g. make CC=lsbcc
58         * Include LAPACK 3.4.2 source codes to the repo. 
59           Avoid downloading at compile time.
60         * Add NO_PARALLEL_MAKE flag to disable parallel make.
61         * Create openblas_get_parallel to retrieve information which 
62           parallelization model is used by OpenBLAS. (Thank grisuthedragon)
63         * Detect LLVM/Clang compiler. The default compiler is Clang on Mac OS X.
64         * Change LIBSUFFIX from .lib to .a on windows.
65         * A work-around for dtrti_U single thread bug. Replace it with LAPACK codes. (#191)
66
67 x86/x86-64:
68         * Optimize c/zgemm, trsm, dgemv_n, ddot, daxpy, dcopy on 
69           AMD Bulldozer. (Thank Werner Saar)
70         * Add Intel Haswell support (using Sandybridge optimizations).
71           (Thank Dan Luu)
72         * Add AMD Piledriver support (using Bulldozer optimizations).
73         * Fix the computational error in zgemm avx kernel on 
74           Sandybridge. (#237)
75         * Fix the overflow bug in gemv.
76         * Fix the overflow bug in multi-threaded BLAS3, getrf when NUM_THREADS 
77           is very large.(#214, #221, #246).
78 MIPS64:
79         * Support loongcc (Open64 based) compiler for ICT Loongson 3A/B.
80
81 Power:
82         * Support Power7 by old Power6 kernels. (#220)
83
84 ====================================================================
85 Version 0.2.6
86 2-Mar-2013
87 common:
88         * Improved OpenMP performance slightly. (d744c9)
89         * Improved cblas.h compatibility with Intel MKL.(#185)
90         * Fixed the overflowing bug in single thread cholesky factorization.
91         * Fixed the overflowing buffer bug of multithreading hbmv and sbmv.(#174)
92
93 x86/x86-64:
94         * Added AMD Bulldozer x86-64 S/DGEMM AVX kernels. (Thank Werner Saar)
95           We will tune the performance in future.
96         * Auto-detect Intel Xeon E7540.
97         * Fixed the overflowing buffer bug of gemv. (#173)
98         * Fixed the bug of s/cdot about invalid reading NAN on x86_64. (#189)
99
100 MIPS64:
101
102 ====================================================================
103 Version 0.2.5
104 26-Nov-2012
105 common:
106         * Added NO_SHARED flag to disable generating the shared library.
107         * Compile LAPACKE with ILP64 modle when INTERFACE64=1 (#158)
108         * Export LAPACK 3.4.2 symbols in shared library. (#147)
109         * Only detect the number of physical CPU cores on Mac OSX. (#157)
110         * Fixed NetBSD build. (#155)
111         * Fixed compilation with TARGET=GENERIC. (#160)
112 x86/x86-64:
113         * Restore the original CPU affinity when calling 
114           openblas_set_num_threads(1) (#153)
115         * Fixed a SEGFAULT bug in dgemv_t when m is very large.(#154)
116 MIPS64:
117
118 ====================================================================
119 Version 0.2.4
120 8-Oct-2012
121 common:
122         * Upgraded LAPACK to 3.4.2 version. (#145)
123         * Provided support for passing CFLAGS, FFLAGS, PFLAGS, 
124           FPFLAGS to make. (#137)
125         * f77blas.h:compatibility for compilers without C99 complex 
126           number support. (#141)
127 x86/x86-64:
128         * Added NO_AVX flag. Check OS supporting AVX on runtime. (#139)
129         * Fixed zdot incompatibility ABI issue with GCC 4.7 on 
130           Windows 32-bit. (#140)
131 MIPS64:
132         * Fixed the generation of shared library bug.
133         * Fixed the detection bug on the Loongson 3A server.
134 ====================================================================
135 Version 0.2.3
136 20-Aug-2012
137 common:
138         * Fixed LAPACK unstable bug about ?laswp. (#130)
139         * Fixed the shared library bug about unloading the library on 
140           Linux (#132).
141         * Fixed the compilation failure on BlueGene/P (TARGET=PPC440FP2)
142           Please use gcc and IBM xlf. (#134)
143 x86/x86-64:
144         * Supported goto_set_num_threads and openblas_set_num_threads 
145           APIs in Windows. They can set the number of threads on runtime.
146           
147 ====================================================================
148 Version 0.2.2
149 6-July-2012
150 common:
151         * Fixed exporting DLL functions bug on Windows/MingW
152         * Support GNU Hurd (Thank Sylvestre Ledru)
153         * Support kfreebsd kernel (Thank Sylvestre Ledru)
154 x86/x86-64:
155         * Support Intel Sandy Bridge 22nm desktop/mobile CPU
156 SPARC:
157         * Improve the detection of SPARC (Thank Sylvestre Ledru)
158
159 ====================================================================
160 Version 0.2.1
161 30-Jun-2012
162 common:
163 x86/x86-64:
164         * Fixed the SEGFAULT bug about hyper-theading
165         * Support AMD Bulldozer by using GotoBLAS2 AMD Barcelona codes
166
167 ====================================================================
168 Version 0.2.0
169 26-Jun-2012
170 common:
171         * Removed the limitation (64) of numbers of CPU cores.
172           Now, it supports 256 cores at max.
173         * Supported clang compiler.
174         * Fixed some build bugs on FreeBSD
175 x86/x86-64:
176         * Optimized Level-3 BLAS on Intel Sandy Bridge x86-64 by AVX instructions.
177           Please use gcc >= 4.6 or clang >=3.1.
178         * Support AMD Bobcat by using GotoBLAS2 AMD Barcelona codes.
179
180 ====================================================================
181 Version 0.1.1
182 29-Apr-2012
183 common:
184         * Upgraded LAPACK to 3.4.1 version. (Thank Zaheer Chothia)
185         * Supported LAPACKE, a C interface to LAPACKE. (Thank Zaheer Chothia)
186         * Fixed the build bug (MD5 and download) on Mac OSX.
187         * Auto download CUnit 2.1.2-2 from SF.net with UTEST_CHECK=1.
188         * Fxied the compatibility issue for compilers without C99 complex number
189           (e.g. Visual Studio)
190 x86/x86_64:
191         * Auto-detect Intel Sandy Bridge Core i7-3xxx & Xeon E7 Westmere-EX.
192         * Test alpha=Nan in dscale.
193         * Fixed a SEGFAULT bug in samax on x86 windows.
194         
195 ====================================================================
196 Version 0.1.0
197 23-Mar-2012
198 common:
199         * Set soname of shared library on Linux.
200         * Added LIBNAMESUFFIX flag in Makefile.rule. The user can use 
201           this flag to control the library name, e.g. libopenblas.a, 
202           libopenblas_ifort.a or libopenblas_omp.a.
203         * Added GEMM_MULTITHREAD_THRESHOLD flag in Makefile.rule.
204           The lib use single thread in GEMM function with small matrices.
205 x86/x86_64:
206         * Used GEMV SSE/SSE2 kernels on x86 32-bit.
207         * Exported CBLAS functions in Windows DLL.
208 MIPS64:
209         * Completed Level-3 BLAS optimization on Loongson 3A CPU.
210         * Improved GEMV performance on Loongson 3A CPU.
211         * Improved Level-3 BLAS performance on Loongson 3B CPU. (EXPERIMENT)
212
213 ====================================================================
214 Version 0.1 alpha2.5
215 19-Feb-2012
216 common:
217         * Fixed missing "#include <sched.h>" bug on Mac OS X.
218           Thank Mike Nolta for the patch.
219         * Upgraded LAPACK to 3.4.0 version
220         * Fixed a bug on Mac OS X. Don't require SystemStubs on OS X.
221           SystemStubs does not exist on Lion. Thank Stefan Karpinski.
222         * Improved README with using OpenMP. Check the internal threads
223           count less than or equal to omp_get_max_threads()
224 x86/x86_64:
225         * Auto-detect Intel Core i6/i7 (Sandy Bridge) CPU with Nehalem assembly kernels
226         * Fixed some bugs on MingW 64-bit including zgemv, cdot, zdot.
227
228 ====================================================================
229 Version 0.1 alpha2.4
230 18-Sep-2011
231 common:
232         * Fixed a bug about installation. The header file "fblas77.h" 
233           works fine now.
234         * Fixed #61 a building bug about setting TARGET and DYNAMIC_ARCH.
235         * Try to handle absolute path of shared library in OSX. (#57)
236           Thank Dr Kane O'Donnell.
237         * Changed the installation folder layout to $(PREFIX)/include and
238           $(PREFIX)/lib
239
240 x86/x86_64:
241         * Fixed #58 zdot/xdot SEGFAULT bug with GCC-4.6 on x86. According 
242           to i386 calling convention, The callee should remove the first 
243           hidden parameter.Thank Mr. John for this patch. 
244
245 ====================================================================
246 Version 0.1 alpha2.3
247 5-Sep-2011
248
249 x86/x86_64:
250         *  Added DTB_ENTRIES into dynamic arch setting parameters. Now, 
251            it can read DTB_ENTRIES on runtime. (Refs issue #55 on github)
252
253 ====================================================================
254 Version 0.1 alpha2.2
255 14-Jul-2011
256
257 common:
258         * Fixed a building bug when DYNAMIC_ARCH=1 & INTERFACE64=1. 
259           (Refs issue #44 on github)
260
261 ====================================================================
262 Version 0.1 alpha2.1
263 28-Jun-2011
264
265 common:
266         * Stop the build and output the error message when detecting 
267           fortran compiler failed. (Refs issue #42 on github)
268
269 ====================================================================
270 Version 0.1 alpha2
271 23-Jun-2011
272
273 common:
274         * Fixed blasint undefined bug in <cblas.h> file. Other software 
275           could include this header successfully(Refs issue #13 on github)
276         * Fixed the SEGFAULT bug on 64 cores. On SMP server, the number 
277           of CPUs or cores should be less than or equal to 64.(Refs issue #14 
278           on github)
279         * Support "void goto_set_num_threads(int num_threads)" and "void
280           openblas_set_num_threads(int num_threads)" when USE_OPENMP=1
281         * Added extern "C" to support C++. Thank Tasio for the patch(Refs 
282           issue #21 on github)
283         * Provided an error message when the arch is not supported.(Refs 
284           issue #19 on github)
285         * Fixed issue #23. Fixed a bug of f_check script about generating link flags.
286         * Added openblas_set_num_threads for Fortran.
287         * Fixed #25 a wrong result of rotmg.
288         * Fixed a bug about detecting underscore prefix in c_check.
289         * Print the wall time (cycles) with enabling FUNCTION_PROFILE
290         * Fixed #35 a build bug with NO_LAPACK=1 & DYNAMIC_ARCH=1
291         * Added install target. You can use "make install". (Refs #20)
292
293
294 x86/x86_64:
295         * Fixed #28 a wrong result of dsdot on x86_64.
296         * Fixed #32 a SEGFAULT bug of zdotc with gcc-4.6.
297         * Fixed #33 ztrmm bug on Nehalem.
298         * Work-around #27 the low performance axpy issue with small imput size & multithreads.
299
300 MIPS64:
301         * Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64. 
302         * Optimized single/double precision BLAS Level3 on Loongson3A/MIPS64. (Refs #2)
303         * Optimized single/double precision axpy function on Loongson3A/MIPS64. (Refs #3)
304
305 ====================================================================
306 Version 0.1 alpha1
307 20-Mar-2011
308
309 common:
310         * Support "make  NO_LAPACK=1" to build the library without 
311           LAPACK functions.
312         * Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34. 
313           Thank Mr.Ei-ji Nakama providing this patch. (Refs issue #12 on github)
314         * Added DEBUG=1 rule in Makefile.rule to build debug version.
315         * Disable compiling quad precision in reference BLAS library(netlib BLAS).
316         * Added unit testcases in utest/ subdir. Used  CUnit framework.
317         * Supported OPENBLAS_* & GOTO_* environment variables (Pleas see README)
318         * Imported GotoBLAS2 1.13 BSD version
319
320 x86/x86_64:
321         * On x86 32bits, fixed a bug in zdot_sse2.S line 191. This would casue 
322           zdotu & zdotc failures. Instead, work-around it. (Refs issue #8 #9 on github)
323         * Modified ?axpy functions to return same netlib BLAS results 
324           when incx==0 or incy==0 (Refs issue #7 on github)
325         * Modified ?swap functions to return same netlib BLAS results 
326           when incx==0 or incy==0 (Refs issue #6 on github)
327         * Modified ?rot functions to return same netlib BLAS results 
328           when incx==0 or incy==0 (Refs issue #4 on github)
329         * Detect Intel Westmere,Intel Clarkdale and Intel Arrandale 
330           to use Nehalem codes.
331         * Fixed a typo bug about compiling dynamic ARCH library.
332 MIPS64:
333         * Improve daxpy performance on ICT Loongson 3A.
334         * Supported ICT Loongson 3A CPU (Refs issue #1 on github)
335 ====================================================================