I'm having trouble using MKL in julia. I changed Make.inc so that USE_MKL = 1,
but when I make and run julia, I find that Base.libblas_name = "libopenblas". Is this expected? I would have thought it would be eg "libmkl_core".
Andreas, I found your wrappers for MKL in this
PR. I've not used MKL before, so I don't understand the call signature of those functions in order to call MKL directly. Any chance you could explain what are transa::BlasChar and matdescra::ASCIIString in the following function, and which mkl library is expected in the libblas variable? I see many .so files in the lib/intel64 directory of my mkl installation, and I'm not sure which one to point julia to.
function cscmv!(transa::BlasChar, α::$T, matdescra::ASCIIString, A::SparseMatrixCSC{$T, BlasInt}, x::StridedVector{$T}, β::$T, y::StridedVector{$T})
length(x) == A.n || throw(DimensionMismatch("Matrix with $(A.n) columns multiplied with vector of length $(length(x))"))
length(y) == A.m || throw(DimensionMismatch("Vector of length $(A.m) added to vector of length $(length(y))")) #
ccall(($(string(mv)), libblas), Void,
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{$T},
Ptr{Uint8}, Ptr{$T}, Ptr{BlasInt}, Ptr{BlasInt},
Ptr{BlasInt}, Ptr{$T}, Ptr{$T}, Ptr{$T}),
&transa, &A.m, &A.n, &α,
matdescra, A.nzval, A.rowval, pointer(A.colptr, 1),
pointer(A.colptr, 2), x, &β, y)
return y
end
Thanks for your help!
Madeleine