Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ changelog = "CHANGELOG.md"

[features]
accelerate = ["accelerate-src"]
intel-mkl = ["intel-mkl-src"]
intel-mkl = ["intel-mkl-src/mkl-static-lp64-iomp"]
intel-mkl-seq = ["intel-mkl-src/mkl-static-lp64-seq"]
netlib = ["netlib-src"]
openblas = ["openblas-src"]
r = ["r-src"]
Expand All @@ -47,4 +48,4 @@ optional = true

[dependencies.r-src]
version = "0.2.1"
optional = true
optional = true
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ lapack-src = { version = "0.12", features = ["openblas"] }
lapack-src = { version = "0.12", features = ["r"] }
```

### Intel MKL Configuration

The `intel-mkl` feature will *statically* link the *sequential LP64* version of
the MKL library. To link other versions of the library, check the `intel-mkl-*-*-*`
features inside this crate, which are analogous to the feature flags of
the [`intel-mkl-src` crate] (https://crates.io/crates/intel-mkl-src).

## Contribution

Your contribution is highly appreciated. Do not hesitate to open an issue or a
Expand Down
11 changes: 10 additions & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@
//! lapack-src = { version = "0.12", features = ["openblas"] }
//! lapack-src = { version = "0.12", features = ["r"] }
//! ```
//! ### Configuring MKL
//!
//! When the `intel-mkl` feature is selected, then the parallel version of
//! MKL using OpenMP is _statically_ linked. To link the sequential version
//! use the `intel-mkl-seq` feature. In both cases, the
//! [LP64 interface](https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2023-0/using-the-ilp64-interface-vs-lp64-interface.html)
//! is linked. If other linkage options for MKL are desired, omit `lapack-src`
//! as a dependency and use the [`intel-mkl-src`](https://crates.io/crates/intel-mkl-src)
//! crate directly with the appropriate feature flags.
//!
//! [architecture]: https://blas-lapack-rs.github.io/architecture
//! [lapack]: https://en.wikipedia.org/wiki/LAPACK
Expand All @@ -37,7 +46,7 @@
#[cfg(feature = "accelerate")]
extern crate accelerate_src as raw;

#[cfg(feature = "intel-mkl")]
#[cfg(any(feature = "intel-mkl", feature = "intel-mkl-seq"))]
extern crate intel_mkl_src as raw;

#[cfg(feature = "netlib")]
Expand Down