JuliaArrays / JuliaArrays/StaticArrays.jl
Various functions don't have cutoffs for when to stop unrolling
Open
Nobody has claimed this yet.
compile-time-performance
design
- Dominant language
- Julia
- Stars
- 844
- Forks
- 159
- Avg merge
- 3d 21h
- Merged PRs (30d)
- 3
Description
From https://github.com/JuliaArrays/StaticArrays.jl/issues/430#issuecomment-395977617, e.g.:
julia> using StaticArrays
julia> SA = rand(SMatrix{50,50,Complex{Float64}});
julia> @time vecnorm(SA);
83.789766 seconds (137.97 M allocations: 3.949 GiB, 1.25% gc time)
There are many more, for example map, mapreduce and broadcast.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked StaticArrays.jl issue comment and reproduce the vecnorm example using a 50×50 SMatrix in Julia. Investigate the unrolling behavior of vecnorm, map, mapreduce, and broadcast; done means these functions stop unrolling at a practical cutoff instead of producing the reported excessive runtime and allocations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100