Recent Releases of https://github.com/bacpop/pp-sketchlib
https://github.com/bacpop/pp-sketchlib - Sketchlib v2.1.3
- Replace robinhood hashmap (no longer maintained) with unordereddense
- Add local mode for testing/customising compilation
- Fix efficiency of
query sparsemodes
What's Changed
- Improve efficiency of sparse queries by @johnlees in https://github.com/bacpop/pp-sketchlib/pull/94
Full Changelog: https://github.com/bacpop/pp-sketchlib/compare/v2.1.2...v2.1.3
- C++
Published by johnlees over 2 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v2.1.2
- Fix a previously undetected segfault when multithreaded
- Hopefully(!) fix for new clang compilers
What's Changed
- Fix for adding random sequence correction for strand-specific k-mers by @nickjcroucher in https://github.com/bacpop/pp-sketchlib/pull/90
- Attempt to fix for clang 15 by @johnlees in https://github.com/bacpop/pp-sketchlib/pull/93
Full Changelog: https://github.com/bacpop/pp-sketchlib/compare/v2.1.1...v2.1.2
- C++
Published by johnlees over 2 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v2.1.1
Small improvement to poor regressions, to fix a CI failure in PopPUNK
What's Changed
- Fix buildkite by @johnlees in https://github.com/bacpop/pp-sketchlib/pull/87
- More robust regression with zero distances by @johnlees in https://github.com/bacpop/pp-sketchlib/pull/88
Full Changelog: https://github.com/bacpop/pp-sketchlib/compare/v2.1.0...v2.1.1
- C++
Published by johnlees over 3 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v2.1.0
- Remove armadillo from the code entirely in favour of Eigen
- Actually link BLAS (used in the regression), LAPACK not actually needed
- Use a new regression solver, see 'Normal equations' under https://eigen.tuxfamily.org/dox/group__LeastSquares.html
- Solve issues with
boolin highfive code, now uint8_t explicitly used - Use KMeansRex, as the kmeans in armadillo is now removed
nvcc now sees the eigen code and throws up a few warnings, but this doesn't seem to be causing as many problems as it used to
What's Changed
- BLAS linking; CI fix; better message for deprecated function by @johnlees in https://github.com/bacpop/pp-sketchlib/pull/84
Full Changelog: https://github.com/bacpop/pp-sketchlib/compare/v2.0.1...v2.1.0
- C++
Published by johnlees over 3 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v2.0.1
Minor update which should not change/break the API, adds a few small new features. #82 simplifies and parallelises sparsification by a threshold (and removes kNN).
What's Changed
- Change web sketch output from uint64 to hex by @muppi1993 in https://github.com/bacpop/pp-sketchlib/pull/74
- Update README.md by @danrlu in https://github.com/bacpop/pp-sketchlib/pull/75
- Add reads attribute to databases by @johnlees in https://github.com/bacpop/pp-sketchlib/pull/77
- Lineage model fitting - sketchlib changes by @nickjcroucher in https://github.com/bacpop/pp-sketchlib/pull/82
New Contributors
- @muppi1993 made their first contribution in https://github.com/bacpop/pp-sketchlib/pull/74
- @danrlu made their first contribution in https://github.com/bacpop/pp-sketchlib/pull/75
Full Changelog: https://github.com/bacpop/pp-sketchlib/compare/v2.0.0...v2.0.1
- C++
Published by johnlees almost 4 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v2.0.0
This is a new major version due to overhaul of the CLI.
New features: - CLI is now written with docopt, and should be more straightforward to use (#72). - New self sparse query, which works with CUDA too (#67). Used in mandrake.
Bug fixes: - Sparsification functions fixed and added to tests.
Other: - Enable pip install and pushing to pypi (#70) - Adding docker build and test on buildkite (#70)
- C++
Published by johnlees about 4 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib 1.7.4
New features: - Sketching kernel overhaul: should be faster, and supports read datasets larger than the device memory size (#63 #64) - Increase the size of the countmin table on GPUs to 2^30 columns, takes up about 30% of a 3090's memory (#64) - Better progress meter for read sketching (#64) - Save whether the DB was calculated using the reverse complement strand (#65)
Bug fixes: - Fix indices for reference vs query distance calculations, hit when reaching ~100k queries (#64) - If sketching craps out early, save the successful sketches up until that point to the HDF5 DB without corrupting it, so it can be joined later. (#64)
Other: - Refactor the CUDA code a bit, putting classes into their own files. (#64)
- C++
Published by johnlees about 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib 1.7.3
New features: - Better parallel efficiency for distance calculation on a CPU (#62)
Bug fixes: - Progress meter caused crash with small numbers of distances (#62) - Smoother progress meter for distances (#62) - Remove device reset which could cause problems with both GPU dists and a GPU graph in poppunk (#62)
- C++
Published by johnlees about 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib 1.7.2
New features: - Progress bars for main CPU functions #61 - Handle Ctrl-C in both CPU and GPU functions #38
Bug fixes: - Deal with errors during sketching gracefully #61
Other: - Change CMakeLists to work with gcc on OS X (to allow use of openmp)
- C++
Published by johnlees about 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.7.1
Bug fix: - Fix stall on GPUs when regression terminates early due to no matches #60
- C++
Published by johnlees about 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib 1.7.0
This updates __shared__ memory copies to use memcpy_async, a CUDA 11 feature (#59).
This also fixes a bug sometimes seen with incorrect distances being calculated on a GPU.
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.6.5
Bug fixes: - When using random matches, now checks all references are in the object, and adds them if not (previously gave a key error) #56 - The python join interface warns to regenerate random matches if present. The above error would be triggered by a join where random was copied over. - Error in strides of the longToSquareMulti function with query-ref matrices #57
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.6.4
Bug fix:
- Open HDF5 files as read only where possible (when querying). This prevents creating a lock, and allows multiple processes to access the same HDF5 file (#52)
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.6.3
New features:
- Version and sketch version are saved as module attributes, makes testing module version more reliable #50
- Boundary code has been removed, now in PopPUNK package extension #50, https://github.com/johnlees/PopPUNK/pull/146
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.6.2
New features: - Adds functions to grow network in 1D or 2D, by iterating boundary forward #48
Bug fixes: - Compile without openMP
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.6.1
New features: - More optimised compile options for emcc, including removing exception handling 60a803ff30245e19e8fe0c15b73f9905a8f6cccc
Bug fixes: - Segfault when GPU distances were calculated using multiple blocks #44
Cosmetic code changes: - Combine matrix index functions for CPU and GPU code #44 - Reflow all of the code, fix inconsistent tab/space indentation #45
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.6.0
New features: - Add WebAssembly version (for single queries) #40. - Allow random on/off in jaccard dist bindings #41.
Bug fixes:
- Fixed a stall with GPU distances sometimes triggered due to a misplaced __syncwarp() call.
- Check for sketches which exceed GPU shared memory size, and use global memory rather than failing if it won't fit #43.
- Check all CUDA API calls, including kernel launches.
- Remove -march=native from the CMakeLists.txt, which may have been causing Illegal Instruction errors
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.5.3
- Fixes bug with ref v query distances (variable overwritten)
- Adds a test for ref v query distances
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.5.2
- Modifies the operation of the sparsification of distances to correctly deal with zero distances
- Removes parallelisation of distance sparsification (causing issues on some platforms)
- SIMD openmp commands removed from matrix operations
- C++
Published by johnlees over 5 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib 1.5.1
Important bugfix (see https://github.com/johnlees/PopPUNK/issues/95):
- Inputs to the CPU query API were being sorted by name, returning distances not in the expected order. This will have worked with poppunk_sketch but not through other software such as PopPUNK, unless the input was alphabetical.
- C++
Published by johnlees almost 6 years ago
https://github.com/bacpop/pp-sketchlib - Sketchlib v1.5.0
New features:
- Allow turning off random match computation (#28), which is useful for querying.
- Replace threads with OpenMP (#31). Much more efficient CPU parallelisation of distances.
- Add GPU/CPU hybrid sketching algorithm for read data (#32).
- Add codon phased seeds --codon-phased (#35). This replaces randomly spaced seeds.
Bug fixes: - Update to work with HighFive v2.2.2 - Check for zero Jaccard distances (#36)
- C++
Published by johnlees almost 6 years ago
https://github.com/bacpop/pp-sketchlib - Random match correction
New features: - Add parallelised sparse and dense matrix operations (#21, #23) - Used spaced seeds in hash function; store sketching version in HDF5 file (#22) - Chunk up distance calculation on the GPU, so any size is supported (#24) - Calculate random match chances via Monte Carlo simulation (#27)
Added CI testing: - Add new tests for matrix functions - Add test for distances compared to reference values
Test to be manually run: - Compare GPU and CPU distances
- C++
Published by johnlees about 6 years ago
https://github.com/bacpop/pp-sketchlib - K-mer length enhancements
Adds the following features: - Extract Jaccard distances - Calculate and save genome length using minimum hash - Calculate and save base composition - Adjust comparisons for base composition, and expected random matches - Spaced seeds for short k-mer lengths
Bug fixes: - Error when calculating distances on a GPU (#18)
- C++
Published by johnlees over 6 years ago
https://github.com/bacpop/pp-sketchlib - GPU accelerated distances
New features: - Distance calculations on CUDA compatible GPUs. - Use armadillo linear solver rather than dlib for regressions (on CPU).
Added some benchmarks to the readme
- C++
Published by johnlees over 6 years ago
https://github.com/bacpop/pp-sketchlib - Improved speed and memory
New features: * Implement countmin correctly and pick sensible default parameters for sketching read datasets (#11) * More reliable and faster code for optimiser used in linear regression * Add testing and CI
Bug fixes: * Made CMakeLists.txt and Makefile more general (removed specific paths)
- C++
Published by johnlees over 6 years ago
https://github.com/bacpop/pp-sketchlib - Patched release
Small fixes:
- #14: Use the
mkl_rtlibrary to link, which works better with conda (see https://groups.google.com/forum/#!msg/kaldi-help/m3nyQke0HS0/4fj8gkSWAgAJ, https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/748309, https://github.com/ContinuumIO/anaconda-issues/issues/720) - #14: As the sequential library cannot be specified, export this as an environment variable in the
api.cppfunctions which handle their own threading. - Correct version of gcc used to compile
- C++
Published by johnlees over 6 years ago
https://github.com/bacpop/pp-sketchlib - Initial release
Features tested and working on OS X and Linux. Install looks ok, locally
- C++
Published by johnlees over 6 years ago