Question to Axel ...
Is really GPU so efficient ? I still have my doubts about its superiority
against the CPU ...
based on what?
whether a GPU based code or a CPU kernel is faster depends
a _lot_ on the boundary conditions. the problem with GPUs is
that one has to write code differently to take the maximum advantage
of the available resources on a GPU. perfect code for GPUs has to be
highly concurrent and overlap memory accesses with computation
in order to hide memory access latencies. if there is high arithmetic
complexity, like in manybody potentials, the potential for achieving
good acceleration is high. for other scenarios, especially with a
small number of atoms per GPU, you may even see deceleration.
if you want the absolute best performance and money is no
issue, then you will currently still be able to run LAMMPS
faster on an absolute scale, but even on those machines,
there will be more and more problems with the increase of
CPU cores per socket, that will require a different way of
programming to make efficient use of them and _tadaa_
most of the time, that is very similar to how you have to
program a GPU to use it well. so even if not everybody
benefits from it, it is very important to start the development
and testing early, so that everybody has access to a
mature implementation by the time, there is no more
A friend brought just a bunch of GPU processors and want to test the
efficiency. He wants to run my simulations of Nanowires using the EAM
potential, and he excels that thanks to the GPU its now feasible to run MD
simulations at time scales of microseconds ... i.e strain rates of the
that is ridiculous and the biggest problem with GPUs:
people who don't understand what they can and what
they cannot do. never ever trust any marketing material
from a vendor. there is always a way to show gigantic
acceleration, all you have to do is to use an example,
where the CPU version sucks. that being said. with
a smart setup of the hardware and the right application,
a speedup of one to two orders of magnitude is doable.
but that requires high-end GPU equipment. a low-end
laptop GPU with two multi-processors and slow memory,
will unlikely provide much acceleration if any, even though
it is technically capable to run the GPU code. but this is
like comparing a current x86_64 processor with an intel
10^-3 order . (or at least that is what i understood) . My humble opinion ,
is that game companies such as NVIDIA are paying the programmers alot of
money to make an effort and move the actual source code into the GPU .
on what do you base such a statement?
neither is nvidia "a game company", nor do i or people like
christian or mike get paid by nvidia to program and maintain
GPU accelerated code in lammps.
nvidia _does_ sponsor some developers with access to GPU
hardware and on occasion helps fostering GPU code development,
by having staff developers contribute know how and the occasional
subroutine or accelerated kernel and facilitates communication
between developer through a selection of means.
however, that does in no way constitute what you are
implying in your statement, so i ask you to please
provide proof or retract it.