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