|
|
|
|
|
# Introduction
|
|
|
|
|
|
Likwid is built using GNU make and Perl. Besides the Linux kernel and the standard C library, all required dependencies are shipped with the archive ([Lua](http://www.lua.org/) and [hwloc](http://www.open-mpi.org/projects/hwloc/)). It should build on any Linux distribution with a recent GCC or CLANG compiler and 2.6 or newer Linux kernel without any changes.
|
|
|
Likwid is built using GNU make and Perl. Besides the Linux kernel and the standard C library, all required dependencies are shipped with the archive ([Lua](http://www.lua.org/) and [hwloc](http://www.open-mpi.org/projects/hwloc/)) and [GOTCHA](https://github.com/LLNL/GOTCHA) (for NVIDIA GPU support, see [here](http://www.asd.de)). It should build on any Linux distribution with a recent GCC or CLANG compiler and 2.6 or newer Linux kernel without any changes.
|
|
|
|
|
|
There is one generic top level Makefile and one .mk configuration file for each
|
|
|
compiler (at the moment GCC, CLANG and ICC). Please note that we test LIKWID only with GCC. CLANG and ICC is only tested for basic functionality.
|
... | ... | @@ -10,6 +10,8 @@ There is one exception: If you want to use LIKWID on a Intel Xeon Phi card (KNC) |
|
|
to choose the MIC as Compiler in `config.mk`, which is based on Intel ICC compiler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Directory structure
|
|
|
|
|
|
All source files are in the *src* directory. All header files are located in
|
... | ... | @@ -73,6 +75,7 @@ Although we tried to minimize the external dependencies of LIKWID, some advanced |
|
|
- [[likwid-agent|likwid-agent]] provided multiple backends to output the periodically measured data. The syslog backend requires the shell tool `logger` to be installed. The [RRD](https://oss.oetiker.ch/rrdtool/) backend requires `rrdtool` and the GMetric backend the `gmetric` tool, part of the [Ganglia Monitoring System](http://ganglia.sourceforge.net/).
|
|
|
- In order to create the HTML documentation of LIKWID, the tool [Doxygen](www.doxygen.org) is required.
|
|
|
|
|
|
|
|
|
# Build targets
|
|
|
|
|
|
You have to edit `config.mk` to configure your build and install path.
|
... | ... | @@ -155,3 +158,7 @@ LIKWID in direct or accessdaemon mode uses the common MSR and PCI interfaces fro |
|
|
|
|
|
# LIKWID as static library
|
|
|
If you want to compile LIKWID as static library, you have to set `SHARED_LIBRARY` in `config.mk` to false. You can integrate LIKWID in your application but you cannot use the command line tools (except likwid-bench). I havn't found a way to make the tools work because they are written in Lua and in order to load a C-library at runtime, Lua needs dlopen which only works with shared libraries.
|
|
|
|
|
|
# LIKWID with NVIDIA GPU support
|
|
|
In order to build LIKWID with support for NVIDIA GPUs, you have to change `NVIDIA_INTERFACE` in `config.mk`to `true`. The Makefile uses the environment variable `CUDA_HOME` to determine the paths for the compilations but if needed, you can adjust the paths manually in `CUDAINCLUDE` and `CUPTIINCLUDE`. In case of problems, rebuild (`make distclean && make`) with `BUILDAPPDAEMON` set to `true`.
|
|
|
At runtime, LIKWID uses `dlopen`to load the required functions, so the library paths to CUDA and CUPTI should be in `LD_LIBRARY_PATH`. |
|
|
\ No newline at end of file |