[Pw_forum] A "relax" input runs on CPU (pw.x) but not on CPU-GPU (pw-gpu.x)
David Foster
davidfoster751 at yahoo.com
Mon Jun 23 17:59:18 CEST 2014
Dear Axel
I have some questions in this topic, too. Suppose we use a poor DP floating point performance GTX cards for QE-GPU. Does the codes in
GPU technology of nVIDIA (such as CUDA and ...) change the DP of QE to SP automatically? or program ended with error.
If it changes DP to SP automatically, users might get wrong results without any attention.
How about a full SP GPU card for full DP code? Does code run on it?
Regards
David Foster
Ph.D. Student of Chemistry
--------------------------------------------
On Sat, 6/21/14, Axel Kohlmeyer <akohlmey at gmail.com> wrote:
Subject: Re: [Pw_forum] A "relax" input runs on CPU (pw.x) but not on CPU-GPU (pw-gpu.x)
To: "PWSCF Forum" <pw_forum at pwscf.org>
Date: Saturday, June 21, 2014, 2:20 AM
On Sat, Jun 21, 2014 at 4:20 AM, Reza
Behjatmanesh-Ardakani
<reza_b_m_a at yahoo.com>
wrote:
> Dear Axel
> This was just a proposal. If I am right, Terachem code
can use gaming cards for GPU calculations (I saw some of its
authors' papers).
yes, but terachem was written from ground up with new
algorithms to
avoid loss of precision. in quantum mechanics this is
important, since
a lot of calculations depend on comparing large numbers of
equal sign
and magnitude and looking at the difference. about the only
part of a
plane wave DFT calculation that is "conservative" in terms
of
precision without a massive redesign are the FFTs. the loss
of
precision is fairly small when replacing double precision
FFTs with
single precision ones. for the many 3d-FFTs required, this
is
particularly beneficial when trying to scale out via MPI, as
this
reduces the amount of bytes that need to be sent and copied
around in
half and also reduces the strain on memory bandwidth.
> As you know, the main problem of GTX cards comes back
to two important things. One, single precision, and the
other lack of ECC.
ECC is a lesser issue. and it is not a problem of single
precision,
but lack of performance with double precision due to having
only a
fraction of double precision units. another issue is the
lack of RAM.
also you have to distinguish between different GTX cards. a
few of the
most high-end consumer cards *do* have the full set of
double
precision units and a large amount of RAM.
ECC is mostly relevant for people running a large number of
GPUs in a
supercomputer environment.
>
> It is not necessary to write a stand alone code. We can
test the QE-GPU with both TESLA and/or GTX and QE (cpu
only), and compare the outputs.
but it is pointless to run on a hardware that is not
competitive.
you'll have a hard time already to get a 2x speedup from
using a top
level tesla card vs. an all CPU run on a decent machine.
what would be
the point of having the GPU _decelerate_ your calculation?
in general, a lot of the GPU stuff is hype and
misinformation. the
following is a bit old, but still worth a read:
http://www.hpcwire.com/2011/12/13/ten_ways_to_fool_the_masses_when_giving_performance_results_on_gpus/
as a consequence of a very smart and successful PR strategy,
there is
now the impression that *any* kind of GPU will result in a
*massive*
speedup. even people with a laptop GPU with 2 SMs, no memory
bandwidth
are now expecting 100x speedups and more. however, except
for a few
corner cases and applications that are very well represented
on GPUs
(not very complex) and badly on a CPU, you will often get
more like a
2x-5x speedup in a "best effort" comparison of a well
equipped host
with a high-end GPU. in part, this situation has become
worse with
some choices made by nvidia hardware and software engineers.
while 5
years back, the difference between a consumer and a
computing GPU was
small, the consumer models have been systematically
"downgraded" (via
removing previously supported management features in the
driver and
having consumer cards be based on a simplified design that
mostly
makes them mid-level GPUs).
> I tested it for only one case (rutile 3*3*2 supercell),
and saw that the GTX output is similar to the CPU one.
>
> However, It is needed to test for different cases and
different clusters to be sure that the lack of ECC and
double precision has no effect on results.
sorry, this statement doesn't make any sense. it looks to
me, like you
need to spend some time learning what the technical
implications of
ECC and single-vs-double precision are (and the fact that it
is the
software that chooses which precision is used, not the
hardware)..
whether a card has ECC or not. broken memory is broken
memory. and if
it works, it works. so there is not much to test. if you
want to find
out, whether your GPU has broken or borderline memory, run
the GPU
memtest. it is much more effective at finding issues than
any other
application.
where ECC helps is for very long running calculations or
calculations
across a very large number of GPUs when a single bitflip can
render
the entire effort useless and result in a crash. in a dense
cluster
environment or badly cooled desktops, this is a high risk.
in a well
setup machine, it is less of a risk, but you have to keep in
mind that
running without ECC makes you "blind" for those errors. i
run a
cluster with a pile of Tesla GPUs and we have disabled ECC
since the
machines run very reliably due to some hacking around
restrictions
that nvidia engineers placed in their drivers.
https://sites.google.com/site/akohlmey/random-hacks/nvidia-gpu-coolness
we also run consumer level GPUs, particularly in the login
nodes,
since they work fine for development and don't cost as
outrageously
much as the tesla models. however, for development,
absolute
performance is a lesser concern.
> As Filippo said formerly for GTX cards, the output may
be not reproducible. However, I think due to the nature of
SCF algorithm, the code can be used at least
when you have memory corruption due to bad/overheated
memory, no SCF
algorithm will save you. if you go back 10 years when CPUs
didn't have
all those power management and automatic self-protection and
also
memory modules in desktop were often of very low quality,
people
experienced a lot of problems. "signal 11" and "segmentation
fault"
were a common topic in many mailing lists on scientific (or
other)
software that caused a high CPU load.
but the indication of broken memory was usually a crash due
to a
segfault or bad data corruption leading to a massive change
in numbers
and often NaNs. once you have a single NaN in your data, it
will
spread like a highly infective virus and render the
calculation
invalid.
a well set up consumer level GPU will run as reliable as a
tesla or
better, only you cannot tell since the nvidia tools will not
show you.
the main issue is performance and available memory.
> for VC-RELAX, RELAX, and SCF types of calculations with
GTX cards. Of course, it should be tested. Thank you for
your interest.
you are not making much sense here either. but if it makes
you feel
better to do those tests, don't let me discourage you.
sometimes
people learn the best this way.
axel.
> With the Best Regards
>
> Reza Behjatmanesh-Ardakani
> Associate Professor of Physical Chemistry
> Address:
> Department of Chemistry,
> School of Science,
> Payame Noor University (PNU),
> Ardakan,
> Yazd,
> Iran.
> E-mails:
> 1- reza_b_m_a at yahoo.com
(preferred),
> 2- behjatmanesh at pnu.ac.ir,
> 3- reza.b.m.a at gmail.com.
>
> --------------------------------------------
> On Fri, 6/20/14, Axel Kohlmeyer <akohlmey at gmail.com>
wrote:
>
> Subject: Re: [Pw_forum] A "relax" input runs on
CPU (pw.x) but not on CPU-GPU (pw-gpu.x)
> To: "PWSCF Forum" <pw_forum at pwscf.org>
> Date: Friday, June 20, 2014, 2:19 PM
>
> On Fri, Jun 20, 2014 at 4:22 AM, Reza
> Behjatmanesh-Ardakani
> <reza_b_m_a at yahoo.com>
> wrote:
> > Dear Filippo
> >
> > Due to the nature of QE which is iterative,
I think
> lack of ECC and even double precision floating
point in
> gaming cards (GTX) comparing to tesla cards
> >
> > is not serious problem for QE-GPU. Some
authors have
> checked this for AMBER molecular dynamics
simulation code.
> See following site:
>
> classical MD is a very different animal than what
you do
> with QE.
> errors due to single precision to some properties
in
> classical MD are
> huge with all single precision calculations. to
compute a
> force from a
> distance will not be much affected, but summing
up the force
> can
> already be a problem. "good" classical MD codes
usually
> employ a mixed
> precision approach, where only the accuracy
insensitive
> parts are done
> in single precision. for very large system, even
double
> precision can
> show significant floating point truncation
errors. usually
> you are
> dependent on error cancellation, too, i.e. when
you study a
> simple
> homogenous system (as it is quite common in those
tests).
>
>
> >
> > http://www.hpcwire.com/2014/03/13/ecc-performance-price-worth-gpus
> >
> >
> > and see the following paper:
> >
> >
> >
>
www.rosswalker.co.uk/papers/2014_03_ECC_AMBER_Paper_10.1002_cpe.3232.pdf
> >
> >
> >
> > I encourage the users of QE-GPU to test it
for QE, and
> report the difference on the site.
>
> it is a waste of time and effort. people have
done DFT and
> HF in
> (partial) single precision before and only if you
write a
> new code
> from scratch and have an extremely skilled
programmer, you
> will
> succeed. have a look at the terachem software out
of the
> group of todd
> martinez for example.
>
> axel.
>
> > PS: to be able to test the results for GTX
and TESLA,
> it is needed QE-GPU code to be run on GTX :-)
> >
> >
> > With the Best Regards
> >
> > Reza Behjatmanesh-Ardakani
> > Associate Professor of Physical
Chemistry
> > Address:
> > Department of Chemistry,
> > School of Science,
> > Payame Noor University (PNU),
> > Ardakan,
> > Yazd,
> > Iran.
> > E-mails:
> >
1- reza_b_m_a at yahoo.com
> (preferred),
> >
2- behjatmanesh at pnu.ac.ir,
> >
3- reza.b.m.a at gmail.com.
> >
_______________________________________________
> > Pw_forum mailing list
> > Pw_forum at pwscf.org
> > http://pwscf.org/mailman/listinfo/pw_forum
>
>
>
> --
> Dr. Axel Kohlmeyer akohlmey at gmail.com
> http://goo.gl/1wk0
> College of Science & Technology, Temple
University,
> Philadelphia PA, USA
> International Centre for Theoretical Physics,
Trieste.
> Italy.
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum
--
Dr. Axel Kohlmeyer akohlmey at gmail.com
http://goo.gl/1wk0
College of Science & Technology, Temple University,
Philadelphia PA, USA
International Centre for Theoretical Physics, Trieste.
Italy.
_______________________________________________
Pw_forum mailing list
Pw_forum at pwscf.org
http://pwscf.org/mailman/listinfo/pw_forum
More information about the users
mailing list