compdyn / partmc

Particle-resolved stochastic atmospheric aerosol model
http://lagrange.mechse.illinois.edu/partmc/
GNU General Public License v2.0
28 stars 16 forks source link

GPU: Crash on aqueous, HL & SIMPOL phase transfer reactions #95

Closed cguzman95 closed 4 years ago

cguzman95 commented 5 years ago

rxn_aqueous_equilibrium, rxn_HL_phase_transfer and rxn_SIMPOL_phase_transfer crash in rxn_calc_deriv_gpu

Investigating the issue on rxn_aqueous, strange things come out: uncommenting reverse rate calculation with state AND mass_frac_to_M avoid the crash, and accessing independently these variables does not crash. I guess is some related with all the registers allocated on GPU from the Defines, that makes access some memory crash.

[UPDATED]: All these functions had a lot of calculations when I discover the bug, but in recent versions, this computes has reduced, plus a simpler Jacobian implementation was added on maybe the bug is easier to identify. Check if the bug persists in recent versions.

cguzman95 commented 4 years ago

Update: aqueous working fine. Only left to execute on gpu HL & SIMPOL phase transfer. For the moment, these reactions will be computed on CPU. The reason is that they need use a lot of code and various functions between files to only compute calc_deriv. Since we will do modifications on this code (atleast for C++ on v2.0), and these reactions should have a low impact, I will wait until this modifications to adapt them on GPU. This should be re-studied only if in Monarch compute this reactions apart takes a lof of time