matrixmultiply
General matrix multiplication for f32 and f64 matrices. Operates on matrices with general layout (they can use arbitrary row and column stride). Detects and uses SIMD features on x86/x86-64 and AArch64 transparently for higher performance. Uses a microkernel strategy, so that the implementation is easy to parallelize and optimize. Supports multithreading.
0.3.11
132M downloads/mo
#686 most downloaded on crates.io
bluss/matrixmultiply
What this package is like to depend on
Last release 1 months ago
14 Jul 2026
Ships fairly regularly
a new release about every 10 months
This project publishes no release notes
the list below is its commits, not an announcement
Nothing withdrawn
no release was ever pulled
10 years old
33 releases · first in 2016
1 release in the last 12 months
see the full history below
Release timeline
33 releases · Mar 2016 to Jul 2026Releases
latest 33-
0.3.1114 Jul 2026Commits, not release notes
This project publishes no release notes. Between
0.3.10and0.3.11there were 49 commits, 46 of them substantive:- Remove unused old files (kernels and benchmark results)
- maint: Update crate excludes
- bench: Support layout change (i.e fcf vs fcc)
- maint: Configure away one annoying clippy lint
- sgemm: Add wasm32 SIMD128 kernel
- ci: Add wasm32 SIMD128 test job
- sgemm: simplify kernel_x86_avx logic and reduce shuffle overhead
- Fix typo in architecture-specific parameters comment (#92)
- maint: very short CONTRIBUTING.md file with developer info
- bench: Support wasmtime runner in benchmark
- bench: Push down layout loop
- bench: Support selecting wasm feature set
- test: Add justfile for wasmtest command
- wasm: Add relaxed-simd relaxed_madd function
- wasm: Use muladd in epilogue
- wasm: Use muladd in loop
- wasm: Refactor loop
- doc: Document wasm32 features in module doc
- test: Test wasm relaxed-simd and update ci settings
- Use MaybeUninit for uninitialized packing buffer memory
…and 26 more.
-
0.3.1012 May 2025Commits, not release notes
This project publishes no release notes. Between
0.3.9and0.3.10there were 8 commits, 6 of them substantive:- kernel: Silence unused method warning
- debugmacros: Silence unknown cfg warning
- example/usegemm: Remove unused method
- ci: Pin either=1.13 for MSRV
- Exclude alignment for MaskBuffer for i686-win7-windows-msvc
- sgemm: Reduce unnecessary AVX register permutations
-
0.3.927 Jul 2024Commits, not release notes
This project publishes no release notes. Between
0.3.8and0.3.9there were 5 commits, 3 of them substantive:- Remove obsolete lint directive
- ci: Test with cargo-careful and ThreadSanitizer
- Fix alignment in s390x and cross test
-
0.3.821 Sep 2023Commits, not release notes
This project publishes no release notes. Between
0.3.7and0.3.8there were 5 commits, 4 of them substantive:- bench: Add non-contiguous layouts
- gemm: request 8-byte buffer alignment on macos
- ci: Drop 1.41 in cross test
- gemm: Ensure alignment without repr(align()) on macos
-
0.3.702 May 2023Commits, not release notes
This project publishes no release notes. Between
0.3.6and0.3.7there were 2 commits, 1 of them substantive:- Remove space from file names
-
0.3.630 Apr 2023Commits, not release notes
This project publishes no release notes. Between
0.3.5and0.3.6there were 2 commits, 1 of them substantive:- Fix nostd build
-
0.3.530 Apr 2023Commits, not release notes
This project publishes no release notes. Between
0.3.4and0.3.5there were 9 commits, 7 of them substantive:- gemm: Allow custom packing functions
- complex: pack real and imag separately
- cgemm: Setup Avx2 and Fma autovectorized kernels
- x86-64: Specialize pack function for avx2
- cgemm: use fma in avx2 kernel
- cgemm: Add known-answer test
- cgemm: enable fma for neon
-
0.3.428 Apr 2023Commits, not release notes
This project publishes no release notes. Between
0.3.3and0.3.4there were 11 commits, 9 of them substantive:- loopmacros: Use while loop
- bench: Test both beta != 0 and 0 in layout benchmarks
- sgemm kernel for NEON arm64/aarch64
- dgemm kernel for NEON arm64/aarch64
- ci: Test aarch64 at its MSRV
- threading: Remove bias for aarch64
- uninline c_to_beta_c
- gemm: Use slice for packing buffer
- Use build script to preserve MSRV on aarch64
-
0.3.320 Apr 2023Commits, not release notes
This project publishes no release notes. Between
0.3.2and0.3.3there were 7 commits, 6 of them substantive:- ptr: Fix Send/Sync impls for future compat warning
- Fix Miri error with -Zmiri-tag-raw-pointers
- Add more checks to MIRIFLAGS for CI
- Updated comment in kernel_x86_avx
- ptr: Silence suspicious Send/Sync impls warning
- gemm: request only 16-byte alignment on macos
-
0.3.220 Nov 2021Nothing published for this version
-
0.3.108 Apr 2021Nothing published for this version
-
0.3.008 Jan 2021Nothing published for this version
-
0.2.407 Dec 2020Nothing published for this version
-
0.2.320 Sep 2019Nothing published for this version
-
0.2.208 Dec 2018Nothing published for this version
-
0.2.127 Nov 2018Nothing published for this version
-
0.2.021 Nov 2018Nothing published for this version
-
0.1.1527 Oct 2018Nothing published for this version
-
0.1.1429 Oct 2017Nothing published for this version
-
0.1.1319 Dec 2016Nothing published for this version
-
0.1.1210 Nov 2016Nothing published for this version
-
0.1.1118 Oct 2016Nothing published for this version
-
0.1.1023 Sep 2016Nothing published for this version
-
0.1.918 Aug 2016Nothing published for this version
-
0.1.816 Apr 2016Nothing published for this version
-
0.1.704 Apr 2016Nothing published for this version
-
0.1.601 Apr 2016Nothing published for this version
-
0.1.501 Apr 2016Nothing published for this version
-
0.1.431 Mar 2016Nothing published for this version
-
0.1.329 Mar 2016Nothing published for this version
-
0.1.229 Mar 2016Nothing published for this version
-
0.1.129 Mar 2016Nothing published for this version
-
0.1.028 Mar 2016Nothing published for this version