<div dir="ltr">Hello Dominik,<br><br>I just wanted to add to Nico's nice explanation, and give some details about what the various libraries are meant for:<br><ul><li><b>libxsmm</b>: LIBXSMM's main library, and typically sufficient to link with. <b>CP2K+LIBXSMM needs to link against libxsmm.a</b>.</li><li><b>libxsmmf</b>: only needed for FORTRAN code, which uses the libxsmm.mod file. <b>CP2K+LIBXSMM needs to link against libxsmmf.a</b>.</li><li>libxsmmext: contains functions with internal OpenMP-based threading. CP2K+LIBXSMM uses OpenMP-threads by itself (xSMP builds), and there is <b>no need</b> to link against libxsmmext.a.</li><li>libxsmmgen: contains LIBXSMM's code generator (backend), and the 
library can be used if only the low-level code generator is used. This 
library is also used to organize LIBXSMM's code, and is actually 
contained by libxsmm.a. There is <b>no need</b> for CP2K+LIBXSMM to link against libxsmmgen.a.</li><li>libxsmmnoblas: dummy library to deliver BLAS symbols if it is certain that LIBXSMM does not fallback to BLAS. CP2K+LIBXSMM should not link against libxsmmnoblas.a, and there is <b>no need</b>.</li></ul><p>Btw, in case of using Intel Compiler the Linux-x86-64-intel.* ARCH file(s) can be used even with non-Intel branch of CP2K by copying these files into the arch-folder (I think Nico pointed to Linux-x86-64-intel.x). In case of these "special" arch files there is the choice to intercept *all* xGEMM calls with LIBXSMM, and filter-out some (minor) additional performance opportunity. On BigCore this is definitely negligible, but perhaps beneficial on KNL. However this "choice" is sort of experimental, and can be enabled with LIBXSMM=2. For example:<br></p><p></p><p>$ make ARCH=Linux-x86-64-intel VERSION=psmp LIBXSMM=2</p><p>To also rely on LIBXSMM's transpose routine in some cases, one may use LIBXSMM=3. However, the latter requires also the Intel-branch of CP2K. <br></p><p><br></p><p>Hans<br></p><br><br>Am Dienstag, 27. Juni 2017 14:25:51 UTC+2 schrieb Dominik Mierzejewski:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hello,
<br>
<br>On Monday, 26 June 2017 at 07:27, Nico Holmberg wrote:
<br>> Hi,
<br>> 
<br>> You seem to be missing the library flags for LIBXSMM. I have set the 
<br>> following flags (gfortran)
<br>> 
<br>> LIBXSMM_LIB=/homeappl/home/<wbr>nholmber/appl_sisu/lib/<wbr>libxsmm-1.7.1/lib
<br>> LIBXSMM_INC=/homeappl/home/<wbr>nholmber/appl_sisu/lib/<wbr>libxsmm-1.7.1/include
<br>> 
<br>> DFLAGS  += -D__LIBXSMM
<br>> FCFLAGS += -I$(LIBXSMM_INC)
<br>> LDFLAGS  = $(FCFLAGS)
<br>> LIBS     += -L$(LIBXSMM_LIB) -lxsmm -lxsmmext -lxsmmgen -lxsmmf
<br>
<br>Out of curiosity, why are you adding -lxsmmext and -lxsmmgen? They don't
<br>seem to be required by libxsmm or libxsmmf.
<br>
<br>Regards,
<br>Dominik
<br>
<br>-- 
<br>Fedora <a href="http://fedoraproject.org/wiki/User:Rathann" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Ffedoraproject.org%2Fwiki%2FUser%3ARathann\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEVbJI8uIQZqQ5a2A32BKj2MsEvQg';return true;" onclick="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Ffedoraproject.org%2Fwiki%2FUser%3ARathann\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEVbJI8uIQZqQ5a2A32BKj2MsEvQg';return true;">http://fedoraproject.org/wiki/<wbr>User:Rathann</a>
<br>RPMFusion <a href="http://rpmfusion.org" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Frpmfusion.org\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGuXI6q1gR3iH1rL6kQDvuA2gqJwQ';return true;" onclick="this.href='http://www.google.com/url?q\x3dhttp%3A%2F%2Frpmfusion.org\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGuXI6q1gR3iH1rL6kQDvuA2gqJwQ';return true;">http://rpmfusion.org</a>
<br>"Faith manages."
<br>        -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"
<br></blockquote></div>