Skip to content

pip: bump nvalchemi-toolkit-ops from 0.4.0 to 0.4.1 - #2156

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/nvalchemi-toolkit-ops-0.4.1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/nvalchemi-toolkit-ops-0.4.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Bumps nvalchemi-toolkit-ops from 0.4.0 to 0.4.1.

Release notes

Sourced from nvalchemi-toolkit-ops's releases.

v0.4.1 Release Notes

This is a hotfix release. It corrects the PyTorch Ewald/PME autograd path — energy gradients for connected charge/position/cell inputs, the reciprocal strain virial, and torch.compile support for explicit single-system batches — and hardens the neighbor-list validation surface for cluster-tile and cell-list builds. It also adds a keyword-only energy_reduction selector to the monopole electrostatics entry points and optional tile-state passthrough for PyTorch cluster-tile selective calls.

There are no API removals. Several paths that previously accepted malformed or ambiguous input now fail closed; see Behavior Changes.


Behavior Changes

  • Compiled unified PyTorch cluster-tile dispatch rejects tensor-valued PBC (#141): it previously treated a tensor pbc as fully periodic. PBC is now validated eagerly and the direct single-system fixed-state route is compiled instead.
  • Single-system Torch and JAX segmented cluster-tile COO require one exact physical interval (#141): writes are bounded by output capacity, malformed offsets fail closed, and compiled/JIT active counts are capped to writable capacity. Batched per-system physical subsegments remain supported.
  • Fused Warp graph calls with an explicit max_total_cells now require an explicit neighbor_search_radius (#129).

Additions/New Features

  • energy_reduction on monopole electrostatics (#132): Torch and JAX Ewald, PME, and slab entry points accept keyword-only energy_reduction="atom" | "system" (default "atom"). "atom" returns per-atom energies (N,); "system" returns per-system totals (B,). Direct-output fields (forces, charge gradients, virials) keep their existing shapes. Torch eager atom mode may synchronize once per participating component when a materialized uniform cotangent is proven by value inspection; system mode is structurally sync-free for arbitrary (B,) loss weights. JAX adds API/layout parity only; the underlying Warp kernels remain atom-buffer-oriented.
  • Caller-owned tile state from PyTorch cluster-tile selective calls (#141): pass return_state=True to append the tile state to the return, without changing the default neighbor-list return arity.

Performance

  • Faster JAX neighbor-list import (#130): dtype-specific direct naive and cell-list Warp wrapper registration is deferred until first use, and cluster-tile graph callbacks use bundled callback/preload registrations with lazy direct kernels

... (truncated)

Changelog

Sourced from nvalchemi-toolkit-ops's changelog.

0.4.1 - 2026-08-03

Added

  • Monopole Torch and JAX Ewald, PME, and slab entry points accept keyword-only energy_reduction="atom" | "system" (default "atom"). "atom" returns per-atom energies (N,); "system" returns per-system totals (B,). Direct-output fields (forces, charge gradients, virials) keep their existing shapes. Torch eager atom mode may synchronize once per participating component when a materialized uniform cotangent is proven by value inspection; system mode is structurally sync-free for arbitrary (B,) loss weights. JAX adds API/layout parity only; underlying Warp kernels remain atom-buffer-oriented.
  • PyTorch cluster-tile selective calls can append caller-owned tile state with return_state=True, without changing the default neighbor-list return arity.

Changed

  • Improved JAX neighbor-list import performance by deferring dtype-specific direct naive and cell-list Warp wrapper registration until first use. Cluster-tile graph callbacks now use bundled callback/preload registrations with lazy direct kernels for naive and cell-list paths. Public behavior is unchanged.

Fixed

  • Fixed Torch PME and Ewald energy gradients for connected charge, position, and cell inputs. Non-uniform or weighted energy losses and create_graph=True higher-order derivatives no longer double-count upstream chain-rule terms.
  • Torch ewald_reciprocal_space now preserves graph-connected reciprocal vectors for cell/strain autograd, restoring the physical reciprocal Ewald virial when vectors are regenerated from the differentiable cell.
  • Torch Ewald, PME, and slab backward paths now compile when an explicit single-system batch (batch_idx=zeros(N)) is supplied. Reciprocal PME compiled gradients are also correct when a compiled function is reused across mesh sizes.
  • Torch DFT-D3 custom operators now zero caller-owned energy, forces, coordination-number, and virial buffers before empty-system or zero-edge early returns, so reused output tensors cannot retain stale values.
  • JAX DFT-D3 CSR calls with atoms but no edges return zero-filled per-atom forces and coordination numbers with shapes (N, 3) and (N,), matching the neighbor-matrix contract and preserving per-system energy and virial axes.
  • JAX cell-list builds now derive search radii from their realized grids, preventing missed neighbors when static capacity changes the constructed grid. Batched capacity_strategy="geometry" preserves promoted grids for all non-empty systems by reserving an equal per-system capacity; volume-based sizing remains the default. Fused Warp graph calls with explicit max_total_cells now require an explicit neighbor_search_radius.
  • Unbatched JAX naive dual-cutoff PBC neighbor lists now populate both cutoff outputs when using the default wrap_positions=True. Previously this path wrapped positions but skipped the fill kernel, leaving zero counts and padded

... (truncated)

Commits
  • 26dbceb fix changelog
  • c4eabf9 updates from comments
  • 895e6c8 small bug fixes
  • 3f70e30 bump to 0.4.1
  • 200452c docs: complete public API docstrings (#139)
  • ad76db8 fix(dispersion): handle empty DFT-D3 neighbor graphs (#140)
  • 56d9ff9 fix(electrostatics): restore reciprocal strain virial (#138)
  • 5aaa8b1 fix(neighbors): harden selective cluster-tile state (#141)
  • 0ed5a78 fix(electrostatics): dechain dependent autograd inputs (#131)
  • 22b7e16 fix(neighbors): fill wrapped JAX dual-cutoff PBC lists (#137)
  • Additional commits viewable in compare view

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file patch Patch version release python Pull requests that update Python code labels Aug 12, 2026
@meta-cla meta-cla Bot added the cla signed label Aug 12, 2026
@github-actions

Copy link
Copy Markdown
Original Dependabot description

Bumps nvalchemi-toolkit-ops from 0.4.0 to 0.4.1.

Release notes

Sourced from nvalchemi-toolkit-ops's releases.

v0.4.1 Release Notes

This is a hotfix release. It corrects the PyTorch Ewald/PME autograd path — energy gradients for connected charge/position/cell inputs, the reciprocal strain virial, and torch.compile support for explicit single-system batches — and hardens the neighbor-list validation surface for cluster-tile and cell-list builds. It also adds a keyword-only energy_reduction selector to the monopole electrostatics entry points and optional tile-state passthrough for PyTorch cluster-tile selective calls.

There are no API removals. Several paths that previously accepted malformed or ambiguous input now fail closed; see Behavior Changes.


Behavior Changes

  • Compiled unified PyTorch cluster-tile dispatch rejects tensor-valued PBC (#141): it previously treated a tensor pbc as fully periodic. PBC is now validated eagerly and the direct single-system fixed-state route is compiled instead.
  • Single-system Torch and JAX segmented cluster-tile COO require one exact physical interval (#141): writes are bounded by output capacity, malformed offsets fail closed, and compiled/JIT active counts are capped to writable capacity. Batched per-system physical subsegments remain supported.
  • Fused Warp graph calls with an explicit max_total_cells now require an explicit neighbor_search_radius (#129).

Additions/New Features

  • energy_reduction on monopole electrostatics (#132): Torch and JAX Ewald, PME, and slab entry points accept keyword-only energy_reduction="atom" | "system" (default "atom"). "atom" returns per-atom energies (N,); "system" returns per-system totals (B,). Direct-output fields (forces, charge gradients, virials) keep their existing shapes. Torch eager atom mode may synchronize once per participating component when a materialized uniform cotangent is proven by value inspection; system mode is structurally sync-free for arbitrary (B,) loss weights. JAX adds API/layout parity only; the underlying Warp kernels remain atom-buffer-oriented.
  • Caller-owned tile state from PyTorch cluster-tile selective calls (#141): pass return_state=True to append the tile state to the return, without changing the default neighbor-list return arity.

Performance

  • Faster JAX neighbor-list import (#130): dtype-specific direct naive and cell-list Warp wrapper registration is deferred until first use, and cluster-tile graph callbacks use bundled callback/preload registrations with lazy direct kernels

... (truncated)

Changelog

Sourced from nvalchemi-toolkit-ops's changelog.

0.4.1 - 2026-08-03

Added

  • Monopole Torch and JAX Ewald, PME, and slab entry points accept keyword-only energy_reduction="atom" | "system" (default "atom"). "atom" returns per-atom energies (N,); "system" returns per-system totals (B,). Direct-output fields (forces, charge gradients, virials) keep their existing shapes. Torch eager atom mode may synchronize once per participating component when a materialized uniform cotangent is proven by value inspection; system mode is structurally sync-free for arbitrary (B,) loss weights. JAX adds API/layout parity only; underlying Warp kernels remain atom-buffer-oriented.
  • PyTorch cluster-tile selective calls can append caller-owned tile state with return_state=True, without changing the default neighbor-list return arity.

Changed

  • Improved JAX neighbor-list import performance by deferring dtype-specific direct naive and cell-list Warp wrapper registration until first use. Cluster-tile graph callbacks now use bundled callback/preload registrations with lazy direct kernels for naive and cell-list paths. Public behavior is unchanged.

Fixed

  • Fixed Torch PME and Ewald energy gradients for connected charge, position, and cell inputs. Non-uniform or weighted energy losses and create_graph=True higher-order derivatives no longer double-count upstream chain-rule terms.
  • Torch ewald_reciprocal_space now preserves graph-connected reciprocal vectors for cell/strain autograd, restoring the physical reciprocal Ewald virial when vectors are regenerated from the differentiable cell.
  • Torch Ewald, PME, and slab backward paths now compile when an explicit single-system batch (batch_idx=zeros(N)) is supplied. Reciprocal PME compiled gradients are also correct when a compiled function is reused across mesh sizes.
  • Torch DFT-D3 custom operators now zero caller-owned energy, forces, coordination-number, and virial buffers before empty-system or zero-edge early returns, so reused output tensors cannot retain stale values.
  • JAX DFT-D3 CSR calls with atoms but no edges return zero-filled per-atom forces and coordination numbers with shapes (N, 3) and (N,), matching the neighbor-matrix contract and preserving per-system energy and virial axes.
  • JAX cell-list builds now derive search radii from their realized grids, preventing missed neighbors when static capacity changes the constructed grid. Batched capacity_strategy="geometry" preserves promoted grids for all non-empty systems by reserving an equal per-system capacity; volume-based sizing remains the default. Fused Warp graph calls with explicit max_total_cells now require an explicit neighbor_search_radius.
  • Unbatched JAX naive dual-cutoff PBC neighbor lists now populate both cutoff outputs when using the default wrap_positions=True. Previously this path wrapped positions but skipped the fill kernel, leaving zero counts and padded

... (truncated)

Commits
  • 26dbceb fix changelog
  • c4eabf9 updates from comments
  • 895e6c8 small bug fixes
  • 3f70e30 bump to 0.4.1
  • 200452c docs: complete public API docstrings (#139)
  • ad76db8 fix(dispersion): handle empty DFT-D3 neighbor graphs (#140)
  • 56d9ff9 fix(electrostatics): restore reciprocal strain virial (#138)
  • 5aaa8b1 fix(neighbors): harden selective cluster-tile state (#141)
  • 0ed5a78 fix(electrostatics): dechain dependent autograd inputs (#131)
  • 22b7e16 fix(neighbors): fill wrapped JAX dual-cutoff PBC lists (#137)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@frostedoyster

Copy link
Copy Markdown
Contributor

This one is risky. nvalchemi updates break things sometimes. I would add more graph construction tests to this one before merging

Bumps [nvalchemi-toolkit-ops](https://github.com/NVIDIA/nvalchemi-toolkit-ops) from 0.4.0 to 0.4.1.
- [Release notes](https://github.com/NVIDIA/nvalchemi-toolkit-ops/releases)
- [Changelog](https://github.com/NVIDIA/nvalchemi-toolkit-ops/blob/main/CHANGELOG.md)
- [Commits](NVIDIA/nvalchemi-toolkit-ops@v0.4.0...v0.4.1)

---
updated-dependencies:
- dependency-name: nvalchemi-toolkit-ops
  dependency-version: 0.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/pip/nvalchemi-toolkit-ops-0.4.1 branch from 13bfe61 to 1d96a6a Compare September 8, 2026 19:33

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla signed dependencies Pull requests that update a dependency file patch Patch version release python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants