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