Hi, I am a Julia/C++ developper and a total novice with apple ecosystem.
I look for examples and documentation about the SparseSolve C++ API from the Accelerate framework.
I find myself in a very similar boat: I'm working on making an interface for libSparse in AppleAccelerate.jl I've managed to call SparseSolve and SparseFactor from Julia with @ccall, but I'm finding the performance puzzling. When it comes to solving Ax = b in-place (b is a vector) for large symmetric positive definite A, I find that KLU.jl's KLU.solve! (LU factorization) is 2x faster than Apple Accelerate's SparseSolve (Cholesky factorization). That's highly counter intuitive: you'd think that a hardware-specific implementation that exploits the positive-definite nature of the matrix would be faster. When I profile repeated calls to SparseSolve, I get the most called functions are _SparseConvertFromCoordinate_Double followed by BLASStateRelease. (The later ones are more reasonable, LAPACK/CBLAS stuff like dgemm, ssyrk.)
I may post a separate question with more detail, but this post is so close to my own question.
Topic:
App & System Services
SubTopic:
Core OS
Tags: