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