libxsmm MNK, SSE and other inconsistencies

Hans Pabst hf.p... at gmail.com
Wed Jan 20 16:22:11 UTC 2016


Here is the posted issue <https://github.com/hfp/libxsmm/issues/59>as a 
reference for others in this forum.

-Hans

Am Montag, 18. Januar 2016 16:32:47 UTC+1 schrieb Johannes Wagner:
>
> Hi Alfio,
> thanks for your reply. I also opted for the AVX setting. I just thought 
> that the this libxsmm cp2k flag is somehow aligned with the cp2k needs. 
> I'll also post this at their git page.
>
> On Saturday, January 16, 2016 at 2:41:21 PM UTC+1, Alfio Lazzaro wrote:
>>
>> Hi Johannes,
>> the MNK values are not the same, libxsmm produces less kernels (probably 
>> related to specific benchmarks used by libxsmm developers). I cannot speak 
>> about LIBXSMM (you should ask in their git forum), however I would suggest 
>> to use what is in the toolchain for MNK, which is the most general case for 
>> CP2K kernels. Concerning the other parameters, depending on your system, I 
>> would suggest to change SSE in AVX=1 (sandybridge/ivydridge) or 2 
>> (haswell/broadwell) (AVX=3 is Intel KNL, so it doesn't not exist yet).
>>
>> Alfio
>>
>>
>>
>>
>> Il giorno venerdì 15 gennaio 2016 16:33:11 UTC+1, Johannes Wagner ha 
>> scritto:
>>>
>>> hey all,
>>> I have a question regarding installing libxsmm. If downloaded from git (
>>> https://github.com/hfp/libxsmm/archive/1.1.1.tar.gz), the make.sh file 
>>> includes an -cp2k flag that sets MNK options to:
>>>
>>>  MNK=" \
>>>
>>>     23, \
>>>
>>>     6, \
>>>
>>>     14 16 29, \
>>>
>>>     14 32 29, \
>>>
>>>     5 32 13 24 26, \
>>>
>>>     9 32 22, \
>>>
>>>     64, \
>>>
>>>     78, \
>>>
>>>     16 29 55, \
>>>
>>>     32 29 55, \
>>>
>>>     12, \
>>>
>>>     4 5 7 9 13 25 26 28 32 45"
>>>
>>>
>>> along with 
>>>
>>> ALIGNED_LOADS=1 ALIGNED_STORES=1 PRECISION=2 SYM=1 SSE=3
>>>
>>>
>>> but the cp2k source's toolchain installer sets it to 
>>>
>>>
>>> MNK="1 4 5 6 8 9 13 16 17 22 23 24 26 32"
>>>
>>>
>>> along with
>>>
>>> SSE=1 JIT=1 PREFETCH=1
>>>
>>>
>>> Now why is this inconsistent? Which is the "correct" MNK options, or 
>>> does the former comprise all cases from the latter? And the option SSE=3 
>>> doesn't even exist according to the Makefile.inc. Only SSE=1 or AVX=1|2|3 
>>> (which at least is sort of what the libxsmm.pdf in the libxsmm 
>>> documentation folder says).
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cp2k.org/archives/cp2k-user/attachments/20160120/bc60ec0a/attachment.htm>


More information about the CP2K-user mailing list