10个版本
0.2.1 | 2022年8月22日 |
---|---|
0.2.0 | 2021年9月4日 |
0.1.7 | 2019年10月24日 |
0.1.6 | 2018年6月27日 |
0.1.0 | 2017年1月24日 |
#699 in 数学
34 每月下载量
在 alumina 中使用
71KB
2K SLoC
关于
A multithreaded fork of bluss' matrixmultiply crate. General matrix multiplication for f32, f64 matrices. Allows arbitrary row, column strided matrices. Relies heavily on llvm to vectorise the floating point ops.
调整
要启用针对您的计算机的特殊化向量指令,请使用以下命令编译:RUSTFLAGS="-C target-cpu=native"
和 MATMULFLAGS="flag1, flag2, ..."
其中一个标志是架构标志
arch_generic4x4 // fallback if architecture is unknown, should use x86 sse and ARM Neon
arch_generic4x4fma // might be useful for newer ARM Neon
arch_penryn // uses the extra x86_64 xmm registers
arch_sandybridge // uses AVX
arch_haswell // uses AVX2
其余的是可选标志
ftz_daz // (nightly) On x86 this will round denormals to zero to improve performance
prefetch // (nightly) Inserts prefetch instructions tuned for recent intel processors
no_multithreading // disables multithreading
例如 MATMULFLAGS="arch_sandybridge, ftz_daz"
在nightly版本中,构建脚本将使用 CARGO_CFG_TARGET_FEATURE
来猜测最佳架构标志,如果未提供。
依赖项
~0.9–1.3MB
~23K SLoC