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