Skip to content

Palette kd-tree: slightly optimize getMedian#8029

Merged
glebm merged 1 commit into
diasurgical:masterfrom
glebm:kd-median
Jun 7, 2025
Merged

Palette kd-tree: slightly optimize getMedian#8029
glebm merged 1 commit into
diasurgical:masterfrom
glebm:kd-median

Conversation

@glebm

@glebm glebm commented Jun 7, 2025

Copy link
Copy Markdown
Collaborator

Our values are uint8_t, so we can get the median somewhat faster than nth_element.

Comparing build-reld-master/palette_blending_benchmark to build-reld/palette_blending_benchmark
Benchmark                                              Time             CPU      Time Old      Time New       CPU Old       CPU New
-----------------------------------------------------------------------------------------------------------------------------------
BM_GenerateBlendedLookupTable_pvalue                 0.0002          0.0002      U Test, Repetitions: 10 vs 10
BM_GenerateBlendedLookupTable_mean                  -0.0198         -0.0198       2272848       2227790       2270291       2225348
BM_GenerateBlendedLookupTable_median                -0.0199         -0.0199       2272884       2227649       2270323       2225212
BM_GenerateBlendedLookupTable_stddev                +0.4575         +0.6710           536           781           396           661
BM_GenerateBlendedLookupTable_cv                    +0.4870         +0.7047             0             0             0             0
OVERALL_GEOMEAN                                     -0.0198         -0.0198             0             0             0             0

@glebm
glebm enabled auto-merge (rebase) June 7, 2025 13:09
Our values are `uint8_t`, so we can get the median somewhat faster
than `nth_element`.

```
Comparing build-reld-master/palette_blending_benchmark to build-reld/palette_blending_benchmark
Benchmark                                              Time             CPU      Time Old      Time New       CPU Old       CPU New
-----------------------------------------------------------------------------------------------------------------------------------
BM_GenerateBlendedLookupTable_pvalue                 0.0002          0.0002      U Test, Repetitions: 10 vs 10
BM_GenerateBlendedLookupTable_mean                  -0.0198         -0.0198       2272848       2227790       2270291       2225348
BM_GenerateBlendedLookupTable_median                -0.0199         -0.0199       2272884       2227649       2270323       2225212
BM_GenerateBlendedLookupTable_stddev                +0.4575         +0.6710           536           781           396           661
BM_GenerateBlendedLookupTable_cv                    +0.4870         +0.7047             0             0             0             0
OVERALL_GEOMEAN                                     -0.0198         -0.0198             0             0             0             0
```
@glebm
glebm merged commit 4b3385c into diasurgical:master Jun 7, 2025
24 checks passed
@glebm
glebm deleted the kd-median branch June 7, 2025 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants