Search for more kernel fusion performance opportunity
- Dominant language
- Julia
- Stars
- 128
- Forks
- 39
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 30
Description
This has been done a bit already, but there could be some more.
Enabled by ClimaCore PRs:
- Teja's `tr/cuda-ext` -- #2466
Subtasks:
- Single generic CPU or GPU operator `getidx` -- `calc_level_val` in `operadors_fd_eager.jl` is still recursive, but puts everything into shmem at each arg evaluation -- "do a convolution" operator.
- Find all Dave's PRs that unfused kernels and re-fuse them.
- Start with `cache/precomputed_quantities.jl` (or whole cache folder really). `set_velocity_at_surface` could potentially return a `@. lazy` object of tuple of them.
- Temporary quantities. Try uncaching as first step. Some quantities don't mean anything. Try dropping temp variable assignments and move expressions into where they're used.
- Single level functions gets replaced with set boundary.
- Move to prognostic equations next, implicit tendencies, then explicit tendencies, then parameterized tendencies.
- Jacobian update should be able to support some fusion.
- Profiling code with NVTX ranges that launch tons of small kernels.
- We should see far fewer small kernels.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.