Skip to main content

Sparse CSR x CSR matrix multiplication with fused top-n selection (Rust).

Project description

sp_matmul_rs

Crates.io PyPI License: Apache-2.0

sp_matmul_rs provides a fast way to perform a sparse matrix multiplication (SpGEMM) followed by top-n multiplication result selection.

It is a Rust port of sparse_dot_topn, created and optimised for use in string_grouper — where the dominant workload is matching every row of a very large TF-IDF matrix against every other row and keeping only the top-n nearest neighbours.

sparse_dot_topn is based on Gustavson's algorithm but retains only the best n values per output row. sp_matmul_rs retains the same algorithmic core but is built around L1/L2 cache-blocking: the default driver column-chunks B so the dense per-row accumulator and the streamed B fragments stay resident in L1 (chunk sizes are automatically calculated based on cache size), which is the dominant performance lever once the working set stops fitting in cache. Parallelism is provided by rayon (enabled by default) and the Python distribution releases the GIL around the kernel. On Apple M5 Pro over a 663k × 193k TF-IDF self-similarity workload sp_matmul_rs runs in as little as 41% of the time of sparse_dot_topn when retaining the top 10 values per row and utilising 10 cores. See the benchmark directory for details.

Usage

sp_matmul_topn supports {CSR, CSC, COO} matrices with {32, 64}bit {int, float} data. Note that COO and CSC inputs are converted to the CSR format and are therefore slower. The Python surface (sp_matmul, sp_matmul_topn, zip_sp_matmul_topn) mirrors sparse_dot_topn, so migration from the C++ extension is typically a one-line import swap. Note that sp_matmul_topn(A, B, top_n=B.shape[1]) is equal to sp_matmul(A, B) and A.dot(B).

import numpy as np
import scipy.sparse as sparse
from sp_matmul_rs import sp_matmul, sp_matmul_topn

A = sparse.random(1000, 100, density=0.1, format="csr", dtype=np.float64)
B = sparse.random(100, 2000, density=0.1, format="csr", dtype=np.float64)

# Compute C and retain the top 10 values per row
C = sp_matmul_topn(A, B, top_n=10)

# or parallelised matrix multiplication without top-n selection
C = sp_matmul(A, B, n_threads=2)
# or with top-n selection
C = sp_matmul_topn(A, B, top_n=10, n_threads=2)
# pass n_threads=-1 to use all but one physical core
C = sp_matmul_topn(A, B, top_n=10, n_threads=-1)

# If you are only interested in values above a certain threshold
C = sp_matmul_topn(A, B, top_n=10, threshold=0.8)

# If you set the threshold we cannot easily determine the number of non-zero
# entries beforehand. Therefore, we allocate memory for `ceil(top_n * A.shape[0] * density)`
# non-zero entries. You can set the expected density to reduce the amount pre-allocated
# entries. Note that if we allocate too little an expensive copy(ies) will need to happen.
C = sp_matmul_topn(A, B, top_n=10, threshold=0.8, density=0.1)

The package imports as sp_matmul_rs and does not share its namespace with sparse_dot_topn — both can be installed side-by-side in the same environment.

Installation

sp_matmul_rs provides wheels for CPython 3.9 to 3.13 for:

  • Windows (64bit)
  • Linux (x86_64 and aarch64, both manylinux and musllinux)
  • macOS (x86_64 and ARM)
pip install sp_matmul_rs

sp_matmul_rs relies on a Rust extension for the computationally intensive multiplication routine. Note that the wheels ship with rayon enabled, providing parallelisation out-of-the-box. If you need to disable threading at runtime, omit the n_threads argument (or pass n_threads=1).

Installing from source requires a Rust toolchain (1.75+) and maturin:

pip install maturin
pip install sp_matmul_rs --no-binary sp_matmul_rs

Supported

Values Indices Python Platforms
f32, f64, i32, i64 i32, i64 3.9 – 3.13 manylinux x86_64/aarch64, musllinux x86_64, macOS x86_64/arm64, Windows x86_64

Rust crate

For Rust callers, the same kernels are available without the Python bindings:

[dependencies]
sp_matmul_rs = "0.1"
use sp_matmul_rs::{sp_matmul_topn, CsrView, SortMode, TopNOptions};

let c = sp_matmul_topn::<f64, i32>(
    a_view,
    b_view,
    10,
    TopNOptions { sort: SortMode::ByValue, ..Default::default() },
);

Features

Feature Default What it enables
rayon yes Parallel column-chunked driver (parallel::*).
python no PyO3 + numpy bindings — used by the Python distribution.

Module layout

