WIP: Start GPU porting#278
Conversation
…_device__ lambda must allow its address to be taken
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #278 +/- ##
==========================================
+ Coverage 95.73% 95.77% +0.04%
==========================================
Files 79 79
Lines 8492 8575 +83
==========================================
+ Hits 8130 8213 +83
Misses 362 362 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@julianlitz |
Review left on unfinished modifications
…ntal dangling references
|
On v100 at aaec652: Details |
|
@julianlitz do you have any idea about this failure? GMGPolar/tests/DirectSolver/directSolver.cpp Line 1026 in f9810a6 I assume that GPU usage has reordered calculations to introduce rounding errors. However 1e-12 is fairly large for a floating-point error. I am not sure what the "HigherPrecision" in the test title refers to? |
|
In Give methods I also observed multiple times that reordering loops can cause these tests to fail by minor margins. e.g making 9,9e-12 to 1,1e-11 which fails the test. |
|
Especially if Across Origin is true since there is a lot precision loss at the boundary depending on the addition order. which is what you have here as welly |
|
@EmilyBourne High Precision refers to the fact that Rmin = 0.15 is quite big. Thats the reasons these 1e-11 errors can be reached in the first place. Otherwise they are in the range of 1e-7 for across origin. Thats because the 1/Rmin gets very large and the other contribution like TopRight are way smaller. |
|
@EmilyBourne It is not even necessarily the order of execution of the grid nodes. Loop vs. #pragma omp parallel for num_threads(1) even produced different results in my testing. I think this happens because the code gets compiled differently as the compiler chooses to add terms in different ways together. |

This PR is not ready to review but I want to check the cuda compiler output as the output on GPU is not verbose enough
Merge Request - GuideLine Checklist
Guideline to check code before resolve WIP and approval, respectively.
As many checkboxes as possible should be ticked.
Checks by code author:
Always to be checked:
If functions were changed or functionality was added:
If new functionality was added:
If new third party software is used:
If new mathematical methods or epidemiological terms are used:
Checks by code reviewer(s):