ELPA, libsmm and/or libxsmm. what is the best libraries combination?
Hans Pabst
hf.p... at gmail.com
Sun May 15 22:45:29 UTC 2016
Dear David,
let me answer your questions one by one (please also account for other
people's answers, which may be given below)
>>> If I understood correctly libxsmm make sense only on intel machine.
It makes a lot of sense on Intel CPUs in particular, and x86/64 in general.
I am rarely testing (occasionally) on non-Intel x86/64, but I have no idea
if performance exploits the full potential of the CPU (perhaps it does as
there is nothing in LIBXSMM, which is preventing this).
>>> Assuming this is the case, are libxsmm and libsmm complementary or they
do the same job?
If not downloaded, LIBSMM per-se does not exists as a library except if you
want to auto-tune LIBSMM yourself. The installer script downloads it from
https://www.cp2k.org/static/downloads/libsmm/, and the majority of kernels
in version "libsmm_dnn_haswell-2015-11-10.a" is taken from LIBXSMM (beside
of JIT, LIBXSMM supports to print C code with inline assembly, which can be
included into LIBSMM's auto-tuning). If you're running any of the kernels
included in "libsmm_dnn_haswell-2015-11-10.a" on Haswell, you do not miss
any performance opportunity. If you are running on anything other than
"Haswell" or "exotic" kernels which are not in
"libsmm_dnn_haswell-2015-11-10.a", you may want to use LIBXSMM.
>>> if they do the same things what is the best one?
Hard to say but let me try: LIBSMM is the default because it's the way it
worked and the way it works (rock-solid). LIBXSMM is certainly attractive
because anyone can build the library without auto-tuning effort, any kind
of kernel (whether it's uncommon or not) is "included" i.e. built on
demand, performance is very good and independent of the compiler used.
>>> I managed to have cp2k with ELPA, does it make any sense having cp2k
compiled with ELPA plus libsmm and/or libxsmm?
It does, and ELPA vs. LIB(X)SMM are completely independent choices. ELPA
covers functionality which is not covered by LIB(X)SMM. If you want
duality, the question is whether you want ELPA or ScaLAPACK, and I
recommend to use ELPA. Fortunately this decision is also not really
exclusive since ELPA only replaces some particular function from the
ScaLAPACK collection (some particular Eigenvalue solver).
>>> my guess here is that yes it does, is it true?
Yes, it does makes sense to use ELPA.
-Hans
Am Sonntag, 15. Mai 2016 17:44:10 UTC+2 schrieb David T:
>
> Dear All
>
> I've just started using cp2k I am not really expert in libraries I would
> like to have some opinions form developers and experts (both of cp2k and
> libraries).
>
>
> a) If I understood correctly libxsmm make sense only on intel machine.
> Assuming this is the case, are libxsmm and libsmm complementary or they do
> the same job?
>
> aa) if they do the same things what is the best one?
>
> b) I managed to have cp2k with ELPA, does it make any sense having cp2k
> compiled with ELPA plus libsmm and/or libxsmm?
> my guess here is that yes it does, is it true?
>
> Many thanks and apologies if my questions are silly
> Davide
>
> P.S. I know the best way it would be testing which I will do it, still
> having opinions from people more expert than you and sharing experience it
> is useful I think.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cp2k.org/archives/cp2k-user/attachments/20160515/6dec7e4b/attachment.htm>
More information about the CP2K-user
mailing list