v0.50.2 - cuDF Compatibility and GPU Performance
Performance
- Compute / hop: Use scalar broadcast
Series(True, index=...)instead of Python list splattingSeries([True] * len(...), ...)for efficient GPU-friendly constant initialization - Predicates / str: Use scalar broadcast for constant Series in
startswith/endswithempty tuple edge cases - DGL: Use
np.ones()instead ofnp.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 lackscombine_first) - Compute / hop: Fixed cuDF compatibility by making all operations engine-agnostic: vectorized
.isin()instead of Pythonset(), engine-aware Series/concat construction, ands_na(engine)instead ofpd.NA(fully GPU-accelerated)
Infra
- Engine.py: Added
s_to_numeric(engine)ands_na(engine)polymorphic utilities for engine-agnostic numeric conversion and null assignment
Tests
- GFQL / chain: Added
engine_modeparametrized fixture for automatic pandas/cuDF parity testing (enabled viaTEST_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