As it stands now, Peroxide enforces use of OpenBLAS even though all the libraries and apis it uses are agnostic to the BLAS library variant. In order to use a different BLAS implementation, one must delete Peroxide's build.rs, everything works fine otherwise. Especially as this tutorial page is linked in the README, I think it should be expected that the user should be the one to include the linkage lines in their build.rs.
Realistically, I think there are a few good ways of changing this:
- Just remove Peroxide's
build.rsand leave it to the user to include the right libraries (I believe this is the best course of action)
- Add a "no explicit linkage" feature that disables Peroxide's
build.rs
- Change the linkage from
openblas to blas - many distros/package managers will have libblas symlinked to the installed BLAS implementation, OpenBLAS included.
- Add
links tag to Cargo.toml to allow for explicit overriding
Regardless, Peroxide explicitly linking to OpenBLAS is undesirable due to the plethora of other BLAS implementations (including open source ones like ClBlast) that can be used with no source code changes.
As it stands now, Peroxide enforces use of OpenBLAS even though all the libraries and apis it uses are agnostic to the BLAS library variant. In order to use a different BLAS implementation, one must delete Peroxide's
build.rs, everything works fine otherwise. Especially as this tutorial page is linked in the README, I think it should be expected that the user should be the one to include the linkage lines in theirbuild.rs.Realistically, I think there are a few good ways of changing this:
build.rsand leave it to the user to include the right libraries (I believe this is the best course of action)build.rsopenblastoblas- many distros/package managers will havelibblassymlinked to the installed BLAS implementation, OpenBLAS included.linkstag to Cargo.toml to allow for explicit overridingRegardless, Peroxide explicitly linking to OpenBLAS is undesirable due to the plethora of other BLAS implementations (including open source ones like ClBlast) that can be used with no source code changes.