ArrayPartition of GPU arrays: norm, dot, Vector, any scalar-index; no KernelAbstractions.get_backend
Mantenedores costumam responder em até 3 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Domínio
- backend
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Julia
- Estrelas
- 234
- Forks
- 77
- Merge médio
- 1d 16h
- PRs com merge (30d)
- 11
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de SciML/RecursiveArrayTools.jl
-
Docs: usage of j vs iAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
SciML/RecursiveArrayTools.jl#255 ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
SciML/RecursiveArrayTools.jl#680 ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 67/100
SciML/RecursiveArrayTools.jl#675 ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 4/5 1-2 dias Facilidade para iniciantes 57/100
SciML/RecursiveArrayTools.jl#674 ·
Mantenedores costumam responder em até 3 dias
-
JET: similar_type(::Any) no-matching-method in RecursiveArrayToolsRaggedArrays (pre-existing QA red)Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
SciML/RecursiveArrayTools.jl#620 ·
Mantenedores costumam responder em até 3 dias
Todas as issues de SciML/RecursiveArrayTools.jl
Issues semelhantes
-
enhancement good first issue help wanted
Dificuldade 2/5 Meio dia Facilidade para iniciantes 82/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
SciML/SciMLBase.jl#1643 ·
Mantenedores costumam responder em até 2 dias
-
authority-vechtstromen ready-for-agent
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
Deltares/Ribasim-NL#890 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Precompilation fails on Julia 1.14 nightly: HessenbergQ lmul! methods overwrite LinearAlgebra'sAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
JuliaLinearAlgebra/GenericLinearAlgebra.jl#183 · 1 comentário ·