LinearAlgebra.gemv! vs BLAS.gemv!

LinearAlgebra.gemv! is defined here: https://github.com/JuliaLang/julia/blob/aef528d32a6291ce82452c3a1ff1fa56ccf17641/stdlib/LinearAlgebra/src/matmul.jl#L401-L478

As you can see, it’s a wrapper that does some argument checks et cetera before calling BLAS.gemv!, or in some cases another BLAS function or generic matmul implementation. LinearAlgebra has a lot of somewhat interrelated delegation mechanisms to make everything work smoothly, but if your arrays are BLAS compatible you will eventually end up in a BLAS function.

2 Likes