Repository navigation
Conversation
aw471
approved these changes
Nov 12, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Apply Kumo's existing Float32 feature-output policy at the numerical and categorical route exits instead of after concatenation, shuffle, and selection. The isolated E16 comparisons save about 4–10 ms per fit-plus-query cycle and 51–75 MB of peak allocated GPU memory on the two measured shapes.
Description of the change
Based directly on #797 (
6426421904), independently of the Cast no-op PR. Move the conversion into the recipe rather than adding precision policy to generic Processors or ensemble execution.All learned numerical calculations and random sign fitting remain at their original precision; numerical casting occurs after
FlipSign. Casting before sign generation would change seeded CUDA Bernoulli outcomes and is deliberately not done. Assembly and downstream column operations now consume narrower numerical values.This changes private recipe module/state keys; strict loading of an older already-fitted recipe checkpoint is not guaranteed. Fresh-fit output behavior is checked against the unchanged current-#797 reference.
Validation
Actual Kumo preprocessing recipe, no model inference: 89% numerical / 10% categorical / 1% text columns, effective E16, N training rows and N separate query rows. Baseline
6426421904, candidatee646ace71; identical frozen fixtures and fresh baseline parity references. L4 / EPYC 7R13, four CPU threads, PyTorch 2.14.0+cu130, Python 3.11.15.Four fresh-process AB/BA pairs per shape, two warmups and 21 chronological repetitions; inference mode, CUDA synchronization, normal GC with no observer. Time includes
RecipeExecution.fit_transformplus querytransform, but excludes input transfer/tensorization, recipe construction, generator setup and inference. Previous returned outputs remain alive until replacement, matching the existing benchmark boundary.Reported times are medians of process statistics; percentage changes are medians of paired changes, not pooled quantiles. Total-median pair ranges: −1.64…−0.16% and −2.84…+0.13%, respectively. CPU RSS peaks are effectively unchanged (~1.86 GB). GPU memory means PyTorch allocated, not reserved; RSS is sampled every 2 ms.
Counterevidence: 50k query p95 increases 99.91→102.55 ms (paired +1.81%, mixed pair signs). First-call totals are 1,892.32→1,898.94 ms for 10k and 1,626.27→1,597.24 ms for 50k, also with mixed pair signs. This is a small warm improvement, not a universal cold-start/tail win or a newly rerun full benchmark matrix.
All 16 timing processes passed output parity and effective-E16 checks; two additional baseline-reference processes also completed. Across 402 monitor samples no foreign GPU process or monitor error was observed; 1-Hz polling cannot rule out all transient interference. No speedup from the larger historical architecture experiment is attributed to this three-line recipe change.