ArrayPartition of GPU arrays: norm, dot, Vector, any scalar-index; no KernelAbstractions.get_backend
維護者通常 3 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 45/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 活躍
- 領域
- backend
研究方向
Start by locating ArrayPartition's generic AbstractArray operations and existing partition-wise methods; the issue names no source files or tests. Reproduce the examples with JLArrays and allowscalar(false), then investigate KernelAbstractions.get_backend support and the reported method invalidations. Done means the listed operations avoid scalar indexing and backend lookup works, with invalidation effects considered.
由索引模型根據 Issue 內容生成。
描述
An ArrayPartition of GPU arrays fails several common operations under allowscalar(false). Broadcast, sum, copyto!, fill! and Tsit5 solves work.
using RecursiveArrayTools, JLArrays, LinearAlgebra
JLArrays.allowscalar(false)
ap = ArrayPartition(JLArray([1.0, 2.0]), JLArray([3.0, 4.0]))
sum(ap) # works
norm(ap) # ErrorException: Scalar indexing is disallowed.
dot(ap, ap) # scalar indexing
Vector(ap) # scalar indexing
any(isnan, ap) # scalar indexing (without RecursiveArrayToolsArrayPartitionAnyAll)
These fall back to generic element-by-element AbstractArray iteration. Partition-wise methods would fix this, and they are also much faster on CPU: dot takes 1014 ns elementwise and 70 ns partition-wise on a mixed 5-partition AP. The audit measured 21 invalidations from adding dot/norm methods, so this needs a decision.
Related gap found while fixing https://github.com/SciML/OrdinaryDiffEq.jl/issues/4813: KernelAbstractions.get_backend(ArrayPartition(JLArray(...), ...)) throws "Implement get_backend(::ArrayPartition…)". OrdinaryDiffEq's default discontinuity-bracketing setup for continuous callbacks hits this.
Found in a measurement audit of RecursiveArrayTools.jl master 02c477c (v4.5.3). It reproduces on Julia 1.12.4 and 1.10.12, and the reproducer above was re-run as written before filing.
🤖 Filed by Claude Code (model: claude-opus-5-5[1m]) on behalf of @ChrisRackauckas. The audit was done by a Claude Code Opus 5.5 subagent. Session: https://claude.ai/code/session_01LPHREnnonfLg1VcE1EJovv
- 主要語言
- Julia
- 星號
- 234
- 分支
- 77
- 平均合併
- 8 天 11 小時
- 30 天內合併 PR
- 14
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
SciML/RecursiveArrayTools.jl 的其他 Issue
-
難度 1/5 1 小時以內 新手友好度 85/100
SciML/RecursiveArrayTools.jl#687 ·
維護者通常 3 天內回覆
-
難度 1/5 1 小時以內 新手友好度 68/100
SciML/RecursiveArrayTools.jl#255 ·
維護者通常 3 天內回覆
-
In-place broadcasting into a `VectorOfArray` mishandles arrays with fewer dimensions可能已有人在做 @ChrisRackauckas 於 20 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 45/100
SciML/RecursiveArrayTools.jl#680 ·
維護者通常 3 天內回覆
-
難度 3/5 1-2 天 新手友好度 67/100
SciML/RecursiveArrayTools.jl#675 ·
維護者通常 3 天內回覆
-
難度 4/5 1-2 天 新手友好度 57/100
SciML/RecursiveArrayTools.jl#674 ·
維護者通常 3 天內回覆
查看 SciML/RecursiveArrayTools.jl 的全部 Issue
相似的 Issue
-
lux
難度 2/5 1-3 小時 新手友好度 76/100
JuliaGraphs/GraphNeuralNetworks.jl#732 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 1 天內回覆
-
Add project: Typst_jll.jl可能已有人在做 @github-actions 於 1 天前認領。 未關閉add-project
難度 1/5 1 小時以內 新手友好度 76/100
YDX-2147483647/best-of-typst#590 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 74/100
-
難度 2/5 1-3 小時 新手友好度 67/100