I am trying to understand the way that GPU kernels are called. For example, I want to know where in the code, the kernel k_charmm_long
is called. As I grep that word, I see the following implementation in ./lib/gpu/lal_charmm_long.cu
__kernel void k_charmm_long...
and a call like this:
success=this->init_atomic(nlocal,nall,max_nbors,maxspecial,cell_size,gpu_split,
_screen,charmm_long,"k_charmm_long");
in ./lib/gpu/lal_charmm_long.cpp
Is that correct? I wonder how grid and block sizes are passed to the kernel with the traditional syntax like k_charmm_long<<<g, b>>>()
? I want to know that in order to inject some profiling calls before and after kernel launch.
Any idea about that?