<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br clear="all"><div><div dir="ltr" class="gmail_signature"><br></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 25, 2019 at 2:43 PM Mahmood Naderan <<a href="mailto:nt_mahmood@yahoo.com">nt_mahmood@yahoo.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail-m_-7076311669053638246ydp470688b9yahoo-style-wrap" style="font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px"><div><div><span>> <span>Selection happens at runtime, see in nbnxn_cuda.cu:select_nbnxn_kernel().</span></span></div><div><span><span><br></span></span></div><div><span><span>Yes I see that.</span></span></div><div><span><span><br></span></span><div><br></div><span><span></span></span></div><div><span><br></span></div><div><span><br></span></div><div><span>> Try "git grep LJComb".</span></div><div><span><br></span></div><div><span>I am trying to find that in 2018.2 release that I have currently.</span></div><div><span><br></span></div><div><span><span>mahmood@mpc:/opt/gromacs-2018.2/src/gromacs/mdlib/nbnxn_cuda$ grep -i LJ_Comb nbnxn_cuda_kernel.cuh<br>#if defined LJ_COMB_GEOM || defined LJ_COMB_LB<br>#define LJ_COMB<br>#ifndef LJ_COMB<br> const float2 *lj_comb = atdat.lj_comb;<br>#ifndef LJ_COMB<br>#if !defined LJ_COMB_LB || defined CALC_ENERGIES<br>#ifdef LJ_COMB_LB<br>#ifndef LJ_COMB<br>#ifndef LJ_COMB<br> ljcpib[tidxj * c_clSize + tidxi] = lj_comb[ai];<br>#ifndef LJ_COMB<br> ljcp_j = lj_comb[aj];<br>#ifndef LJ_COMB<br>#ifdef LJ_COMB_GEOM<br>#endif /* LJ_COMB_GEOM */<br>#endif /* LJ_COMB */<br>#if !defined LJ_COMB_LB || defined CALC_ENERGIES<br>#else /* !LJ_COMB_LB || CALC_ENERGIES */<br>#endif /* !LJ_COMB_LB || CALC_ENERGIES */<br>#undef LJ_COMB<br>mahmood@mpc:/opt/gromacs-2018.2/src/gromacs/mdlib/nbnxn_cuda$ grep -i LJComb nbnxn_cuda_kernel.cuh<br></span></span><div><span><span>mahmood@mpc:/opt/gromacs-2018.2/src/gromacs/mdlib/nbnxn_cuda$</span></span></div></div></div></div></div></blockquote><div><br></div><div>As suggested before, grep the source repo, not that one file; or grep the right file -- the one I recommended looking at in my previous email (src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_kernels.cuh).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail-m_-7076311669053638246ydp470688b9yahoo-style-wrap" style="font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px"><div><div><div><span><span></span></span><br></div><div><br></div><div><br></div><div><br></div><div>I expect that <span><span><span>VdwLJCombLB_F</span></span></span> means that the statements that must be executed in <span>nbnxn_cuda_kernel.cuh, are those that are used in defined macros.</span></div></div></div></div></div></blockquote><div><br></div><div>Correct. In fact the "VdwLJCombLB" kenrnels will not even have e.g. VdwLJFsw (i.e. LJ force switch) code included in them.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="gmail-m_-7076311669053638246ydp470688b9yahoo-style-wrap" style="font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px"><div><div><div><span><br></span></div><div><span>For example, since I see Vdw, the following code must be executed</span></div><div><span><br></span></div><div><span><span>#ifdef VDW_CUTOFF_CHECK<br> /* Separate VDW cut-off check to enable twin-range cut-offs<br> * (rvdw < rcoulomb <= rlist)<br> */<br> vdw_in_range = (r2 < rvdw_sq) ? 1.0f : 0.0f;<br> F_invr *= vdw_in_range;<br><br></span></span><div><br></div><div><br></div><div>Also, since LJCombLB is seen, the following code must be executed<br></div><div><br></div><div><br></div><div><span>#else /* !LJ_COMB_LB || CALC_ENERGIES */<br> float sig_r = sigma*inv_r;<br> float sig_r2 = sig_r*sig_r;<br> float sig_r6 = sig_r2*sig_r2*sig_r2;<br></span></div></div></div><div><br></div><div><br></div><div><br></div><div><br></div><div>And so on...</div><div><br></div><div>Please let me know if I still haven't understand that.</div><br><div><br></div><div><br></div><div class="gmail-m_-7076311669053638246ydp470688b9signature">Regards,<br>Mahmood</div></div>
<div><br></div></div><div><br></div></div></blockquote></div></div></div></div></div>