Module Responsibility
scalar Scalar trait + impls for f32, f64, i32, i64
index Index trait + impls for i32, i64
csr CsrView (borrowed) and CsrMatrix (owned)
maxheap Bounded max-heap retaining top-n scores per row
matmul Sequential sp_matmul (no top-n)
matmul_topn Sequential sp_matmul_topn (single full-column path)
chunked Column-chunked driver — the L1/L2 cache-blocking pillar
zip zip_sp_matmul_topn for distributed/cluster results
parallel Rayon-backed variants (feature rayon)
python PyO3 + numpy bindings (feature python)

Build from source

# Rust crate
cargo build --release                       # default features: rayon
cargo build --release --no-default-features
cargo test
cargo bench

# Python extension (requires maturin and CPython >=3.9)
pip install maturin
maturin develop --release --features python,rayon
python -c "import sp_matmul_rs; print(sp_matmul_rs.kernel_info())"

x86-64: FMA/AVX2 via runtime dispatch

Baseline x86-64 builds (including the PyPI wheels) cannot assume FMA/AVX2 at compile time, so the chunked kernels ship AVX2+FMA clones selected by runtime CPU detection — worth ~17–18 % on real string-matching workloads, and available on effectively every x86-64 CPU since 2013 (Haswell/Zen). No configuration needed; check which path is active with sp_matmul_rs.kernel_info()['runtime_simd'] ("avx2+fma", "baseline", or "compile-time"), and set SP_MATMUL_RS_FORCE_BASELINE=1 to disable the clones for A/B measurements.

Building from source with RUSTFLAGS="-C target-cpu=native" still applies the full native feature set (including AVX-512 where present — the runtime dispatch tier is AVX2+FMA only) to the whole crate and compiles the dispatch machinery away; on AVX2-class hardware it measures the same as the runtime-dispatched wheel. See bench/results_x86_i7-6500U.md for x86-64 numbers and the chunk_cols / SP_MATMUL_RS_CHUNK_COLS tuning knob.

Benchmarks

bench/bench_rust_vs_cpp_scipy.py is a three-way comparison against the upstream C++ extension (sparse_dot_topn) and scipy.sparse on a word-level TF-IDF matrix over the EDGAR company-name corpus (Kaggle: dattapiy/sec-edgar-companies-list). Numbers below were measured on an Apple M5 Pro (10 performance cores), 48 GB, macOS 26.4, with both libraries built with parallelism enabled (sparse_dot_topn against Homebrew libomp, sp_matmul_rs with rayon). Times are per-call min across timed runs (one untimed warm-up first).

Full EDGAR corpus — A @ A.T (663 000 × 193 190)

The workload that string_grouper actually runs in production: every company name matched against every other. Scipy and the no-top-n baseline are omitted because the dense result is too large to materialise on a 48 GB machine. repeats = 3.

Benchmark top_n n_threads C++ (s) Rust (s) Rust vs C++
sp_matmul_topn 10 1 132.537 68.585 1.9x
sp_matmul_topn 10 8 28.143 12.903 2.2x
sp_matmul_topn 10 10 28.429 11.567 2.5x
sp_matmul_topn 20 1 131.878 70.350 1.9x
sp_matmul_topn 20 8 27.505 13.154 2.1x
sp_matmul_topn 20 10 27.524 11.415 2.4x

At workload-realistic scale, sp_matmul_rs consistently runs in 40–50 % of the time of the C++ extension and continues to scale past 8 threads where the OpenMP build plateaus. The L1/L2 cache-blocking driver does the heavy lifting — at 663 000 rows the per-row working set no longer fits in cache, and the chunked layout keeps the dense accumulator L1-resident.

Sampled shape — 20 000 × 193 190 × 20 000

The same shape as the upstream C++ bench README, included for direct comparability. repeats = 5.

Benchmark top_n n_threads Scipy (s) C++ (s) Rust (s) Rust vs Scipy Rust vs C++
sp_matmul_topn 10 1 0.110 0.102 0.083 1.3x 1.2x
sp_matmul_topn 10 8 0.107 0.014 0.015 6.9x -1.1x
sp_matmul_topn 30 1 0.108 0.124 0.119 -1.1x 1.0x
sp_matmul_topn 30 8 0.109 0.017 0.021 5.3x -1.2x
sp_matmul_topn 100 8 0.107 0.031 0.041 2.6x -1.3x
sp_matmul_topn 1000 8 0.107 0.112 0.180 -1.7x -1.6x

At this smaller shape the per-row working set still fits in cache, so the C++ extension's flat layout is competitive (Rust trails by ~1.2–1.6× at large top_n). The sampled bench is included for direct comparability with the upstream C++ project's published table — the full-corpus numbers above are the more relevant indicator for real string-matching workloads.

The full {top_n, n_threads} grid (including the plain sp_matmul baseline and Scipy timings) lives in bench/README.md.

License

