From 91c0ea0216a7d7b400b7dd171ca25cb1102c9f6c Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Fri, 25 Aug 2023 17:49:25 -0400 Subject: [PATCH] Add documentation entry --- docs/src/solvers/solvers.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/src/solvers/solvers.md b/docs/src/solvers/solvers.md index f7e52c2a7..fe8a8b6e4 100644 --- a/docs/src/solvers/solvers.md +++ b/docs/src/solvers/solvers.md @@ -72,6 +72,14 @@ choice of Krylov method should be the one most constrained to the type of operat has, for example if positive definite then `Krylov_CG()`, but if no good properties then use `Krylov_GMRES()`. +!!! tip + + If your materialized operator is a uniform block diagonal matrix, then you can use + `SimpleGMRES(; blocksize = )` to further improve performance. + This often shows up in Neural Networks where the Jacobian wrt the Inputs (almost always) + is a Uniform Block Diagonal matrix of Block Size = size of the input divided by the + batch size. + ## Full List of Methods ### RecursiveFactorization.jl @@ -106,6 +114,7 @@ LinearSolve.jl contains some linear solvers built in for specailized cases. ```@docs SimpleLUFactorization DiagonalFactorization +SimpleGMRES ``` ### FastLapackInterface.jl