Openacc phase 2 - #734
Conversation
| !here update only those initialized in the init_tracers. (values, valuesAB, edge_up_dn_grad, ...) | ||
| !$ACC UPDATE DEVICE(tracers%data(tr_num)%values, tracers%data(tr_num)%valuesAB) & | ||
| !$ACC DEVICE(tracers%work%edge_up_dn_grad) !!& | ||
| !!$ACC UPDATE DEVICE(tracers%data(tr_num)%values, tracers%data(tr_num)%valuesAB, tracers%data(tr_num)%valuesold) |
There was a problem hiding this comment.
is this 227 meant to be comment?
There was a problem hiding this comment.
I opened this while phase1 benchmarks are running. I branched it out from Phase1. That's why it's commented out. But after my first commit, we can start the conversation. Please ignore this PR for now.
|
Can I select "Resolve" for your reviews @suvarchal ? |
Benchmarks for Phase 1 & Phase 2
Due to the usage of many if loops in the cpu code, there is a massive reduction in the warp occupancy rate, which shot up the computation time. |
|
@suvarchal, Can you comment on the viability of a merge here. Should we persue this, or will this flow into further efforts in other ways? |
|
May flow into further efforts, making whole model run on GPU is still in plans. |
diff_tracers_alesubroutine run completely on the GPUdiff_tracers_alediff_part_hor_redidiff_ver_part_expl_alediff_ver_part_redi_expldiff_ver_part_impl_alediff_part_bh(These are not touched as they are part of
recom)diff_ver_recom_explget_seawater_viscocityget_particle_densityballastver_sinking_recomver_sinking_recom_benthos