warp.tile_cholesky_solve#
- warp.tile_cholesky_solve( ) Tile[Float, tuple[int, ...]]#
Solve
A x = ygiven the Cholesky factor ofAand returnxin a new tile.With
fill_mode="lower"Lis the lower-triangular factor such thatL @ L^T = A; withfill_mode="upper"Linstead holds the upper-triangular factorUsuch thatU^T @ U = A, despite the parameter name. Only the triangle selected byfill_modeis read; the opposite triangle is ignored.fill_modemust be a compile-time constant.This is a cooperative operation, so every thread in the block must call it.
The right-hand side may be a 1D tile with
shape=(M,)or a 2D tile withshape=(M, NRHS), which solves for allNRHScolumns at once.Landymust have the same dtype, eitherfloat32orfloat64.On CUDA devices, Warp uses cuSolverDx when it is built with libmathdx and
warp.config.enable_mathdx_solver(or theenable_mathdx_solvermodule option) isTrue. Otherwise, and on the CPU, it uses a cooperative fallback implementation, which is slower than cuSolverDx on CUDA devices.- Parameters:
L – A square triangular Cholesky factor of
A, withshape=(M, M).y – The right-hand side, a tile with
shape=(M,)orshape=(M, NRHS).fill_mode –
"lower"or"upper". Must be a compile-time constant.
- Returns:
A new tile in shared memory with the same shape and dtype as
y, holding the solutionxofA x = y.
See
tile_cholesky()for a usage example.