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.1.tar.gz (116.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.1-cp313-cp313-win_amd64.whl (467.9 kB view details)

Uploaded CPython 3.13Windows x86-64

sp_matmul_rs-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl (836.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (599.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (561.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sp_matmul_rs-0.2.1-cp312-cp312-win_amd64.whl (468.6 kB view details)

Uploaded CPython 3.12Windows x86-64

sp_matmul_rs-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl (836.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (599.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (562.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sp_matmul_rs-0.2.1-cp311-cp311-win_amd64.whl (466.5 kB view details)

Uploaded CPython 3.11Windows x86-64

sp_matmul_rs-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl (835.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (599.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (563.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sp_matmul_rs-0.2.1-cp310-cp310-win_amd64.whl (466.5 kB view details)

Uploaded CPython 3.10Windows x86-64

sp_matmul_rs-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl (835.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (599.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (563.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sp_matmul_rs-0.2.1-cp39-cp39-win_amd64.whl (468.8 kB view details)

Uploaded CPython 3.9Windows x86-64

sp_matmul_rs-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl (838.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

sp_matmul_rs-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

sp_matmul_rs-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (601.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

sp_matmul_rs-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (565.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: sp_matmul_rs-0.2.1.tar.gz
  • Upload date:
  • Size: 116.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.1.tar.gz
Algorithm Hash digest
SHA256 d3654a5abcadd33a6a30e5a953e8495abf45b87f27049a81458fc9fd21df2e8e
MD5 abb6df7a45ee9d7f99438291239e5345
BLAKE2b-256 d5035d89223cbdf0510e16ed3fe904e768609b16a566dd7ae370f2b436b0c6f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1.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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0804d173494397c10970b80a2a4a2c9126c303bd672d571da9c6ee0d939ebbe5
MD5 18ca4ace91dddd9869855853f9c92a9a
BLAKE2b-256 272abfd70d09016bfcbae68594f13d485f91b58d9add796e5acea06a3d32ad8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7e5c9e64ddab1c97bbbe27c07917a048264f8e25c3f076a532df4fcf8deeb395
MD5 6557dc2b852822f86d65a43eef02740e
BLAKE2b-256 8e9072246d74b750cab2afb9709590883b7b6e1cdf42fe1a51c0a5974c33f3e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07dd62d68fcbe2238938cf13edd9bbf8220279fce67c1b429f525a6d21042685
MD5 9c404d5a13931f6e30aab7e17507ff1f
BLAKE2b-256 6f060df3b14a97b9f0f245f07fe2112994e0cdcba112c45da4bbed258283dbf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60af7c166c4981ce9292c740f7b901b88b20e1ee56a7c9c12c402a47b3a50df4
MD5 0ed6622e56bc4d560e953f1fec931aef
BLAKE2b-256 80b6a13125a7b3bc66038b7b2f097493b46148e74c24df0c74262d6ac6dbcd30

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83d632c6cd30a9bd7468d584fa048abbf75a0858644600a5a17a6701ef0233b9
MD5 fdd992d229335b782fb53e23d12d8cdd
BLAKE2b-256 2cac5ccb05da81ccfab6c87d239001fdff3d532f5b71dba3b3650df52344206a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 723043a2b6950670878afd6ac090d66094fed2dcb4783a1e119b3e7f111e2a02
MD5 882a24f82064ab567362028f7a45de68
BLAKE2b-256 7044a221a3ebfdb6d370303df3bbda88ebff05107c4670df4ca7c7e56aa4ff4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4b362e98823588e38044e3df37b2c9d0b7c525825d7cdbf982474087ecea00cf
MD5 3dda4902ae7039506cbee3771dae9523
BLAKE2b-256 3efeaf3fb56b63e02fa80f4f22efbb759d81e3e13b8ed4ce7fdeaf668c8958cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aed6dd1633152e23319e2c0972c28e667a07aeef3c076c1d509d5984afceb8a5
MD5 10de475f96ddaa7243e817a9a0ecd1df
BLAKE2b-256 cb56ace7ec2be21681fe96b4d66ef37cb5bf820ec7d0a74c130ee5d50848db8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 54fd573a3309be30690c025b9ed38051a3f7f78b59760d041ce2921876702f49
MD5 211fa0dec6a253a9e0dc6274f07a7354
BLAKE2b-256 ad2b1dcc72e31d7cf7f1075f5ec2e0d94af7c67872b49d12caf120f5c921075e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d18652edb94525ffb2ca24968912db9a83b71acba3f99f0be3a40d4ca996cb14
MD5 85064450058643aa6fa1bd79da0b3c79
BLAKE2b-256 9abb601411dcffed2f1d7ce4bd9a55e6d66fc1b20c78c31c56b887d9966fa3fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6bdf156a75a950947a60b990ff04f9dcdbe063362f8fe3b572154f70c67a0d26
MD5 ddb53731d7344dda218c13bca51f490a
BLAKE2b-256 5ea697274a8f0c62e0ea3d10b6f509c67603bd953fbd51752f89f9441a9e0978

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9dd0c558f4336672e7adfe38affd6d93b305b4fbdf47a5231e110ed7befc40a8
MD5 94f1a73e1ab45cb03e69bf6021cdb294
BLAKE2b-256 bc66c87dd63e867da3fd6b32bef2c84876bbb442b11115e1dd31ebe6c7f3ef32

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6051237a461d2618ae3553bd00450c42c2af0677098399a4b674a903c69a5b42
MD5 a32747b1662ffc337d31df70eda031d0
BLAKE2b-256 51c8686aa07eb9858a361896a02b191f38f91d1db66f729d6345534f575f6f5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 18f98734832579edc92564416275af2f907546a9cb12a21ae352fa7d52e2744a
MD5 5e64ce4a1e1ea6470fe7e3db5fe9fcbb
BLAKE2b-256 46fdead7ed4f893d9eb8ebf44fca73c8476655415f5b5bc5644442c7e9824919

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a750744377e9b0f7021498d52b3fde793ae97e90c857775aa607f2fed2ec0c5d
MD5 c3a5b25fe8c8dd2c29bebd5283c88d51
BLAKE2b-256 387a25006a05b9ae78557798be28a2c6212e2cada5eb57a9fc245326ec7086fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8e1b6d190a04a010cfb8817f3cddad4a9c3243e17f8f816075f34968232d3e6b
MD5 ae457feff50b825191492ed437610e95
BLAKE2b-256 a0ea1f5e27e7ba08d99df9e9fd610ccf16ae0c9206e154612cf0d512dbe47ba2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0296d07ee46e842ab12420f3625440977a613298094496f5ebd4bc0691f633bc
MD5 fa5a95c58064f89c2296c3cedf2e0532
BLAKE2b-256 720cfbe1111d46c8dd3e1860c66d8bb2d59b8809e642fad62e0dbc0671edc806

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 107df351fdbe5fc659053a80bbe1f04e9197d16ab235b8b00c2b01094fde0232
MD5 528f2278dc51d87a1d3828738160b420
BLAKE2b-256 a1e455a380e5a7fe76e1345df09b83655835d6dab78905009e228f3969e0eaea

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50939db8dc5ebfa04ff2d2c6c7e4cee19e83b60d114e0e9a6a77e5ddefea1d6f
MD5 aaf43d3735c6e1b48acd9216b7fef329
BLAKE2b-256 660e19ba82a074a50fcb9e1e9a52b0565ad32b299045d5609f88a5b6d93ece87

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3570632d2a8b03e176555b9fdd7f2e3db80015101ce07d27293d08cddbf2f7b0
MD5 940ff339d5a0b50ee4212ee42ecea456
BLAKE2b-256 3bcce35d6523228430abf737edb0b9535e2a9294b0f5145455558e27e1710f03

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: sp_matmul_rs-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 468.8 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cbff374a3e4070ca5a906f43e37e669cbfef07344874af8697f1f193b7df0279
MD5 0dca12964e863ecb519fd7746df74a81
BLAKE2b-256 36ac5da46672bc252076d07375c46df5c3cecac03e4c1c3f3f8943b4c771a32b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aacbd33bc538e8cb8eaf764fd89d8eb4d169880dfe336c7c67e679cf81b71c6f
MD5 cae8766e044c0376b332f46e460ef8b0
BLAKE2b-256 785719fdf8da84c999160a692237b6ae2fc2395cc72ea8e14df0ff9882628768

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b05a114f6e04761f0aaaf2ae1e5a39da50fd5b081b9f61bc08b53773351730e0
MD5 bf4afbe2426304b8c96ec3a4da8bdcb6
BLAKE2b-256 4c9666dc7592b95da6e10b263fac2c1f17c1643e9b3d727411afe1a73dcab736

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c27e2ef01d121156119f9216a07b59d6c877721b61b342bcd78561a0daaebff7
MD5 64624394bad5c59ef7e2d4842b190c22
BLAKE2b-256 0ac551f0c63e73aea3f0fc2927f5dd9bb774675cb29a2e2115ceda7c1ff0f803

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sp_matmul_rs-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ae18c777ed0107d039a4e4c2f275b3262d17d93703be35ac41022fae16a4507
MD5 e4c54f1e7c19c9ce1a5305ab77f1fbb0
BLAKE2b-256 37ab7465191148d357da16ce8f93735d1f85b789a22b219186f6924a6794bceb

See more details on using hashes here.

Provenance

The following attestation bundles were made for sp_matmul_rs-0.2.1-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