Skip to content

Releases: hgb-bin-proteomics/CandidateVectorSearch

Sparse Matrix Algebra DLLs

08 Feb 11:36
57fc3b4
Compare
Choose a tag to compare

Implements the following methods across two DLLs:

  • VectorSearch.dll (v1.7.2):
    • findTopCandidates: sparse matrix - sparse vector multiplication [f32] using Eigen.
    • findTopCandidatesInt: sparse matrix - sparse vector multiplication [i32] using Eigen.
    • findTopCandidates2: sparse matrix - dense vector multiplication [f32] using Eigen.
    • findTopCandidates2Int: sparse matrix - dense vector multiplication [i32] using Eigen.
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication [f32] using Eigen.
    • findTopCandidatesBatchedInt: sparse matrix - sparse matrix multiplication [i32] using Eigen.
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication [f32] using Eigen.
    • findTopCandidatesBatched2Int: sparse matrix - dense matrix multiplication [i32] using Eigen.
  • VectorSearchCUDA.dll (v1.4.8):
    • findTopCandidatesCuda: sparse matrix - dense vector multiplication [f32] using CUDA (SpMV).
    • findTopCandidatesCudaBatched: sparse matrix - sparse matrix multiplication [f32] using CUDA (SpGEMM).
    • findTopCandidatesCudaBatched2: sparse matrix - dense matrix multiplication [f32] using CUDA (SpMM).

VectorSearch.dll implements functions that run on the CPU, while VectorSearchCUDA.dll implements functions that run on a NVIDIA GPU using CUDA (version 12.2.0_536.25_windows).

Includes changes introduced with #31 as discussed in #30.

DLLs are compiled for Windows (10+, x64) and (partially - only CPU-based search) for Ubuntu (22.04, x64) and macOS (14.4, arm64), for other operating systems/architectures please compile the source code yourself!

What's Changed

  • Implement i32 Sparse Vector Multiplication & i32 Sparse Matrix Multiplication by @michabirklbauer in #31

Full Changelog: DLL_release4...DLL_release5

Sparse Matrix Algebra DLLs

01 Feb 15:28
7891352
Compare
Choose a tag to compare

Implements the following methods across two DLLs:

  • VectorSearch.dll (v1.6.1):
    • findTopCandidates: sparse matrix - sparse vector multiplication [f32] using Eigen.
    • findTopCandidates2: sparse matrix - dense vector multiplication [f32] using Eigen.
    • findTopCandidates2Int: sparse matrix - dense vector multiplication [i32] using Eigen.
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication [f32] using Eigen.
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication [f32] using Eigen.
    • findTopCandidatesBatched2Int: sparse matrix - dense matrix multiplication [i32] using Eigen.
  • VectorSearchCUDA.dll (v1.4.8):
    • findTopCandidatesCuda: sparse matrix - dense vector multiplication [f32] using CUDA (SpMV).
    • findTopCandidatesCudaBatched: sparse matrix - sparse matrix multiplication [f32] using CUDA (SpGEMM).
    • findTopCandidatesCudaBatched2: sparse matrix - dense matrix multiplication [f32] using CUDA (SpMM).

VectorSearch.dll implements functions that run on the CPU, while VectorSearchCUDA.dll implements functions that run on a NVIDIA GPU using CUDA (version 12.2.0_536.25_windows).

Includes changes introduced with #29 as discussed in #17.

DLLs are compiled for Windows (10+, x64), for other operating systems/architectures please compile the source code yourself!

What's Changed

Full Changelog: DLL_release3...DLL_release4

Sparse Matrix Algebra DLLs

30 Oct 12:57
7bfe25a
Compare
Choose a tag to compare

Implements the following methods across two DLLs:

  • VectorSearch.dll (v1.5.1):
    • findTopCandidates: sparse matrix - sparse vector multiplication using Eigen
    • findTopCandidate2s: sparse matrix - dense vector multiplication using Eigen
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using Eigen
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication using Eigen
  • VectorSearchCUDA.dll (v1.4.7):
    • findTopCandidates: sparse matrix - dense vector multiplication using CUDA (SpMV)
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using CUDA (SpGEMM)
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication using CUDA (SpMM)

Includes changes introduced with #20 as discussed in #19.

Sparse Matrix Algebra DLLs

06 Sep 13:41
416a3fe
Compare
Choose a tag to compare

Implements the following methods across two DLLs:

  • VectorSearch.dll (v1.5.0):
    • findTopCandidates: sparse matrix - sparse vector multiplication using Eigen
    • findTopCandidate2s: sparse matrix - dense vector multiplication using Eigen
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using Eigen
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication using Eigen
  • VectorSearchCUDA.dll (v1.4.6):
    • findTopCandidates: sparse matrix - dense vector multiplication using CUDA (SpMV)
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using CUDA (SpGEMM)
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication using CUDA (SpMM)

Includes fixes introduced with #13 as discussed in #12.

Sparse Matrix Algebra DLLs

27 Jul 15:02
ab277c1
Compare
Choose a tag to compare

Implements the following methods across two DLLs:

  • VectorSearch.dll (v1.4.3):
    • findTopCandidates: sparse matrix - sparse vector multiplication using Eigen
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using Eigen
  • VectorSearchCUDA.dll (v1.4.6):
    • findTopCandidates: sparse matrix - dense vector multiplication using CUDA (SpMV)
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using CUDA (SpGEMM)
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication using CUDA (SpMM)

Includes fixes introduced with #11.

Sparse Matrix Algebra DLLs

25 Jul 14:39
7529cb8
Compare
Choose a tag to compare

Implements the following methods across two DLLs:

  • VectorSearch.dll (v1.4.3):
    • findTopCandidates: sparse matrix - sparse vector multiplication using Eigen
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using Eigen
  • VectorSearchCUDA.dll (v1.4.5):
    • findTopCandidates: sparse matrix - dense vector multiplication using CUDA (SpMV)
    • findTopCandidatesBatched: sparse matrix - sparse matrix multiplication using CUDA (SpGEMM)
    • findTopCandidatesBatched2: sparse matrix - dense matrix multiplication using CUDA (SpMM)

prototype with CUDA SpMM

25 Jul 14:30
d76321b
Compare
Choose a tag to compare
Pre-release

Functional DLLs for SpMV/SPMM on the CPU using Eigen and SpMV/SpMM/SpGEMM on the GPU using CUDA.

prototype with CUDA SpGEMM

24 Jul 15:09
645a6a1
Compare
Choose a tag to compare
Pre-release

Functional DLLs for SpMV/SPMM on the CPU using Eigen and SpMV/SpGEMM on the GPU using CUDA.

prototype with functional DLLs

14 Jul 14:39
611df23
Compare
Choose a tag to compare
Pre-release

Functional DLLs for SpMV on the CPU using Eigen and GPU using CUDA.