ginkgo icon indicating copy to clipboard operation
ginkgo copied to clipboard

Dpcpp port jacobi

Open yhmtsai opened this issue 3 years ago • 2 comments

This PR ports the Jacobi to dpcpp including scaler and adaptive-block.

Currently, dpcpp can not use different subgroup size inside the kernel, so we do not have the concept, which handles several groups in warp and they share the same precision(that is, all blocks need to be isolated). there are two part affected by this.

  • the constructor from max_block_size: the constructor takes MAX_SIZE/max_block_size as the group size. we need to set the max_block_size as config::warp_size such that group_size = 1 and it will give the same result as reference.
  • only generate the 32 kernel It should only affect the block-jacobi generation with auto-detect (TODO: check)

TODO

  • [x] merge #928 #924
  • [ ] check the adaptive-block can be done without changing subgroup size
  • [x] CPU resource issue
  • [ ] fix format_header for handling the generated header from cmake

yhmtsai avatar Nov 25 '21 13:11 yhmtsai

Error: The following files need to be formatted:

dpcpp/preconditioner/jacobi_common.hpp.in

You can find a formatting patch under Artifacts here or run format! if you have write access to Ginkgo

ginkgo-bot avatar Sep 01 '22 13:09 ginkgo-bot

Error: The following files need to be formatted:

dpcpp/preconditioner/jacobi_advanced_apply_instantiate.inc.dp.cpp
dpcpp/preconditioner/jacobi_advanced_apply_kernel.dp.cpp
dpcpp/preconditioner/jacobi_generate_instantiate.inc.dp.cpp
dpcpp/preconditioner/jacobi_generate_kernel.dp.cpp
dpcpp/preconditioner/jacobi_kernels.dp.cpp
dpcpp/preconditioner/jacobi_simple_apply_instantiate.inc.dp.cpp
dpcpp/preconditioner/jacobi_simple_apply_kernel.dp.cpp

You can find a formatting patch under Artifacts here or run format! if you have write access to Ginkgo

ginkgo-bot avatar Oct 30 '22 17:10 ginkgo-bot

Codecov Report

Base: 90.90% // Head: 90.90% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (ce70658) compared to base (a40e4cd). Patch coverage: 92.85% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #929   +/-   ##
========================================
  Coverage    90.90%   90.90%           
========================================
  Files          508      508           
  Lines        44291    44293    +2     
========================================
+ Hits         40261    40263    +2     
  Misses        4030     4030           
Impacted Files Coverage Δ
core/preconditioner/jacobi.cpp 95.36% <ø> (ø)
core/preconditioner/jacobi_utils.hpp 67.50% <87.50%> (-0.80%) :arrow_down:
omp/preconditioner/jacobi_kernels.cpp 94.85% <100.00%> (+0.05%) :arrow_up:
reference/preconditioner/jacobi_kernels.cpp 99.26% <100.00%> (+<0.01%) :arrow_up:
reference/base/index_set_kernels.cpp 94.11% <0.00%> (-0.09%) :arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

codecov[bot] avatar Oct 30 '22 21:10 codecov[bot]