Comments (5)
Speak of the devil ! We were talking about it this afternoon with Geoffroy.
from krylov.jl.
I have something in mind, I will open a pull request when it's ready. It should not break GPU support, which a little bit tricky.
from krylov.jl.
@geoffroyleconte
I let you try to add this feature for MINRES.
To not break GPU support you should parameterize your solver
:
abstract type KrylovSolver{S} end
mutable struct MinresSolver{S} <: KrylovSolver{S}
x :: S
r1 :: S
...
end
where S
is Vector{Float64}
, CuVector{Float64}
, ... It should not be Float32
, Float64
, ...
You can find the variable names of MinresSolver
here : https://github.com/JuliaSmoothOptimizers/Krylov.jl/blob/master/test/test_alloc.jl#L41
Like Dominique proposed you can create a function like that after :
function minres(A, b :: AbstractVector{T}; kwargs...) where T <: AbstractFloat
solver = ... # create your MinresSolver
minres!(A, b, solver; kwargs...)
end
In minres!
, you can add the following lines at the beginning to reuse all the actual code of minres
:
x = solver.x
r1 = solver.r1
....
You only need to update the initialization of the variables and add a check to verify that eltype(S) == T
.
from krylov.jl.
😈
from krylov.jl.
fixed by #271
from krylov.jl.
Related Issues (20)
- ReshapedArrays support
- GMRES Convergence Without Meeting atol/rtol HOT 3
- Add an example and a test for the CuSparseMatrixCOO format
- [documentation] Add an optimized linear operator for sparse matrix-vector product on Nvidia GPUs HOT 1
- Add a note about AB-GMRES and BA-GMRES
- Support preconditioners in MINARES
- Add an option reorthogonalization for the processes
- Comments for Krylov processes
- Question for GPU computation: lots of time on vector products HOT 1
- Optimize the block non-Hermitian Lanczos process
- Automatically promote `atol` and `rtol` to `eltype(b)` HOT 8
- Move Block-GMRES in Krylov.jl
- Add a reference for CRAIG
- [documentation] KrylovPreconditioners.jl
- Add more timers in KrylovStats HOT 2
- [documentation] Sensitivity analysis
- Add more tests for Block-GMRES
- Implement copyto! for KrylovStats
- parallel gmres HOT 1
- Download badge is broken HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from krylov.jl.