#blas-lapack #blas #matlab #lapack #rustmex #linear-algebra

sys matlabblas-src

为 BLAS crates 提供 MATLAB 的 BLAS 库源码

1 个不稳定版本

0.1.0 2023 年 1 月 13 日

#1307 in 数学

MPL-2.0 许可协议

4KB

Matlabblas-src

Matlab 提供的 BLAS 和 LAPACK 库的源码 crate。用于与 crates.io 上的 BLAS crates 一起使用。

安装和推荐

此 crate 是一个空的库;它的唯一作用是声明它链接到另一个外部库。

通常,要使用 BLAS,你会在你的 Cargo.toml 文件中做类似以下操作。

cblas = "0.4.0"
openblas-src = {version = "0.8", default-features = false, features = ["cblas", "static"], optional = true }

与所有 BLAS 系列的 crates 一样,你使用一个绑定/包装 crate 来编程(该 crate 会引入一个 sys crate,它提供了实际的库符号),并选择一个后端,它提供实现(在上面的例子中,将是 openblas)。

相反,如果你正在编译一个 mex 文件(例如,使用 rustmex),并且想要使用 BLAS,这个 crate 就是为你准备的。你可以使用这个 crate 来链接到 Matlab 本身 提供的(并使用的)BLAS 后端,而不是链接到另一个 BLAS 后端。因此,此 crate 在 BLAS 架构中取代了 src crate。

然而,这也带来了一些额外的复杂性。责任在于你,需要为 rustc 提供正确的路径。具体来说,你必须设置库搜索路径和要使用的库名称在你的 config.toml 文件中。

[target.<triple>.mex]
rustc-link-search = ["~/bin/R2022a/bin/glnxa64"]
rustc-link-lib = ["mwblas", "mwlapack"]

<triple> 替换为你正在编译的三元组(rustc -vV 的输出中的 "host" 字段)。当你运行 fullfile(matlabroot(), 'bin', computer('arch')) 命令时,Matlab 将打印出相应的搜索路径。

依赖关系