Skip to content

Add row tiling in the GPU Coordinate Descent (CD) NMF solver - #14

Merged
OlivierBakker merged 1 commit into
TrynkaLab:mainfrom
JerryIshihara:features/nmf-gpu-kernal-tiling-cd-solver
Oct 2, 2026
Merged

OlivierBakker merged 1 commit into
TrynkaLab:mainfrom
JerryIshihara:features/nmf-gpu-kernal-tiling-cd-solver

Conversation

@JerryIshihara

Copy link
Copy Markdown

This pull request introduces support for row tiling in the GPU Coordinate Descent (CD) NMF solver, enabling the processing of large matrices in manageable row windows to better fit GPU memory constraints. The changes add a new --gpu-row-tiling-ratio argument, implement a tiling utility module, and refactor the CD solver to use row tiling when appropriate. These improvements allow for automatic or user-specified tiling ratios, improving scalability and memory efficiency for large datasets.

Row tiling support and solver refactoring:

  • Added a new argument --gpu-row-tiling-ratio to the command-line interface, allowing users to specify the row tiling ratio for GPU solvers, with support for automatic VRAM sizing or explicit ratios. [1] [2] [3]
  • Implemented a new module tiling.py that provides logic for determining row window sizes based on available GPU memory, copying data between host and device, and iterating over row windows.
  • Refactored solver_cd.py to utilize row tiling: replaced full-matrix operations with windowed operations, added memory budgeting, and adjusted the fitting routines to stream data in windows when necessary. This includes new helper functions for windowed computation and stopping criteria. [1] [2] [3]
  • Updated imports and module exports to include the new tiling module and ensure it is available to the GPU NMF solver. [1] [2]

Configuration and validation:

  • Added support for the new row tiling ratio option in GPU configuration defaults and argument validation, ensuring correct usage and error handling for invalid ratios. [1] [2]

@OlivierBakker
OlivierBakker merged commit e7bac93 into TrynkaLab:main Oct 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deliver bounded-memory GPU NMF tiling and parity across CD and MU paths

2 participants