Option for Native AD backend APIs to offer direct stability guarantees ?
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- julia
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Bắt đầu bằng việc đọc issue #992 được liên kết của Mooncake.jl và các issue #986 và #854 của DifferentiationInterface.jl, sau đó kiểm tra cách DI hiện đang bọc các API của backend. Xác định liệu các lời gọi native trực tiếp hoặc chế độ Native-First có thể duy trì tính đúng đắn và độ ổn định đồng thời giảm overhead hay không. Công việc được xem là hoàn tất khi phạm vi, các backend được hỗ trợ và tiêu chí xác thực đã được thống nhất.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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?
- Ngôn ngữ chính
- Julia
- Star
- 317
- Fork
- 38
- Merge trung bình
- 13 giờ 49 phút
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JuliaDiff/DifferentiationInterface.jl
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
JuliaDiff/DifferentiationInterface.jl#1069 · 1 bình luận ·
-
bot
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
JuliaDiff/DifferentiationInterface.jl#1011 · 3 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
JuliaDiff/DifferentiationInterface.jl#1085 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
AutoEnzyme Jacobian preparation scalar-indexes Reactant traced arraysCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbackend wontfix
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
JuliaDiff/DifferentiationInterface.jl#1066 · 10 bình luận ·
Tất cả issue của JuliaDiff/DifferentiationInterface.jl
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
JuliaDiff/TaylorSeries.jl#445 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
SciML/PETScDiffEq.jl#362 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Prescribed ice velocities never get their halos filled, so ice is created at a periodic seamĐang mở🕷️ bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
CliMA/ClimaSeaIce.jl#203 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
JuliaPhysics/BeamletOptics.jl#221 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
release preparation spack
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày