Skip to content
rrze-likwid edited this page Jun 10, 2015 · 12 revisions

FAQ

  1. Which architectures are supported?

LIKWID supports a range of x86 CPU architectures but likely not all. We concentrated the development effort on Intel and AMD machines. Almost all architecture code is tested. For a list of architectures see section Architectures or call likwid-perfctr -i.

  1. Are all hardware events supported?

LIKWID offers almost all events that are defined in the Intel® Software Developer System Programming Manual and the AMD® BIOS and Kernel Developer’s Guides. Some may be missing caused by special handling likely with additional registers. But, LIKWID also provides some events that are not documented but we do not guarantee that they count the right stuff.

  1. Does LIKWID support Intel's PEBS?

No, PEBS is an interface that must be initialized at kernel level. Since LIKWID is a user-space tool, there is no possibility to maintain PEBS.

  1. Which unit does LIKWID use internally for B, kB, MB, GB?

As the units imply, you get from one unit to the other by multiplying or dividing it by 1000. E.g. 1kB = 1000B. There is no kiB or MiB possible by now.

  1. Does LIKWID support power capping (Intel only)?

No, by now LIKWID does not support limiting the power consumption of your machine using the RAPL interface. We added some functions but they are not exported because they need to be rechecked.

  1. Is LIKWID case-sensitive?

Yes, all strings are case-sensitive. The only exception are the event options, they are case-insensitive. For upcomming versions we change to case-insensitive for all string parsing where possible.

  1. I have given multiple eventsets on the command line but the values are too low? Are they multiplexed?

LIKWID does not support multiplexing of eventsets. It rotates through its eventset list and measures each for a specific amount of time. The output contains the results of all measurements of that eventset, no interpolation to the complete runtime is done. Since most other tools that support multiplexing use linear interpolation, you can scale the results yourself with (1.0 - (measurement_time/all_time)) * result. As you can see, the calculation is pretty simple, but it introduces a high degree of inaccuracy. You cannot know if the operations that were performed during the measurement of the eventset are similar to the operations that were done when measuring another eventset. As a recommendation, perform the interpolation only with Marker API measurements where you know what the application does.

  1. Are there plans to port LIKWID to other operating systems?

We do not really plan to port LIKWID to other operating systems. We come from the HPC world and there the main operating systems base on the Linux kernel. The latest Top500 list contains 13 systems using Unix and 1 system with Microsoft® Windows.

  1. Are there plans to port LIKWID to other CPU architectures?

We would like to port LIKWID to other CPU architectures that support hardware performance measurements but currently there is no time for that and we do not have other architectures than x86 inhouse. We follow the developements and if an architecture gets HPC relevant, we will likely port LIKWID to make it work. The highest probability has ARM and with lower probability we will include SPARC.

  1. Do you plan to introduce a graphical frontend for LIKWID?

No, we do not!

  1. Why does the startup of likwid-perfctr take so long?

In order to get reliable time measurements, LIKWID must determine the base clock frequency of your CPU. This is done by a measurement loop that takes about 1 second. You can avoid the measurement loop by creating a topology configuration file with likwid-genTopoCfg.

  1. I want to help, were do I start?

The best way is to talk to us at the mailing list. There are a bunch of small work packages on our ToDo list that can be used as a good starting point for learning how LIKWID works. If you are not a programmer but you have a good idea, let us know and we will discuss it.

Clone this wiki locally