Skip to main content

Module ops

Module ops 

Source
Expand description

Sparse matrix operations.

This module provides GPU-accelerated sparse matrix operations:

  • spmv – Sparse matrix-vector multiplication (y = alphaAx + beta*y)
  • spmm – Sparse matrix-dense matrix multiplication (C = alphaAB + beta*C)
  • spgemm – Sparse matrix-sparse matrix multiplication (C = A*B)
  • spgemm_symbolic – Gustavson symbolic SpGEMM: the sparsity pattern of C = A*B (host CSR, values not computed)
  • sptrsv – Sparse triangular solve (Lx = b or Ux = b)
  • sddmm – Sampled Dense-Dense Matrix Multiply
  • krylov – Krylov subspace methods (Lanczos & Arnoldi iteration)
  • matrix_powers – Sparse matrix powers (A^k) and polynomial evaluation

Re-exports§

pub use auto_spmv::RecommendedFormat;
pub use auto_spmv::SpMatFormat;
pub use auto_spmv::analyze_sparsity;
pub use auto_spmv::auto_spmv;
pub use auto_spmv::recommend_format;
pub use auto_spmv::select_format;
pub use batched::BatchScheduler;
pub use batched::BatchedSpGEMM;
pub use batched::BatchedSpMV;
pub use batched::BatchedSpMVPlan;
pub use batched::BatchedTriSolve;
pub use batched::Strategy;
pub use batched::UniformBatchedSpMV;
pub use batched::batched_spmv_cpu;
pub use batched::generate_batched_spmv_ptx;
pub use batched::mixed_precision_spmv_cpu;
pub use krylov::ArnoldiConfig;
pub use krylov::ArnoldiPlan;
pub use krylov::ArnoldiResult;
pub use krylov::EigenTarget;
pub use krylov::LanczosConfig;
pub use krylov::LanczosPlan;
pub use krylov::LanczosResult;
pub use matrix_powers::MatrixPowerConfig;
pub use matrix_powers::MatrixPowerResult;
pub use matrix_powers::estimate_power_nnz;
pub use matrix_powers::sparse_identity;
pub use matrix_powers::sparse_matrix_polynomial;
pub use matrix_powers::sparse_matrix_power;
pub use mixed_precision_spmv::ComputePrecision;
pub use mixed_precision_spmv::MixedPrecisionConfig;
pub use mixed_precision_spmv::MixedPrecisionPlan;
pub use mixed_precision_spmv::MixedPrecisionStats;
pub use mixed_precision_spmv::MixedSpMVAlgo;
pub use mixed_precision_spmv::StoragePrecision;
pub use mixed_precision_spmv::estimate_precision_loss;
pub use mixed_precision_spmv::generate_mixed_scalar_spmv_ptx;
pub use mixed_precision_spmv::generate_mixed_vector_spmv_ptx;
pub use mixed_precision_spmv::generate_packed_vector_spmv_ptx;
pub use mixed_precision_spmv::plan_mixed_precision_spmv;
pub use mixed_precision_spmv::validate_mixed_precision_config;
pub use sddmm::sddmm;
pub use spgemm::spgemm_numeric;
pub use spgemm::spgemm_symbolic;
pub use spgemm_estimate::EstimationMethod;
pub use spgemm_estimate::SpGEMMEstimate;
pub use spgemm_estimate::auto_estimate_spgemm;
pub use spgemm_estimate::count_nnz_exact;
pub use spgemm_estimate::estimate_nnz_sampling;
pub use spgemm_estimate::estimate_nnz_upper_bound;
pub use spgemm_estimate::estimate_spgemm_memory;
pub use spgemm_merge::spgemm_merge;
pub use spgemm_symbolic::SymbolicPattern;
pub use spgemm_symbolic::spgemm_symbolic_pattern;
pub use spmm::spmm;
pub use spmv::SpMVAlgo;
pub use spmv::spmv;
pub use spmv_bsr::spmv_bsr;
pub use spmv_csr5::csr5_spmv;
pub use spmv_ell::spmv_ell;
pub use sptrsv::sptrsv;
pub use tensor::EdgeFeatures;
pub use tensor::GnnSparseConfig;
pub use tensor::MessagePassingOp;
pub use tensor::add_self_loops;
pub use tensor::compute_degree_matrix;
pub use tensor::gather;
pub use tensor::scatter_reduce;
pub use tensor::sparse_attention_message;
pub use tensor::sparse_message_passing;
pub use tensor::sparse_row_softmax;
pub use tensor::symmetric_normalize;

Modules§

auto_spmv
Heuristic-based format selection and auto-dispatching SpMV.
batched
Batched sparse operations.
krylov
Krylov subspace methods for sparse eigenvalue computation.
matrix_powers
Sparse matrix powers and polynomial evaluation.
mixed_precision_spmv
Mixed-precision sparse matrix-vector multiplication (SpMV).
sddmm
Sampled Dense-Dense Matrix Multiply (SDDMM).
spgemm
Sparse matrix-sparse matrix multiplication (SpGEMM).
spgemm_estimate
SpGEMM memory estimation for C = A * B.
spgemm_merge
Merge-based SpGEMM: C = A * B using merge-path load balancing.
spgemm_symbolic
Symbolic SpGEMM (Gustavson) – the sparsity pattern of C = A * B.
spmm
Sparse matrix-dense matrix multiplication (SpMM).
spmv
Sparse matrix-vector multiplication (SpMV).
spmv_bsr
BSR SpMV kernel.
spmv_csr5
CSR5 SpMV kernel.
spmv_ell
ELL-optimized SpMV kernel.
sptrsv
Sparse triangular solve (SpTRSV).
tensor
Sparse tensor operations for GNN (Graph Neural Network) workloads.