Feature request: vectorized finite difference evaluation
@ChrisRackauckas-Claude ci sta già lavorando.
Dal 6/4/2026.
- #211 di @ChrisRackauckas-Claude — aperta
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- julia
- Ambito
- performance
Direzione di ricerca
Inizia leggendo le API esistenti di FiniteDiff e AutoFiniteDiff e il caso d’uso GPU vettorizzato manualmente descritto nell’issue. Determina come un argomento dims rappresenterebbe le tangenti delle differenze finite riga per riga e come la forma dell’output dovrebbe essere mappata sulla matrice jacobiana. Il lavoro è concluso quando un’API generalizzata può eseguire la valutazione vettorizzata con una sola chiamata di funzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I have an implicit function that is extremely expensive to evaluate. However, it is fully GPU parallelized, in that if a matrix is provided, then each row is evaluated in parallel. For this particular function, the output is a matrix of size = (something, number of rows)
Doing finite differences through this is then easily parallelizable by making each row be a finite difference "tangent" (sorry if I'm misusing that word), so that the full Jacobian can be constructed in one single function evaluation as opposed to many evaluations.
I am doing this now manually, but it would be nice if this functionality could be generalized into FiniteDiff. perhaps a dims argument could be provided to AutoFiniteDiff specifying the dimension about which the evaluation is vectorized (in my case across the rows, so dims=1).
- Lingua principale
- Julia
- Stelle
- 305
- Fork
- 42
- Merge medio
- 24m
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaDiff/FiniteDiff.jl
-
tagbot-manual
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
JuliaDiff/FiniteDiff.jl#218 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
JuliaDiff/FiniteDiff.jl#199 · 3 commenti ·
-
StridedArraysAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
JuliaDiff/FiniteDiff.jl#158 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaDiff/FiniteDiff.jl#157 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
JuliaDiff/FiniteDiff.jl#150 · 1 commento ·
Tutte le issue di JuliaDiff/FiniteDiff.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
oscar-system/GAP.jl#1455 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
I maintainer di solito rispondono entro 4 giorni
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
SciML/NonlinearSolve.jl#1372 ·
I maintainer di solito rispondono entro 1 giorno