JuliaSmoothOptimizers / PROPACK.jl

Julia wrapper of the PROPACK sparse SVD library
Other
15 stars 3 forks source link

compatibility with MKL #54

Open juandarias opened 1 year ago

juandarias commented 1 year ago

Description:

Platform:

MWE

using MKL
using PROPACK

tsvd(rand(20, 20))

Error: no BLAS/LAPACK library loaded!
amontoison commented 1 year ago

@juandarias What is your version of MKL.jl? We need the version 6.0 for PROPACK.jl.

Update: I can reproduce the issue.

juandarias commented 1 year ago

I have MKL v0.6.0. I updated the issue with this info

juandarias commented 1 year ago

@amontoison. Are older versions of PROPACK compatible with MKL? Maybe I can use one of them in the mean time

amontoison commented 1 year ago

@juandarias All previous versions of PROPACK are compiled with OpenBLAS32_jll.jl so you can use them and also do a using MKL. It will just not use the BLAS routines of MKL.

juandarias commented 1 year ago

Thank you @amontoison and great package! This is the only one that provides correct results for iterative SVD's , nor IterativeSovlers nor KrylovKit worked in my case

ViralBShah commented 4 months ago

Works now with Julia 1.10.4 - perhaps because of LBT 5.9 which provides forwarding of more BLAS and LAPACK symbols.

julia> using MKL

julia> using PROPACK

julia> tsvd(rand(20, 20))
([-0.2060419796110353; -0.2454011505143323; … ; -0.19251920965130948; -0.20989604037851442;;], [10.448019745507464], [-0.2316205727195162; -0.222697646579334; … ; -0.15296995156527565; -0.20513227779552395;;], [4.878769996642799e-38], 11, 11)