CliMA / CliMA/ClimaAtmos.jl

Search for more kernel fusion performance opportunity

Open
#4,261 0 comments 0 reactions 2 assignees Claimed by @daverumph View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.