6 个版本

0.8.1 2022 年 9 月 13 日
0.8.0 2022 年 9 月 11 日
0.8.0-rc.12022 年 8 月 25 日
0.2.0+mkl2020.12020 年 6 月 23 日
0.1.0 2019 年 12 月 14 日

#561Rust 模式

Download history 25/week @ 2024-03-12 4/week @ 2024-03-26 18/week @ 2024-04-02 1/week @ 2024-05-21

每月下载量 519

自定义许可

400KB
14K SLoC

intel-mkl-src

crate crate.io docs.rs master 描述
intel-mkl-src crate docs.rs crate Intel-MKL 的源 crate
intel-mkl-sys Crate docs.rs Crate Intel-MKL 的 FFI(外部函数接口),用于向量数学函数和统计函数
intel-mkl-tool Crate docs.rs Crate 从文件系统中查找 Intel-MKL 库

用法

intel-mkl-src crate 是一个 *-src crate。该 crate 将 MKL 库链接到 cargo 构建的执行文件,但不提供 Rust 绑定。请使用 blas-syslapack-sysfftw-sys 来使用 MKL 的 BLAS、LAPACK、FFTW 接口,例如。

[dependencies]
fftw-sys = { version = "0.4", features = ["intel-mkl"] }

intel-mkl-sys crate 提供了对 MKL 特定功能的绑定。这包括

如何找到系统 MKL 库

intel-mkl-tool crate 以以下方式查找由各种安装程序安装的系统 MKL 库

  • 使用 pkg-config 命令查找
  • 查找 ${MKLROOT} 目录
  • 查找默认安装路径
    • /opt/intel/mkl(Linux)
    • C:/Program Files (x86)/IntelSWTools/C:/Program Files (x86)/Intel/oneAPI(Windows)

如果 intel-mkl-tool 找不到 MKL 库,则 intel-mkl-src 将尝试从 GitHub 容器注册表 (ghcr.io) 下载 MKL 二进制文件。

支持的功能

有 8 个 (=2x2x2) mkl-*-*-* 功能来指定如何链接 MKL 库。如果设置了任何功能,则默认为 mkl-static-ilp64-iomp

dynamic 表示 MKL 是动态链接的,即可执行文件不包含 MKL 库,在执行时会从文件系统中查找。当 MKL 库由系统包管理器管理时(例如 apt),这是一个更好的选择。

static 表示 MKL 是静态链接的,即 MKL 二进制文件嵌入到可执行文件中。当创建可移植可执行文件时,这是一个更好的选择。

数据模型(lp64ilp64

这指定了数据模型

  • ilp64 表示 int(i),long(l)和指针(p)都是 64 位。
  • lp64 表示 long(l)和指针(p)是 64 位,int 是 32 位。

线程管理(iompseq

  • iomp 表示 MKL 使用 Intel OpenMP 运行时
  • seq 表示顺序(单线程)执行

不支持使用 GNU OpenMP 运行时(libgomp)。请参阅 https://github.com/rust-math/intel-mkl-src/issues/97

许可证

MKL 在 Intel(R) Math Kernel Library 简化软件许可下分发,请参阅 License.txt。一些包装代码由 MIT 许可证授权(请参阅每个文件的头部)。

依赖关系

~0–2MB
~32K SLoC