You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently catalyst links to the blas library shipped with scipy, not jaxlib, because jaxlib does not ship their blas library with a .so shared object file.
This results in when calling numerical functions from jaxlib, for example those in jax.scipy.linalg, most functions will call undefined symbols. This is now being fixed by manually adding in the routines in frontend/catalyst/utils/libcustom_calls.cpp on a case by case basis, but this is not efficient. For example,
Since this is under discussion too for Lightning, the use of https://pypi.org/project/scipy-openblas64/ may be a good candidate to pull in and use throughout, as it is the default used within scipy already (despite the binary included and hashed in the wheel). Happy to discuss this next week.
Since this is under discussion too for Lightning, the use of https://pypi.org/project/scipy-openblas64/ may be a good candidate to pull in and use throughout, as it is the default used within scipy already (despite the binary included and hashed in the wheel). Happy to discuss this next week.
Just a note that our particular issue is due to jax generating code that expects some small custom wrappers around lapack/blas functions. Since we receive jax generated code for linalg functions, we also have to use these custom wrappers rather than interfacing with lapack functions directly.
This issue is about avoiding including (slightly modified versions) of these wrappers in our package.
Currently catalyst links to the blas library shipped with scipy, not jaxlib, because jaxlib does not ship their blas library with a .so shared object file.
This results in when calling numerical functions from jaxlib, for example those in
jax.scipy.linalg
, most functions will call undefined symbols. This is now being fixed by manually adding in the routines infrontend/catalyst/utils/libcustom_calls.cpp
on a case by case basis, but this is not efficient. For example,but
Since the blas routines required for
expm
were added in #752, but those forsqrtm
are still missing.See details in #752
The text was updated successfully, but these errors were encountered: