Hello what are possible ways to do uncore events collection?
I would prefer VTune or SEP is it possible with these tools?
What are other options without kernel modification?
VTune uses the SEP loadable kernel module to enable access to the performance counters, including the uncore counters. Whether this constitutes "kernel modification" is a matter of semantics.
Many of the uncore events can only be accessed in kernel space because the RDMSR instruction can only be executed in ring 0. There is no way around this limitation -- it is enforced by the hardware. Linux supports a device driver interface to read and write the MSRs, but it is normally restricted to root access. The situation is similar for the uncore counters based in PCI configuration space -- very primitive tools exist that can be used by users with root access to program, read, and write the uncore performance counters, but it is a lot of work.
VTune can access the uncore counters on most platforms, but the details of how VTune is doing the measurements and computations are not usually obvious. The available events change from platform to platform and from one VTune release to another, so it is hard to be concise. On Linux, the command "amplxe-cl -help collect" will provide a list of the available analysis types -- the ones that match your hardware platform and include "bandwidth" generally use the uncore counters.
VTune supports some uncore counters on Sandy Bridge processors and a lot more on Ivy Bridge and Haswell processors.
did you have a look at the "emon" utility that VTune provides? (in the bin32/bin64 directory) I don't know if it works for uncore events though.