Sage specifies openBLAS as a dependency for several packages, but some of them do not use it anymore. This is because they have an automated process for selecting which BLAS library to use, and that process selects the BLAS from Apple's Accelerate.framework. The list of packages to which this applies includes numpy and suitesparse. On the other hand, Sage's scipy package selects openblas.
These packages allow overriding the automatic BLAS selection. But Sage does not do that. There are bugs in the Accelerate.framework which have not been fixed. The ones that I know about involve some BLAS functions which produce a scalar value, including the dot product. When those functions are called in single-precision mode, Apple produces a double-precision result. This can cause segfaults. But apparently the numpy project and others have figured out a way to work around these bugs, or are choosing to ignore them. Lastly, the openblas spkg creates a library that is more than twice as large as necessary on macOS. OpenBLAS has an option for dynamic kernel selection, meaning that it detects which CPU it is running on and at runtime links in a kernel module which is optimized for the current CPU. By default it builds kernels for many Intel and AMD CPU families. But this is wasteful on macOS since about half of the kernels are for AMD CPUs and no model of Apple computer ever used an AMD CPU. It is possible to provide a list of which CPU families to build kernels for. But Sage does not do that. - Marc -- You received this message because you are subscribed to the Google Groups "sage-release" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/sage-release/e42f2261-5a50-4183-9a44-e5babd33d0a4n%40googlegroups.com.
