Skip to content

v0.50.2 - cuDF Compatibility and GPU Performance

Choose a tag to compare

@lmeyerov lmeyerov released this 11 Jan 15:26
· 2294 commits to master since this release
4b42e4a

Performance

  • Compute / hop: Use scalar broadcast Series(True, index=...) instead of Python list splatting Series([True] * len(...), ...) for efficient GPU-friendly constant initialization
  • Predicates / str: Use scalar broadcast for constant Series in startswith/endswith empty tuple edge cases
  • DGL: Use np.ones() instead of np.array([1] * len(...)) for efficient array initialization

Fixed

  • Hypergraph: Fixed engine auto-detection to use input DataFrame type instead of defaulting to cuDF when available
  • GFQL / chain: Fixed cuDF compatibility in backward pass by removing set() wrappers around Series passed to .isin() (cuDF .isin() works directly with Series)
  • GFQL / chain: Fixed cuDF compatibility by replacing .combine_first() with .where() pattern (cuDF lacks combine_first)
  • Compute / hop: Fixed cuDF compatibility by making all operations engine-agnostic: vectorized .isin() instead of Python set(), engine-aware Series/concat construction, and s_na(engine) instead of pd.NA (fully GPU-accelerated)

Infra

  • Engine.py: Added s_to_numeric(engine) and s_na(engine) polymorphic utilities for engine-agnostic numeric conversion and null assignment

Tests

  • GFQL / chain: Added engine_mode parametrized fixture for automatic pandas/cuDF parity testing (enabled via TEST_CUDF=1). Chain optimization tests now run 156 tests (78 pandas + 78 cuDF) when GPU is available.

Full Changelog: v0.50.1...v0.50.2