gf2_sparse_sparse_matrix_multiply#

cuquantum.bindings.custabilizer.gf2_sparse_sparse_matrix_multiply(
intptr_t handle,
uint64_t m,
uint64_t n,
uint64_t k,
intptr_t a_column_indices,
intptr_t a_row_offsets,
uint64_t b_nnz,
intptr_t b_column_indices,
intptr_t b_row_offsets,
int32_t beta,
intptr_t c,
intptr_t stream,
)[source]#

compute GF(2) sparse-sparse matrix multiplication c = A @ B.

Parameters:
  • handle (intptr_t) – Library handle.

  • m (uint64_t) – Number of rows of A and c.

  • n (uint64_t) – Number of columns of B and c (must be a multiple of 32).

  • k (uint64_t) – Number of columns of A and rows of B.

  • a_column_indices (intptr_t) – cSR column indices of A (device-accessible pointer).

  • a_row_offsets (intptr_t) – cSR row offsets of A (device-accessible pointer), length m+1.

  • b_nnz (uint64_t) – Number of non-zeros in B.

  • b_column_indices (intptr_t) – cSR column indices of B (device-accessible pointer), length b_nnz. column indices within each row must be sorted in ascending order.

  • b_row_offsets (intptr_t) – cSR row offsets of B (device-accessible pointer), length k+1.

  • beta (int32_t) – 0 for assign (c not read), 1 for XOR-accumulate.

  • c (intptr_t) – Bit-packed dense output matrix c (device-accessible pointer).

  • stream (intptr_t) – cUDA stream.