Skip to content

Releases: pao-unit/FastCCM

v0.4.2

Choose a tag to compare

@z7743 z7743 released this 16 Sep 08:41

bug fix

v0.4.1

Choose a tag to compare

@z7743 z7743 released this 04 Sep 05:49

Faster k-NN search and simplex weighted average on both CPU and CUDA (1.3-5 times, depending on shape and device), plus a new moran_matrix(...).

Full Changelog: v0.3.1...v0.4.1

Changes

  • Added moran_matrix(...) to PairwiseCCM, computing Moran's I of target vectors over source k-NN graphs.
  • Improved the k-NN search: matmul-based squared distances in a reusable workspace, with the clamp and square root applied only to the selected neighbors instead of the whole distance block.
  • Replaced the full-block exclusion mask with a sparse one that touches only the columns a query can actually exclude.
  • Reused the neighbor workspace between calls by default: clean_after in score_matrix(...) and predict_matrix(...) now defaults to False, matching the documented behavior (1.5-3 times faster for repeated calls).
  • Improved the simplex weighted average by using embedding_bag for wide target blocks, avoiding a bmm slowdown that affected target embeddings with 5 or more columns (up to ~5 times faster on CPU, ~1.3 times on CUDA).
  • Added a prefiltered neighbor selection on CUDA for libraries above 4096 points (~1.7 times faster for long series).
  • Improved streaming metric accumulation and CUDA simplex batching.
  • Added benchmark scripts and generated CPU/GPU reports (scripts/README_CPU.md, scripts/README_GPU.md).

FastCCM v0.3.1

Choose a tag to compare

@z7743 z7743 released this 14 Apr 04:25

Full Changelog: v0.2.4...v0.3.1

Changes

  • Added batching across targets.
  • Added configurable memory_budget_gb and improved auto-batching for simplex and SMAP.
  • Improved simplex and SMAP performance, including target batching and optional SMAP precomputation.
  • Added optional global-baseline subtraction via subtract_global in PairwiseCCM.
  • Improved blocked Functions utilities with suffix alignment, progress bars, and more consistent tp handling.

FastCCM v0.2.4

Choose a tag to compare

@z7743 z7743 released this 03 Mar 02:33

Full Changelog: v0.2.3...v0.2.4

Changes

  • Improved simplex weighted-average performance (~2 times faster).
  • Improved batch processing via metric streaming (reduces peak RAM/VRAM use).
  • Added logger, progress bar, per-batch timing logs.
  • Improved OOM handling.
  • Added optional disk-backed outputs (out_path) for Functions.score_matrix_blocked and Functions.predict_matrix_blocked using numpy.memmap.

FastCCM v0.2.3

Choose a tag to compare

@z7743 z7743 released this 13 Feb 06:37

Full Changelog: v0.2.2...v0.2.3

Changes

  • Match results/tests with pyEDM.
  • Fix SMAP implementation to prevent memory/compute blow-up and reduce unnecessary computation.

FastCCM v0.2.2

Choose a tag to compare

@z7743 z7743 released this 21 Oct 03:36

Full Changelog: v0.2.0...v0.2.2

  • Out-of-memory (OOM) handling.
  • Chunked processing for memory safety.
  • Cleanup on completion and on error.
  • Consistent dtype handling.

FastCCM v0.2.1

Choose a tag to compare

@z7743 z7743 released this 10 Oct 06:40

Full Changelog: v0.2.0...v0.2.1

  • Robust memory safety. Automatic batching for both simplex and smap paths plus cleanup.
  • Switches to Cholesky solves instead of pseudo-inverse in SMAP.
  • Cleaner public API & docs

FastCCM v0.2.0

Choose a tag to compare

@z7743 z7743 released this 30 Sep 05:34

Full Changelog: https://github.com/z7743/FastCCM/commits/v0.2.0

FastCCM v0.2.0 — Public API

fastccm

  • class PairwiseCCM(...)
    • score_matrix(...)
    • predict_matrix(...)

fastccm.ccm_utils

  • class Functions(...)
    • score_matrix_blocked(...)
    • predict_matrix_blocked(...)
    • convergence_test(...)
    • prediction_interval_test(...)
    • find_optimal_embedding_params(...)
  • class Visualizer(...)
    • plot_convergence_test(...)
    • visualize_optimal_e_tau(...)
    • plot_interval_prediction_test(...)

fastccm.utils

  • embed(...)
  • get_td_embedding_np(...)
  • calculate_correlation_dimension(...)
  • calculate_rank_for_variance(...)
  • metrics.get_metric(...)

fastccm.data

  • get_truncated_lorenz_rand(...)
  • get_truncated_rossler_lorenz_rand(...)