-
Notifications
You must be signed in to change notification settings - Fork 269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Benchmarks for upgradeable loader instructions #3659
Conversation
36963bf
to
697d8ae
Compare
Looks good on my side. Perhaps @Lichtso may want to have a look? |
Would like to wait until the RBPF bump, which comes with SBPFv3 test programs: That could change the measured timings and thus the relevant CU costs going forward. |
It has been a whole major release of Agave since the last RBPF release, so there is a lot of changes accumulated in that. Thus the benchmarks are kind of meaningless with the outdated version. |
697d8ae
to
94caa5f
Compare
Added |
94caa5f
to
e1a381b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great, can you also post the bench result if not too much trouble?
let mut file = File::open("test_elfs/out/noop_aligned.so").expect("file open failed"); | ||
let mut elf_orig = Vec::new(); | ||
file.read_to_end(&mut elf_orig).unwrap(); | ||
let mut file = File::open("test_elfs/out/noop_unaligned.so").expect("file open failed"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do these elf files need to be added under benches
folder?
If the benchmarking mechanism is reasonable, we can still merge this PR, then run it again after RBPFv3? |
@Lichtso what about merging this PR and then run it again after RBPFv3 as @tao-stones suggested? |
The PR was merged, so this one is no longer blocked. |
e1a381b
to
4808865
Compare
please approve this one |
These benchmarks are fine:
However, these instructions:
Are completely dependent on the program that is being verified and the results might vary a lot. I would prefer if we split them in a separate PR and further discuss our options there. |
Good call to discuss these instructions separately. Think out loud here, are they being planned to migrate to bpf? |
Probably better to extract removal of preexisting serialization bench into a separate PR, but instead of removal we can modify it to use Critirion instead of nightly (1). So there is a chain of PRs: |
4808865
to
10eaf85
Compare
@Lichtso updated PR, please review |
Problem
Part of #3364, to benchmark each
loader
instructions to determine their static CU consumption.This PR lacks 1 instruction:
DeployWithMaxDataLen
because whatever I tried it never returnsOk
. I tried to create a test for this some experiments with a program test #3759 -- also no success.Summary of Changes
add benches for each instruction, aiming to run through their happy-path.
Bmk run results
Machine: 48x AMD EPYC 7502P 32-Core Processor