Skip to content

Commit 6dfbe71

Browse files
committed
Merge pull request #7213 from JuliaLang/vs/openblas
WIP: Bump OpenBLAS to 0.2.9 and LAPACK to 3.5.0
2 parents f40b71b + f23c53d commit 6dfbe71

File tree

13 files changed

+21
-115
lines changed

13 files changed

+21
-115
lines changed

base/linalg/matmul.jl

+11-16
Original file line numberDiff line numberDiff line change
@@ -203,23 +203,18 @@ function copytri!(A::StridedMatrix, uplo::Char, conjugate::Bool=false)
203203
A
204204
end
205205

206-
if Base.blas_vendor() == :openblas
207-
## Avoid calling BLAS.gemv! when OpenBLAS is being used until #6941 is fixed.
208-
gemv!{T<:BlasFloat}(y::StridedVector{T}, tA::Char, A::StridedMatrix{T}, x::StridedVector{T}) = generic_matvecmul!(y, tA, A, x)
209-
else
210-
function gemv!{T<:BlasFloat}(y::StridedVector{T}, tA::Char, A::StridedMatrix{T}, x::StridedVector{T})
211-
stride(A, 1)==1 || return generic_matvecmul!(y, tA, A, x)
212-
if tA != 'N'
213-
(nA, mA) = size(A)
214-
else
215-
(mA, nA) = size(A)
216-
end
217-
nA==length(x) || throw(DimensionMismatch(""))
218-
mA==length(y) || throw(DimensionMismatch(""))
219-
mA == 0 && return zeros(T, 0)
220-
nA == 0 && return zeros(T, mA)
221-
return BLAS.gemv!(tA, one(T), A, x, zero(T), y)
206+
function gemv!{T<:BlasFloat}(y::StridedVector{T}, tA::Char, A::StridedMatrix{T}, x::StridedVector{T})
207+
stride(A, 1)==1 || return generic_matvecmul!(y, tA, A, x)
208+
if tA != 'N'
209+
(nA, mA) = size(A)
210+
else
211+
(mA, nA) = size(A)
222212
end
213+
nA==length(x) || throw(DimensionMismatch(""))
214+
mA==length(y) || throw(DimensionMismatch(""))
215+
mA == 0 && return zeros(T, 0)
216+
nA == 0 && return zeros(T, mA)
217+
return BLAS.gemv!(tA, one(T), A, x, zero(T), y)
223218
end
224219

225220
function syrk_wrapper!{T<:BlasFloat}(C::StridedMatrix{T}, tA::Char, A::StridedMatrix{T})

deps/Makefile

-8
Original file line numberDiff line numberDiff line change
@@ -799,13 +799,6 @@ openblas-$(OPENBLAS_VER)/config.status: openblas-$(OPENBLAS_VER).tar.gz
799799
mkdir -p openblas-$(OPENBLAS_VER) && \
800800
$(TAR) -C openblas-$(OPENBLAS_VER) --strip-components 1 -xf $<
801801
perl -i -ple 's/^\s*(EXTRALIB\s*\+=\s*-lSystemStubs)\s*$$/# $$1/g' openblas-$(OPENBLAS_VER)/Makefile.system
802-
ifeq ($(OPENBLAS_VER),v0.2.8)
803-
cd openblas-$(OPENBLAS_VER)/lapack-netlib/SRC && \
804-
patch < ../../../dlasd4-lapack-3.4.2.patch && \
805-
patch < ../../../slasd4-lapack-3.4.2.patch
806-
cd openblas-$(OPENBLAS_VER)/exports && \
807-
patch < ../../openblas-link-osx109.patch
808-
endif
809802
echo 1 > $@
810803
$(OPENBLAS_OBJ_SOURCE): openblas-$(OPENBLAS_VER)/config.status
811804
$(MAKE) -C openblas-$(OPENBLAS_VER) $(OPENBLAS_BUILD_OPTS) || (echo "*** Clean the OpenBLAS build with 'make -C deps clean-openblas'. Rebuild with 'make OPENBLAS_USE_THREAD=0 if OpenBLAS had trouble linking libpthread.so, and with 'make OPENBLAS_TARGET_ARCH=NEHALEM' if there were errors building SandyBridge support. Both these options can also be used simultaneously. ***" && false)
@@ -930,7 +923,6 @@ lapack-$(LAPACK_VER).tgz:
930923
lapack-$(LAPACK_VER)/Makefile: lapack-$(LAPACK_VER).tgz
931924
$(JLCHECKSUM) $<
932925
$(TAR) zxf $<
933-
cd lapack-$(LAPACK_VER)/SRC && patch < ../../dlasd4-lapack-3.4.2.patch && patch < ../../slasd4-lapack-3.4.2.patch
934926
touch -c $@
935927
ifeq ($(USE_SYSTEM_BLAS), 0)
936928
lapack-$(LAPACK_VER)/liblapack.a: | $(OPENBLAS_OBJ_TARGET)

deps/Versions.make

+2-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ LLVM_LIB_SUFFIX =
33
PCRE_VER = 8.31
44
GRISU_VER = 1.1.1
55
DSFMT_VER = 2.2
6-
ifeq ($(OS),WINNT)
7-
OPENBLAS_VER = v0.2.9.rc1
8-
else
9-
OPENBLAS_VER = v0.2.8
10-
endif
11-
LAPACK_VER = 3.4.2
6+
OPENBLAS_VER = v0.2.9
7+
LAPACK_VER = 3.5.0
128
ARPACK_VER = 3.1.5
139
FFTW_VER = 3.3.3
1410
SUITESPARSE_VER = 4.2.1

deps/checksums/lapack-3.5.0.tgz/md5

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b1d3e3e425b2e44a06760ff173104bdf
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b948a0a0db032bda455ec4f519d4e89e4c29e29cecb5b6258ca61f68faaeeac9fdf4ece5c39ffcd0154c5505facbc392c7d09c8348b1d60bdd2685153ab2543f

deps/checksums/openblas-v0.2.9.rc1.tar.gz/md5

-1
This file was deleted.

deps/checksums/openblas-v0.2.9.rc1.tar.gz/sha512

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b3af3bed5f353d1fc024cab1b836ac3e
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
26675d3f66121e1be1b1ab149883afb392fa40f313380416d2e56093cf88c64e5d36dab366c734b9d5e9a4bd49085235cb73d819e9b559e924039cd2b42aa2f9

deps/dlasd4-lapack-3.4.2.patch

-36
This file was deleted.

deps/openblas-link-osx109.patch

-11
This file was deleted.

deps/slasd4-lapack-3.4.2.patch

-36
This file was deleted.

test/linalg1.jl

+4
Original file line numberDiff line numberDiff line change
@@ -266,3 +266,7 @@ debug && println("Matrix square root")
266266
end
267267
end
268268
end
269+
270+
#6941
271+
#@test (ones(10^7,4)*ones(4))[3] == 4.0
272+

0 commit comments

Comments
 (0)