Apache-2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sp_matmul_rs-0.2.0.tar.gz (112.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sp_matmul_rs-0.2.0-cp313-cp313-win_amd64.whl (450.3 kB view details)

Uploaded CPython 3.13Windows x86-64

sp_matmul_rs-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (826.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (617.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (591.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (558.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sp_matmul_rs-0.2.0-cp312-cp312-win_amd64.whl (451.0 kB view details)

Uploaded CPython 3.12Windows x86-64

sp_matmul_rs-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (826.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (617.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (591.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (559.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sp_matmul_rs-0.2.0-cp311-cp311-win_amd64.whl (451.5 kB view details)

Uploaded CPython 3.11Windows x86-64

sp_matmul_rs-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (825.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (617.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (591.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (561.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sp_matmul_rs-0.2.0-cp310-cp310-win_amd64.whl (451.2 kB view details)

Uploaded CPython 3.10Windows x86-64

sp_matmul_rs-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (825.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (616.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (590.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (561.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sp_matmul_rs-0.2.0-cp39-cp39-win_amd64.whl (453.1 kB view details)

Uploaded CPython 3.9Windows x86-64

sp_matmul_rs-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl (826.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (619.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (592.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (562.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file sp_matmul_rs-0.2.0.tar.gz.

File metadata

  • Download URL: sp_matmul_rs-0.2.0.tar.gz
  • Upload date:
  • Size: 112.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sp_matmul_rs-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2b87333ad92e8889de66dbbcb8ffbf35232c297432394abd2532853b973e91f9
MD5 6130e72d43645cf758de1d783a17f525
BLAKE2b-256 9e6570c6c599eba29e1a2203592887ad9fc35c8152ac69896ae3e0ebaa7efde3

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0.tar.gz:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fb07435832c73feaecc412e9f3999de129aab252e2dbc5c422d4b448d38f0532
MD5 b43524a9ccade79021611e1831fdefaa
BLAKE2b-256 34af69aae9fd49b044a9c213f4e36d251d7f863ae42d587ca286977d14c93fdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ec7d247cc295aeaf0b232a0ed8c915e765e3ffc12b33a897442fc9baffd5bd51
MD5 75cd41f8a7c3c0edd3d8fb8701598c71
BLAKE2b-256 406bb5729e55b0fbd13a9da6fa923bb96020c1f2752ab10beb58c7178f157f52

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4944a0e4f3155568c834493dae830a3bb93050a1b27548885940e92a1063919e
MD5 b9b7261c5dd4bbc39136e820f284ce4a
BLAKE2b-256 8227047b118e4c689d159af2fd30479402e3e7b5b07d74e4e2017a508d6dd668

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d0e5034988f5e72fa20f5f034313a6e5b53c76a75db03a0266f0e9a31889aa8
MD5 ce67b73e8052b84d641e304164218af7
BLAKE2b-256 3d450e7e1f018a56060ac31443e0659bdffdf6f92e63f05cd5fb1c35ca3e4497

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d219f6f4f407ab635a821e95b8eeeab02c14a2761fa371cc609922c34fa8c5c5
MD5 f929ea572b91f06c77a731423eb97af9
BLAKE2b-256 d4c4043ef575c713c4946c8a2a38b6cc501f441b2528ce85cd01089711035fe2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 55b836336a9483c592d0da20fd8fcaeb903620c9489fa5890f87622254499f7f
MD5 c90da537dc9c1bcab7811c4318f6b391
BLAKE2b-256 dcde57b0bb4329e9bb0932fcd9b40ab6ce3e4bd77239e05454232c29705f657b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 33701f1777fad12f63aa723829b73fde17b6364dc6e5f2704e081de69560ffa7
MD5 53c22cf6f77a351e932d26eeb38da229
BLAKE2b-256 6432d77a16e93959f174b7d3095db3f16bf81a7064ffd7593c12f90a8739bb81

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 672ed5bd1c4f9e9f7ec32e7487ac41cc2fcc55ed1b96c5045808feb5645cc307
MD5 7e59ff627fd635c094d69072c707dc0c
BLAKE2b-256 1a99d8bdeda789907b8ff67e9bdcb154b5c9d0499a81c7da7c16c6ac795c5f80

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1eb30f42ed4bbc89590071f1eb1cd03bf68954dcd9db0bae98fc0d6d15eec00c
MD5 ac876851583513c98e035322bfdd27b0
BLAKE2b-256 2fa5cd2a9dfe248fb2a036da0a58162dd3d6be60c8eb755afd97d749b056dc25

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb1eaca2da74a0e1a51845ef347e696e373a86c4b5911b84a382b6247c69a467
MD5 f046cb22e9fa844668343c9484020965
BLAKE2b-256 f63002c81242c52698def979cb3eb70d2eba6f9366801af150a887cfbcb9190b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 33b3121283930cdef821bc42904c5764ec8b0a8ac01ffdd735312268b6a06a00
MD5 731d3d068d607970e4986972338e6d07
BLAKE2b-256 c721ab61c1d8c5cf245e5bf8e2a21c9973155117ad3cffc2d10c2f50dec7e8e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2fc69ef93e901b87054f7fb70d5d220b783e665aa184cfda3f5b1452e4d85f8f
MD5 f77c145c30034ad8e2767105bee44a94
BLAKE2b-256 9a851512c9b1175059e9c51415cbaa291089cab62c83e24b2cce89e373623c4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84abcc6c6ff6f6a30b9591f96d4b33648a8c7040dee8a6dd341504773fff2d95
MD5 dd3abbca0981a5fb9288b8caf33c0e88
BLAKE2b-256 84e970b76cba3a1f912147f52d24429445fdbde090b37cd2069bed69e4f623ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 218a95f7eeb874f55a1c4e159ef3cc23e971b087711a9ae27d59d638261e3cbd
MD5 354a82d062228c87e922e375aa8a0b56
BLAKE2b-256 dd96f08e80930b4f6147568fbaea0485823a8f24eba1f956d44387886b8d87f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3acad1b310678e7f2525484ad3b58d9c04d962e46b60ae036459d1745b5c1f18
MD5 f7a90ee56706fd26cd403e1106c7f43b
BLAKE2b-256 7108d2512ac7bd3b2ea10b1ba672bcf0142cf2d48ba152257bf785ab434cd7dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cdb4e218a152a5e1c846a77434a8872d265664af948e217835aaf1016e288d29
MD5 0e436d8ce315609f2f9bb6743b6d1e69
BLAKE2b-256 1763503caf5bb8dd98668f39c6d5149d4fec86644e2e686a1e651615d1e6116d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5eb4d3d7ccc96fbd577e2698733de0a35b53fe17754011d3bcaede3e001b40a6
MD5 43a23907369c3be85ef2e02df803a12c
BLAKE2b-256 0c0763cbb3515290a869961fe6789a5c15671f92905fa0e722f07ee163c3a979

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4703349685c3e3763001aea2d6e64ec9a66709e5070c40c11696a915969316ba
MD5 1bd5d903442f5be7834f9ed0fdd1c14f
BLAKE2b-256 ceae74cf46a6f4c425a390de4ba5c8f342dbdeff2af28e75b633359deb58b9d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b624525056b01a3511a3964ddf4ec201385faa74926da222689bfde4e056cead
MD5 3ec88c9d94232ce927fd96b5efd240fa
BLAKE2b-256 36de8368e6bdbec75e2336a6de9b6601f803003c5dd0d7d702a70a8472d119d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f23648ae344dc160c66c5cfbc0589dc2052fa087392c1c9aa9661a1fe503e351
MD5 9f3ec2e61b2270137e1a99e65e105665
BLAKE2b-256 34929c92582cf41ec6ca655bd3c15485b7d1d2eff6dd7c236119716b342989a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: sp_matmul_rs-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 453.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sp_matmul_rs-0.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bf3a913855748d2afbeec6166d4d5135c232c7baecd9e4ebaf019f94e8e36cc1
MD5 2de842ca19b78c3e6fe5890f94aa0aab
BLAKE2b-256 4ea55379de45d84b5219c773b0caef1c00eb50b877c3db2b656e92705d9a3f75

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp39-cp39-win_amd64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ebddc1c5ee04b709d8814c1224b23cbdd38ae6805842e242dcf9a4a22efe43d2
MD5 5b050be395a215da0c107c74244a6a35
BLAKE2b-256 e673505e9353cccd651249719c6c69f41e956e7f9a270426966f50d62e18c264

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22f6b25d9d7452fa581ad28d428828991e8cdb32068bb3b5c90457fda9632cac
MD5 6c322613a364c68a13267f2ea0f493d3
BLAKE2b-256 72fcc42b4f970f531fd77ecddca5ec163c34293f8ee5712d5defe89162f9ceb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 77e0be5cdb2808bc4bf5ea558a29193a53f7924963e8a61f7246a3029f412c5b
MD5 8b27c2af71e1ebd1141048ff09b3ea90
BLAKE2b-256 21de38ab739b15574d374ba8a4c4f90bdb0f8c5fc3b2cac71995bcfa0f135857

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sp_matmul_rs-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33b15672df7084341bb57640f26514556846bd1ab5382628d046ddd868c45bee
MD5 bfcb6e0678257e8f65af08c10509a5ac
BLAKE2b-256 f7c3199ed0b78a796cdc15f4fc6c946a87697fb12df24509f179ca34401ca834

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on Bergvca/sp_matmul_rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page