CliMA / CliMA/ClimaCore.jl

Make performance tests more systematic

Open
#1,278 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
117
Forks
19
Avg merge
3d 4h
Merged PRs (30d)
41

Description

**Is your feature request related to a problem? Please describe.**
Our existing performance tests are currently a mixture of allocation tests, inference tests, and benchmarks written at different times and with different goals in mind. It might be nice if we more systematically organize our performance tests.

Looking at our test suite, it seems like there are a few performance tests that we could apply to all of our operators:

##### Deterministic
- Inference (JET)
- Allocations `@allocated`
- GFlops (can replace the comparison against ordinary arrays)
- Test counted number of `" inbounds "` occurrences in llvm output. (IntrospectionTools.jl)

##### Non-deterministic,
- `BenchmarkTools.@btime` (with all the deterministic tests in place, benchmarks can be made soft fail)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by surveying the existing performance tests, which currently mix allocation tests, inference tests, and benchmarks. Identify how JET, @allocated, GFlops, IntrospectionTools.jl LLVM inspection, and BenchmarkTools.@btime are currently used. Done means the performance tests are organized systematically across operators, with deterministic checks separated from soft-fail benchmarks.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
performance, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.