1 Star 0 Fork 0

leslie / pcm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

Intel® Performance Counter Monitor (Intel® PCM)

PCM Tools | Building PCM | Downloading Pre-Compiled PCM | FAQ | API Documentation | Environment Variables | Compilation Options

Intel® Performance Counter Monitor (Intel® PCM) is an application programming interface (API) and a set of tools based on the API to monitor performance and energy metrics of Intel® Core™, Xeon®, Atom™ and Xeon Phi™ processors. PCM works on Linux, Windows, Mac OS X, FreeBSD, DragonFlyBSD and ChromeOS operating systems.

Github repository statistics: Custom badge Custom badge Custom badge


Current Build Status

  • Linux: GitHub Workflow Status
  • Windows: Build status
  • FreeBSD: GitHub Workflow Status
  • OS X: GitHub Workflow Status
  • Docker container: GitHub Workflow Status

PCM Tools

PCM provides a number of command-line utilities for real-time monitoring:

pcm-iio output

  • pcm-numa : monitor local and remote memory accesses
  • pcm-power : monitor sleep and energy states of processor, Intel(r) Quick Path Interconnect, DRAM memory, reasons of CPU frequency throttling and other energy-related metrics
  • pcm-tsx: monitor performance metrics for Intel(r) Transactional Synchronization Extensions
  • pcm-core and pmu-query: query and monitor arbitrary processor core events
  • pcm-raw: program arbitrary core and uncore events by specifying raw register event ID encoding
  • pcm-bw-histogram: collect memory bandwidth utilization histogram

Graphical front ends:

  • pcm Grafana dashboard : front-end for Grafana (in scripts/grafana directory). Full Grafana Readme is here pcm grafana output
  • pcm-sensor : front-end for KDE KSysGuard
  • pcm-service : front-end for Windows perfmon

There are also utilities for reading/writing model specific registers (pcm-msr), PCI configuration registers (pcm-pcicfg) and memory mapped registers (pcm-mmio) supported on Linux, Windows, Mac OS X and FreeBSD.

And finally a daemon that stores core, memory and QPI counters in shared memory that can be be accessed by non-root users.


Building PCM Tools

Clone PCM repository with submodules:

git clone --recursive https://github.com/opcm/pcm.git

or clone the repository first, and then update submodules with:

git submodule update --init --recursive

Install cmake then:

mkdir build
cd build
cmake ..
cmake --build .

You will get all the utilities (pcm, pcm-memory, etc) in build/bin directory. '--parallel' can be used for faster building:

cmake --build . --parallel

Debug is default on Windows. Specify config to build Release:

cmake --build . --config Release

On Windows and MacOs additional drivers are required. Please find instructions here: WINDOWS_HOWTO.md and MAC_HOWTO.txt.

FreeBSD/DragonFlyBSD-specific details can be found in FREEBSD_HOWTO.txt

pcm-build-run-2


Downloading Pre-Compiled PCM Tools


Frequently Asked Questions (FAQ)

PCM's frequently asked questions (FAQ) are located here.


PCM API documentation

PCM API documentation is embedded in the source code and can be generated into html format from source using Doxygen (www.doxygen.org).


PCM environment variables

The list of PCM environment variables is located here


Custom compilation options

The list of custom compilation options is located here


Packaging

Packaging with CPack is supported on Debian and Redhat/SUSE system families. To create DEB of RPM package need to call cpack after building in build folder:

cd build
cpack

This creates package:

  • "pcm-VERSION-Linux.deb" on Debian family systems;
  • "pcm-VERSION-Linux.rpm" on Redhat/SUSE-family systems. Packages contain pcm-* binaries and required for usage opCode-* files.
BSD 3-Clause License Copyright (c) 2009-2023, Intel Corporation Copyright (c) 2016-2020, opcm All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

暂无描述 展开 收起
C++ 等 5 种语言
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/leslie1994/pcm.git
git@gitee.com:leslie1994/pcm.git
leslie1994
pcm
pcm
master

搜索帮助