-
Notifications
You must be signed in to change notification settings - Fork 50
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
Queues: benchmark implementations against each other #2276
Conversation
- Setup flit install - Tweak action to install queues pkg - Run test suite with runt
- alter CI to run gen script before runt tests - keep tests/binheap/binheap_test.{data, expect} (they're small)
- seperate pkg install and data gen into different jobs
- fix SDN tests - make binheap tests run
- also tweak calyx-py case test
Hi @polybeandip, thanks for getting this going! Since you are knee deep in this stuff, I would like to tack on a quick request that should be easy to handle. @parthsarkar17 is interested in adding some queue-ey stuff to his benchmarking suite that optimize FSMs and such. Could you please pass him designs for one or two of our more complicated tree schedulers? For each design, he'll need a .futil file, a .data file, and a .expect file. Some candidates that come to mind:
|
- setup script for generating cycles counts: cycles.sh - report cycles counts in cycles.txt - tweak clean_test_data.sh to remove binheap/round_robin and binheap/strict tests
3ad5253
to
999895a
Compare
UPDATE on our benchmarks
For now, I've also reported this data in
It looks like @csziklai's PIFOs do about about |
!! Please tell the channel! |
This sounds awesome but I would caution against celebrating the numbers too much without synthesis results. Something that is takes 1,000,000 cycles at 100MHz is still way faster than something that take 100,000 cycles at 1MHz. |
Agreed! Synthesis results are coming up shortly |
UPDATE on our synthesis results
for all our queues. Notably, this means our results ( @anshumanmohan I think it would be odd to commit |
04f8421
to
edcb4f8
Compare
Thanks for running synthesis @polybeandip! The frequency number you want to report is going to be determined using "worst_slack". You can calculate the best frequency using |
Ah, perfect! I'll crunch those numbers soon |
Agreed, thank you! |
More graphs, this time using @rachitnigam's suggestion to compute total time spent on our workload. This way, we account for difference in clock speed. |
@polybeandip so @ayakayorihiro has the same request as Parth! Would you mind sending her the same things? |
a1d5b7a
to
ac1b3e9
Compare
- move to discussion cucapra/packet-scheduling#60
ac1b3e9
to
d4163d8
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.
Very cool stuff, and thanks for leading our foray into real benchmarking! I have a couple notes, one of which I will seriously request, but otherwise I have reviewed to learn!
b4f6c03
to
5a0c162
Compare
5a0c162
to
5406ab6
Compare
Terrific! So this is ready to merge, once you refactor the underlying issue and link this PR to the underlying issue. Go for it, no need for another review from me |
Okay! I'm still a little unsure if I have the green light to make the tweak I did to |
Yeah! I replied just below. The comment starting with “I understand now. For completeness…”. Green light! |
Closes #2221
Changes:
strict
andround_robin
scheduling transactions viastable_binheap
generate_name
inComponentBuilder.case
; this way, there are less conflicts when a component uses multiple casescase
testgen_test_data.sh
to copyround_robin
andstrict
data files intotests/binheap/
clean_test_data.sh
purge data files intests/binheap/round_robin
andtests/binheap/strict
runt.toml
test our new queuescycles.sh
to generate cycles counts for all testsresources.sh
to generate synthesis results for all tests