ECP-WarpX / impactx

high-performance modeling of beam dynamics in particle accelerators with collective effects
https://impactx.readthedocs.io
Other
27 stars 20 forks source link

Large Kernels: Use `AMREX_NO_INLINE` #532

Open ax3l opened 8 months ago

ax3l commented 8 months ago

In ROCm compilers as of early 2024, the compiler force inlines everything.

While generally nice, this can be problematic for very large kernels in both compile and runtime, if we actually want to enforce a function call and jump.

We should investigate if we have places like this, some of the elements using symplectic integrators come to mind for some of the larger runtime combinations, where we want to add a AMREX_NO_INLINE to prevent this.

To be evaluated. Thanks to @zingale for bringing this up.

zingale commented 8 months ago

thanks goes to @yut23 -- he figured it out