Feature request: vectorized finite difference evaluation
@ChrisRackauckas-Claude ya está trabajando en esto.
Desde el 6/4/2026.
- #211 de @ChrisRackauckas-Claude — abierto
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- julia
- Área
- performance
Línea de trabajo
Comienza leyendo las APIs existentes de FiniteDiff y AutoFiniteDiff y el caso de uso de GPU vectorizado manualmente descrito en el issue. Determina cómo representaría un argumento dims las tangentes de diferencias finitas por filas y cómo debería mapearse la forma de salida a la matriz jacobiana. Se considera terminado cuando una API generalizada pueda realizar la evaluación vectorizada en una sola llamada a función.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- Julia
- Estrellas
- 305
- Forks
- 42
- Merge medio
- 24 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaDiff/FiniteDiff.jl
-
tagbot-manual
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
JuliaDiff/FiniteDiff.jl#218 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
JuliaDiff/FiniteDiff.jl#199 · 3 comentarios ·
-
StridedArraysAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
JuliaDiff/FiniteDiff.jl#158 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JuliaDiff/FiniteDiff.jl#157 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
JuliaDiff/FiniteDiff.jl#150 · 1 comentario ·
Todos los issues de JuliaDiff/FiniteDiff.jl
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
oscar-system/GAP.jl#1455 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
Los mantenedores suelen responder en 4 días