ginkgo
ginkgo copied to clipboard
Dpcpp port jacobi
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
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
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
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.