ELPA, libsmm and/or libxsmm. what is the best libraries combination?
Alfio Lazzaro
alfio.... at gmail.com
Mon May 16 11:14:35 UTC 2016
Dear David,
to be short, I would suggest to:
1) Use libxsmm, very fast to install and practical
2) Use ELPA
There are other libraries you can consider, like libint and libxc, that
this is another discussion...
Best regards,
Alfio
Il giorno lunedì 16 maggio 2016 00:45:30 UTC+2, Hans Pabst ha scritto:
>
> 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/20160516/687da237/attachment.htm>
More information about the CP2K-user
mailing list