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