Repository navigation
Testing, benchmarking, performance improvements - #73
Merged
Merged
Conversation
alphaville
marked this pull request as ready for review
November 4, 2026 16:33
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.
Main Changes
Target version: v2.0.0
Added
scripts/run_python_tests.shruns the Python pytest suite with configurable interpreter/build paths and optional C++ exchange tests.LeastSquaresBatchedWorkspace<T>preallocates reusable status storage and one-entry matrix-pointer arrays only for batches of one.Svd::rankRelative(rtol, atol = 0)adds GPU rank calculation using per-matrix thresholdsmax(atol, rtol * sigmaMax)and validated tolerances.Session::recordAllocation(size_t),recordDeallocation(size_t), and countedcudaReleasemethods.DTensor::getRowsInto(destination, rowsFrom, rowsTo, matIdx)validates and copies rows into preallocated storage on the source stream.DTensor::leastSquaresBatched(b, infoArray)supports reusable device status storage without per-call allocation.Session::numStreams()exposes the initialized stream count.Changed
incrementAllocatedBytes(int)with separate size-safe allocation/deallocation methods.deviceCopyTofor preallocated copies.setStreamIdxreturns a reference for lvalues and moves rvalues, avoiding implicit allocation and deep copying.getRowsuses one asynchronous 2D copy and inherits the source stream;getRowsIntopreserves the destination's stream index.Fixed
Sessionmember, with a two-file regression test.unique_ptrowner and raw observer; verify cleanup with allocation-failure tests.Svd::rank()counters on each call; SVD factorisation, rank kernels, and results use the input stream.ctest --test-dir builddiscovers the test suite.getQRsynchronizes before reading R on the host.Associated Issues