Conversation
Polar Signals Profiling ResultsLatest Run
Previous Runs (2)
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals ProfilingSummary
Detailed Results Table
|
Benchmarks: FineWeb NVMeSummary
Detailed Results Table
|
Benchmarks: TPC-H SF=10 on NVMESummary
Detailed Results Table
|
Benchmarks: Clickbench on NVMESummary
Detailed Results Table
|
| let v: I = v.as_(); | ||
| sum = CheckedAdd::checked_add(&sum, &v)?; | ||
| } | ||
| let v: I = v.as_() * valid.as_(); |
There was a problem hiding this comment.
Instead of * by 0 use bitwise and with a bool or T?
There was a problem hiding this comment.
it just seems like more work, because it needs to be with T::MAX or 0 instead of 0/1.
There was a problem hiding this comment.
not even MAX, just all 1
There was a problem hiding this comment.
& is much cheeper than *. I think the compiler will work it our since there will be a zext u1 to uX, so it know the value is 0/1
There was a problem hiding this comment.
there's no BitAnd for uX
Benchmarks: TPC-DS SF=1 on NVMESummary
Detailed Results Table
|
Benchmarks: TPC-H SF=1 on S3Summary
Detailed Results Table
|
Benchmarks: FineWeb S3Summary
Detailed Results Table
|
Benchmarks: TPC-H SF=1 on NVMESummary
Detailed Results Table
|
Benchmarks: Statistical and Population GeneticsSummary
Detailed Results Table
|
Benchmarks: TPC-H SF=10 on S3Summary
Detailed Results Table
|
Benchmarks: Random AccessSummary
Detailed Results Table
|
| } | ||
| let v: I = v.as_() * valid.as_(); | ||
|
|
||
| sum = CheckedAdd::checked_add(&sum, &v)?; |
There was a problem hiding this comment.
There is still a branch here tho?
There was a problem hiding this comment.
one branch we can't avoid as long as we only have checked arithmetic
Benchmarks: CompressionSummary
Detailed Results Table
|
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
4e511cd to
98fbd7a
Compare
Merging this PR will improve performance by 10.87%
Performance Changes
Comparing Footnotes
|
Summary
Just noticed this code path while refactoring something else, and figured this is better.
I think the trait bounds could be made nicer, but I'll leave that to a bigger refactor.