Option for Native AD backend APIs to offer direct stability guarantees ?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- julia
- Área
- backend-api-design
Línea de trabajo
Comienza leyendo el issue #992 enlazado de Mooncake.jl y los issues #986 y #854 de DifferentiationInterface.jl; después, inspecciona cómo DI envuelve actualmente las APIs de los backends. Determina si las llamadas nativas directas o un modo Native-First pueden preservar la corrección y la estabilidad y, al mismo tiempo, reducir la sobrecarga. La tarea se consideraría completada cuando se hayan acordado el alcance, los backends compatibles y los criterios de validación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Native AD backend APIs often provide better stability and stronger correctness guarantees than DI's layer around them.
eg: https://github.com/chalk-lab/Mooncake.jl/issues/992 - a frule!!/rrule!! inconsistency in nan_tangent_guard causes forward-mode to return NaNwhere reverse-mode returns 0.0. This kind of edge-case divergence between modes is invisible to DI, which wraps each mode independently.
Broadly the concerns are:
- Maintenance burden: each AD backend update can silently break DI's assumptions, requiring downstream fixes (eg https://github.com/JuliaDiff/DifferentiationInterface.jl/issues/986)
- Correctness: bugs like https://github.com/chalk-lab/Mooncake.jl/issues/992 may only surface after multiple layers of wrapping, making diagnosis harder.
- Performance: calling native API is almost always faster as we don't have the DI overhead. (eg https://github.com/JuliaDiff/DifferentiationInterface.jl/issues/854)
Is there a path toward DI where we can either :
- (a) call native backend APIs more directly where they exist, or
- (b) expose a "native-first" mode that bypasses the wrapper for backends that have the latest stable and correct API?
- Lenguaje dominante
- Julia
- Estrellas
- 314
- Forks
- 36
- Merge medio
- 2 h 14 min
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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/DifferentiationInterface.jl
-
`pick_batchsize` spends ~1 µs constructing `BatchSizeSettings{B}(N)` with a run-time `B`Posiblemente ocupada @devmotion la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
JuliaDiff/DifferentiationInterface.jl#1069 · 1 comentario ·
-
bot
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
JuliaDiff/DifferentiationInterface.jl#1011 · 3 comentarios ·
-
AutoEnzyme Jacobian preparation scalar-indexes Reactant traced arraysQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobackend wontfix
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
JuliaDiff/DifferentiationInterface.jl#1066 · 10 comentarios ·
-
Split preparation methods into 4Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Todos los issues de JuliaDiff/DifferentiationInterface.jl
Issues similares
-
broken links in docsAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
JuliaPhysics/BeamletOptics.jl#127 ·
Los mantenedores suelen responder en 1 día
-
Chains resumed from `initial_state` take `num_warmup + 1` warm-up stepsPosiblemente ocupada @thevolatilebit la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
TuringLang/AbstractMCMC.jl#220 ·
-
found-by-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
exanauts/SparseDirectSolver.jl#92 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día