[gmx-developers] Difference between kernels
pall.szilard at gmail.com
Tue Nov 1 15:16:32 CET 2016
On Tue, Nov 1, 2016 at 12:00 AM, Millad Ghane <mghane at cs.uh.edu> wrote:
> Hi all,
> I have two questions regarding the kernels:
> 1- What is the difference between 4x4 and 8x8x8 kernels?
> (Does 4x4 means a 4 by 4 square of 16 particles and 8x8x8 means an 8
> by 8 by 8 cube of 512 particles?)
NxM means that the kernels compute NxM non-bonded interactions between
a group of N and M particles in the inner loop (1x1 being the
traditional verlet list algorithm).
Have you checked out the publicaitons on the topic?
> 2- What is the difference between PlainC and GPU/SIMD codes?
The target, "PlainC" is for reference, the GPU and CPU SIMD kernels
are for performance.
> I got that
> plainC codes are focusing on running the computations on merely CPUs.
Not only, see above.
> my question revolves around the fact that GPU/SIMD versions have some extra
> kernels that I do not see in the plainC versions (like
> nbnxn_kernel_ElecRF_VdwLJ_F_ref, nbnxn_kernel_ElecRF_VdwLJFsw_F_ref, ...).
Those are the SIMD reference kernels (as the corresponding header
briefly notes, docs are indeed sparse) and implement the same SIMD
operations as the arch-specific kernels that use intrinsics, but
instead with with C[++] code. These are mainly intended for testing,
but if you want to run on an unsupported architecture, they'll be
faster than the plain C kernels.
> In other terms, my question is: is the output and functionality of
> plainC versions equivalent to non-plainC version? What is the difference
> between plainC and non-plainC versions of the kernel?
Output: same. The functionality has been covered above, I guess.
The main functional difference is performance, but it depends what you
want to accomplish.
> I would really appreciate it if you help me on these questions.
> Best Regards,
> Gromacs Developers mailing list
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers or
> send a mail to gmx-developers-request at gromacs.org.
More information about the gromacs.org_gmx-developers