-
Notifications
You must be signed in to change notification settings - Fork 149
/
RELEASE_NOTES
286 lines (190 loc) · 9.66 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
Release 1.2.5 - Aug 20, 2020
It has been a while! Too long, maybe. In the meantime, GPUs and tensorflow and pytorch have raised the bar when
it comes to ML related computing. Adding automatic differentiation to compute gradients has become a must-have feature
jblas doesn't have. If you're interested in that for the JVM, have a look at deeplearning4j.org.
It seems people are still using jblas, therefore here is a small update which makes jblas work under ubuntu20.04 (amd64)
and arm64. For these new versions, I switched to openblas, as performance seems to be comparable, but compilation is
much easier.
Major changes and updates:
- updated Linux amd64 to work on ubuntu20.04. Updated libgfortran from version 3 to 4. Packaged libgfortran and
libquadmath into the JAR file so you don't have to install libgfortran.so.3 anymore.
- Switched from ATLAS to openblas. Because openblas is so much easier to compile and we can just use the libraries
that are installed. Hopefully the performance / errors are the same.
- Added libraries for arm64 (Raspberry Pis for 64bit images like ubuntu server) and AWS Graviton instances.
Minor things:
- fixed a few bugs in the build system when using newer versions of Ruby.
- started using docker for creating reproducible environments for Linux builds.
- default build-type is openblas
- default build is for static libs. Added now flag --dynamic-libs to configure.
Known issues:
- Compile with java 8. They removed javah later and I haven't yet had the time to figure out how that is used now.
Release 1.2.4 - May 11, 2015
New features
- new libraries for 64bit Linux ppc64le (provided by mtbrandy)
- built-type configuration parameter to switch to OpenBLAS (proposed by etrain)
or NVBLAS (proposed by EmergentOrder)
Bug fixes (tons of)
- Fixed documentation errors where it talked about row vectors when
they really were column vectors. (reported by GratefulTony and others)
- Fixed documentation where it talked about data being laid out in rows
where it actually is by columns. (reported by boscogh)
- Fixed documentation on which arrays are copied and which are taken (chmp)
- Fixed arg() in the ComplexDouble and ComplexFloat examples (reported by be9)
- Fixed equals/hashCode broken contract (reported by m0nzderr)
- bug in FloatMatrix.out (reported by XSoftLab)
- Fixed use of temporary files under Windows
- Several bugfixes and performance improvements (by srowen)
- Fixed SimplesBlas.gemv (lifeiteng)
- Fixes on the C code to suppress compiler warnings (keszybz)
- Fixed a bug where tests fail in French locale (mpoussevin and srowen)
- Clarifications on the Eigen method ranges (sehlstrom)
- Fix in indexRows/indexColumns method (landesfeind)
- Fixed accumulation of temp files under Windows (thanks to suggestions by boscogh)
---------------------------------------------------------------------
Release 1.2.3
New features
- LU decomposition for float
- Least squares and Pseudo-inverse to Solve.
- QR decomposition.
- Removed dependency on external libgfortran for Windows.
- Now also runs on CentOS and other Linux 2.6 distros out of the box.
Removed features
- Support for SSE2. I don't have access to such processors anymore. Sorry.
Bug fixes
- load and save didn't close the streams.
- Bug in maxi and mini.
- Recompiled on Linux 2.6.32 to resolve glibc version dependency
problems. Now also runs on centos.
---------------------------------------------------------------------
Release 1.2.2
New features
- full SVD for complex matrices
- Added travis CI support on github
- recompiled ATLAS for Linux, moved to 3.10.0, lapack 3.4.2
- upload to central maven repo
Bug fixes
- More meaningful error messages for Linux/64 and Windows
when libraries are missing
- SingularValueDecomposition for complex matrices used transpose()
instead of hermitian()
---------------------------------------------------------------------
Release 1.2.1
Bug fixes and code side changes.
- Fixed bugs with Range objects
- Moved test code to JUnit 4.
- Fixed configure script and code-generation to Ruby 1.9
---------------------------------------------------------------------
Release 1.2.0 - January 7, 2011
- Added Generalized Eigenvalues for symmetric matrices (which you
need, for example, for Canoncial Correlation Analysis). See
org.jblas.Eigen.
- Added pure-LAPACK build to Windows 64. Not as nearly as fast as
ATLAS, but still 50% over pure Java implementation (for example, for
DGEMM).
- Changed build system to maven. Actually, the build.xml from the ant
file still exists and can also be used, but now you also have a
pom.xml.
- As a side effect of the change to maven, test suites are now
actually run during the build ;)
Some bugs:
- Fortran functions returning floats (e.g. SDOT) returned 0.0. Fixed
now.
- Bug in some complex numbers routines.
---------------------------------------------------------------------
Release 1.1.1
Mostly bug fixes
- remove spurious System.out.print in complex eigenvector routine.
- fixed get with ranges
- added some more variants of get with ranges
- added more functions to complex data types (in particular sqrt())
- added hermitian() to Complex matrices to compute conjugate transposes.
----------------------------------------------------------------------
Release 1.1 - August 16, 2010
Added Singular Value Decomposition, some bugfixes
- fixed bug with complex return values and gfortran vs. g77
- added --ptatlas flag for compiling against multithreaded ATLAS
- dropped support for 32bit Mac OS X
The main reason for dropping support for 32bit Mac OS X was that
the latest versions installs as 64bit by default, and the install
for the 32bit macports gcc seem to be broken -> no way to compile it.
----------------------------------------------------------------------
Release 1.0.2 - February 26, 2010
Mostly a bug-fix release for the build-process
- fixed utf-8 unicode issues with javadoc
- fixed issues with parallel make ("make -j3")
- fixed issues with SSE2/SSE3 config code
No changes to the libraries, you can keep on using the jar file for
1.0.1.
----------------------------------------------------------------------
Release 1.0.1 - January 14, 2010
Minor fixes, mostly to do with handling spaces in the configure
scripts under windows, and running also on older processor which do
not support SSE2 (older Athlon64 processors, for example).
Changes from 1.0:
- jar contains prebuilt ATLAS libraries for SSE2 and SSE3 and selects
based on what is supported.
Still no support for 64bit for Windows, mostly because cygwin/mingw
support for 64bit is quite experimental, and ATLAS doesn't support
64bit builds under Windows. If you have managed to compile the thing,
let me know ;)
You can still use the 32bit version on a 64bit Windows, of course.
----------------------------------------------------------------------
Release 1.0 - December 22, 2009
Leo (@thinkberg) conviced me to bump my version number to 1.0 because
the software itself is stable, and I now cover all platforms I
originally targeted.
Changes from 0.3:
- expm moved from DoubleMatrix to MatrixFunctions
- Build for Mac OS X
- configure script has been overhauled.
- Matrix classes are now serializable.
----------------------------------------------------------------------
Release v0.3 - September 17, 2009
Release v0.3 adds some features, in particular LU and Cholesky decomposition,
matrix exponentials, and random permutations.
Still no Mac OS X support, though :(
Changes from version v0.2:
- jar file can now contain dynamic as well as static files
- added LAPACK functions [sdcz]geev, [sd]getrf, [sd]potrf
- Added interfaces ConvertsToDoubleMatrix and ConverstToFloatMatrix
- Added class Decompose which provides LUDecomposition (based on getrf),
and Cholesky decomposition (based on potrf)
- Matrix classes:
- Added read-only AbstractList views for elements, rows, and
columns for better interfacing with Java's collection API.
- Added matrix exponentials based on Pade approximation provided
by Jan Saptra Müller. These should be pretty fast!
- Added prod() which returns the product of all elements.
- Added project() which projects one vector on another.
- Added diviRowVector().
- Added loadCSVFile().
- Added MatrixFunctions.min() and .max() for integers.
- Added Permutations class for generating random permutations and
subsets based on the algorithms from Knuth's "The Art of Computer
Programming", Vol. 2.
----------------------------------------------------------------------
Release v0.2 - May 8, 2009
Release v0.2 mostly adds features to the build process and renames some
packages and classes to make the structure simpler. No new significant
functionality has been added.
Changes from version v0.1:
- fixed a bug in DoubleMatrix.copy()
- Renamed packages to make structure simpler
org.jblas.la -> org.jblas
org.jblas.la.exceptions -> org.jblas.exceptions
org.jblas.la.ranges -> org.jblas.ranges
org.jblas.core -> moved content to org.jblas and org.jblas.util
- Renamed classes
Blas -> NativeBlas
- Build process can now generate different kinds of jar files, and also
generate shared libraries which are statically linked against BLAS,
LAPACK or ATLAS. You can also generate a multiplatform jar file which
contains shared libraries for different platforms.
- Generated wrapper code has been optimized a bit:
- in the lapack wrapper with automatic workspace allocation, only
small dummy arrays are passed in the workspace query, meaning that
the real arrays are only passed once, not twice.
- The wrapper now also parses information whether output variables
are input or output and releases the arrays with JNI_ABORT in case
they are not output variables. This should also reduce the amount
of copying.