Skip to content
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

Update mult #66

Merged
merged 4 commits into from
Aug 23, 2023
Merged

Update mult #66

merged 4 commits into from
Aug 23, 2023

Conversation

weymouth
Copy link
Collaborator

Consolidate mult routine. Less code to maintain (mess-up) and should be a tiny bit faster. Could you do a benchmark before we merge @b-fg?

@codecov
Copy link

codecov bot commented Jun 26, 2023

Codecov Report

Merging #66 (cc772d9) into master (d6c58b1) will decrease coverage by 0.15%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #66      +/-   ##
==========================================
- Coverage   93.97%   93.83%   -0.15%     
==========================================
  Files           8        8              
  Lines         382      389       +7     
==========================================
+ Hits          359      365       +6     
- Misses         23       24       +1     
Impacted Files Coverage Δ
src/Poisson.jl 100.00% <100.00%> (ø)

... and 2 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@b-fg
Copy link
Member

b-fg commented Jun 26, 2023

Will do, but I am only available after Tuesday next week, sorry!
I will put up a reminder to myself :)

@weymouth
Copy link
Collaborator Author

weymouth commented Jun 26, 2023 via email

@b-fg
Copy link
Member

b-fg commented Jul 6, 2023

I have remade the benchmarks with Julia 1.9.2, for the serial 7c6b397, master, and this branch (multi-threading and GPU). Interestingly, the old serial results are much slower than the current results, and I have tested both Julia 1.8.5 and 1.9.2 since I am unsure what version I used previously. So now the speedups are not as prominent. I do not know what has changed honestly. Also, running the serial cases with v1.8.5 or v1.9.2 changes the results significantly (1.8.5 is two times faster than 1.9.2 wtf! I may need to redo this test to be 100% sure though). On the other hand, this PR does not affect the speedups w.r.t. master so it is okay to merge.

Results below contain columns with: Speedups: n | routine | CPU | GPU.

TGV

update_mult v1.9.2 vs old serial results

n=5 |  sim_step! | 003.36 | 004.43
n=6 |  sim_step! | 007.32 | 032.41
n=7 |  sim_step! | 008.37 | 061.86
n=8 |  sim_step! | 009.48 | 077.44

master v1.9.2 vs old serial results

n=5 |  sim_step! | 003.27 | 004.53
n=6 |  sim_step! | 001.13 | 030.18
n=7 |  sim_step! | 008.13 | 063.90
n=8 |  sim_step! | 009.39 | 077.55

update_mult v1.9.2 vs serial results v1.9.2

n=5 |  sim_step! | 001.11 | 001.46
n=6 |  sim_step! | 002.38 | 010.53
n=7 |  sim_step! | 002.96 | 021.89
n=8 |  sim_step! | 003.40 | 027.78

master v1.9.2 vs serial results v1.9.2

n=5 |  sim_step! | 001.08 | 001.49
n=6 |  sim_step! | 000.37 | 009.80
n=7 |  sim_step! | 002.88 | 022.61
n=8 |  sim_step! | 003.37 | 027.81

update_mult v1.9.2 vs serial results v1.8.5

n=5 |  sim_step! | 000.63 | 000.83
n=6 |  sim_step! | 001.55 | 006.84
n=7 |  sim_step! | 001.67 | 012.35
n=8 |  sim_step! | 001.90 | 015.49

master v1.9.2 vs serial results v1.8.5

n=5 |  sim_step! | 000.61 | 000.85
n=6 |  sim_step! | 000.24 | 006.37
n=7 |  sim_step! | 001.62 | 012.76
n=8 |  sim_step! | 001.88 | 015.52

Donut

update_mult v1.9.2 vs old serial results

n=4 |  sim_step! | 002.08 | 002.01
n=5 |  sim_step! | 015.84 | 025.00
n=6 |  sim_step! | 021.77 | 100.17
n=7 |  sim_step! | 023.06 | 188.89

master v1.9.2 vs old serial results

n=4 |  sim_step! | 001.60 | 001.84
n=5 |  sim_step! | 015.53 | 022.36
n=6 |  sim_step! | 022.27 | 096.64
n=7 |  sim_step! | 023.04 | 191.30

update_mult v1.9.2 vs serial results v1.9.2

n=4 |  sim_step! | 000.64 | 000.62
n=5 |  sim_step! | 005.14 | 008.11
n=6 |  sim_step! | 007.12 | 032.75
n=7 |  sim_step! | 007.61 | 062.35

master v1.9.2 vs serial results v1.9.2

n=4 |  sim_step! | 000.49 | 000.57
n=5 |  sim_step! | 005.04 | 007.25
n=6 |  sim_step! | 007.28 | 031.60
n=7 |  sim_step! | 007.60 | 063.15

update_mult v1.9.2 vs serial results v1.8.5

n=4 |  sim_step! | 000.40 | 000.38
n=5 |  sim_step! | 002.86 | 004.51
n=6 |  sim_step! | 004.25 | 019.54
n=7 |  sim_step! | 004.46 | 036.54

master v1.9.2 vs serial results v1.8.5

n=4 |  sim_step! | 000.30 | 000.35
n=5 |  sim_step! | 002.80 | 004.03
n=6 |  sim_step! | 004.35 | 018.86
n=7 |  sim_step! | 004.46 | 037.00

--
PS: Currently, this is all very manual, so we would need to automate it a bit. Maybe when we start using a GPU in the CI it would be a good time to do so.

@b-fg
Copy link
Member

b-fg commented Jul 6, 2023

I have also added a new tag for the serial code before the GPU porting: v0.2.5

@weymouth
Copy link
Collaborator Author

weymouth commented Jul 6, 2023 via email

@weymouth weymouth merged commit da55d7a into master Aug 23, 2023
13 of 14 checks passed
@weymouth weymouth deleted the update_mult branch August 23, 2023 14:37
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