JuliaLinearAlgebra / MKL.jl

Intel MKL linear algebra backend for Julia
Other
205 stars 32 forks source link

Update MKL.jl to use the ILP64 interface #164

Closed amontoison closed 4 months ago

amontoison commented 4 months ago

It should solve the issue with MKLSparse.jl. https://github.com/JuliaSparse/MKLSparse.jl/issues/36#issuecomment-2096148444

ViralBShah commented 4 months ago

This will actually be a problem, I believe. When using INTERFACE_LP64, I believe you get dgemm for LP64 and dgemm_64 for ILP64, which is how we do LBT.

With INTERFACE_ILP64, we get dgemm as ILP64.

At least that is my understanding.

amontoison commented 4 months ago

Can we also use INTERFACE_LP64 in MKLSparse.jl?

ViralBShah commented 4 months ago

It may be better for MKLSparse.jl to depend on MKL.jl, which can be counted upon to set the environment up correctly.

ViralBShah commented 4 months ago

It looks it should be safe to set the ILP64 interface. I see the symbols in the ilp64 MKL libraries.

amontoison commented 4 months ago

Are you sure that symbols without suffix _64 are still the LP64 interface? It could break packages compiled with LBT and a LP64 BLAS otherwise.

ViralBShah commented 4 months ago

Darn that's a good point. We definitely want the non-suffixed versions to be LP64, and INTERFACE_LP64 is probably the only way to do it right.