perf(amr): batch the coarse-fine flux rewrite into one device launch for packed Diffusion
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- julia
- Lĩnh vực
- backend, performance
Hướng nghiên cứu
Start with _cf_flux_rewrite! and _cf_flux_rewrite_adjoint!, tracing their host loops over cfflux descriptors and the adjoint zero_ghosts! path. Use test/forest_diffusion.jl's KA-CPU direct-launch tests first, then run the CUDA leg with MFO_TEST_GPU=true. Done means bit-parity with the host loop and no change to the exchange count.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Follow-up to #59 / #76.
The packed Diffusion sweep on a GPU backend is one KernelAbstractions launch over (blocksize..., nleaves) for the stencil, but the conservative coarse–fine seam (_cf_flux_rewrite! / _cf_flux_rewrite_adjoint!) still runs as a host loop over the cfflux descriptors — a few small broadcast launches on device views per coarse–fine face, ahead of (forward) or after (adjoint) the stencil launch. The launch count therefore still scales with the number of coarse–fine faces, which only partly meets #59's "leaf-count-independent launch structure" acceptance item. The adjoint's per-leaf zero_ghosts! before the gather kernel is the same pattern (pre-existing on the other adjoint kernels).
Proposed: a device-resident twin of the cfflux table (SoA of leaf/face/offset descriptors) and one @kernel per direction that applies every face rewrite in a single launch, keeping the per-face body identical to the host loop so the numerical definition does not fork. Same for a batched ghost-zeroing kernel on the adjoint path. Acceptance: bit-parity with the host loop on the test/forest_diffusion.jl KA-CPU direct-launch tests and on the CUDA leg (MFO_TEST_GPU=true), and no change to the exchange count.
🤖 Beep boop — filed by Claude, not Kyle leaving himself homework.
- Ngôn ngữ chính
- Julia
- Star
- 3
- Fork
- 1
- Merge trung bình
- 4 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 5
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 RallypointOne/MatrixFreeOperators.jl
-
Roadmap: open-issue priorityĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
performance
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
-
perf(forest): thread the reference BlockForest path — leaf sweeps and exchange descriptor loopsĐang mởperformance
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Tất cả issue của RallypointOne/MatrixFreeOperators.jl
Issue tương tự
-
`ShallowWaterModel` allocates ~9 KiB per grid point per RK3 stage on the CPUCó thể đã có người làm @ali-ramadhan đã nhận hôm nay. Đang mởperformance 🏍️
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
CliMA/Oceananigans.jl#6421 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
JuliaQUBO/QUBOLib.jl#105 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
NCAR/musica#1118 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`AMSGrad` state starts at `epsilon` instead of zero, so zero gradients move parameters and small gradients are dampedCó thể đã có người làm @parth-patel010 đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
FluxML/Optimisers.jl#247 · 1 bình luận ·
-
README should say that row and column order must matchCó thể đã có người làm @SAUMYARSH đã nhận 1 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100