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