All Projects → LLNL → variorum

LLNL / variorum

Licence: MIT license
Tool for hardware-level feature control

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
fortran
972 projects
HTML
75241 projects

Projects that are alternatives of or similar to variorum

Likwid
Performance monitoring and benchmarking suite
Stars: ✭ 957 (+4457.14%)
Mutual labels:  x86, performance-analysis
Osaca
Open Source Architecture Code Analyzer
Stars: ✭ 162 (+671.43%)
Mutual labels:  x86, performance-analysis
Simple Pt
Simple Intel CPU processor tracing on Linux
Stars: ✭ 232 (+1004.76%)
Mutual labels:  x86, performance-analysis
Reloaded.Assembler
Minimal .NET wrapper around the simple, easy to use Flat Assembler written by Tomasz Grysztar. Supports both x64 and x86 development.
Stars: ✭ 17 (-19.05%)
Mutual labels:  x86
performance-decorator
🏇User behavior & Function execution tracking solution - 大型前端项目的用户行为跟踪,函数调用链分析,断点调试共享化和复用化实践
Stars: ✭ 39 (+85.71%)
Mutual labels:  performance-analysis
l4re-core
The core components of the L4Re operating system.
Stars: ✭ 39 (+85.71%)
Mutual labels:  x86
scaraOS
A 32bit multiboot OS kernel for IA32 (PC/AT) systems.
Stars: ✭ 31 (+47.62%)
Mutual labels:  x86
RenHook
An open-source x86 / x86-64 hooking library for Windows.
Stars: ✭ 80 (+280.95%)
Mutual labels:  x86
KeepSitecoreSimple
Advanced diagnostics techniques home
Stars: ✭ 41 (+95.24%)
Mutual labels:  performance-analysis
Reverse-Engineering-101
Introductory software reverse engineering tutorial for beginners
Stars: ✭ 29 (+38.1%)
Mutual labels:  x86
ocean
Programming language that compiles into a x86 ELF executable.
Stars: ✭ 164 (+680.95%)
Mutual labels:  x86
georgios
Hobby Operating System
Stars: ✭ 19 (-9.52%)
Mutual labels:  x86
kernel
Main kernel tree
Stars: ✭ 28 (+33.33%)
Mutual labels:  x86
bioinf-commons
Bioinformatics library in Kotlin
Stars: ✭ 21 (+0%)
Mutual labels:  sampling
ibs
Inverse binomial sampling for efficient log-likelihood estimation of simulator models
Stars: ✭ 22 (+4.76%)
Mutual labels:  sampling
x86e
A simple x86 emulator, debugger, and editor in JavaScript.
Stars: ✭ 89 (+323.81%)
Mutual labels:  x86
cryptosuite2
Cryptographic suite for Arduino (SHA, HMAC-SHA)
Stars: ✭ 23 (+9.52%)
Mutual labels:  x86
PBD
🖨️🐞 Printf Based Debugger, a user-friendly C debugger
Stars: ✭ 52 (+147.62%)
Mutual labels:  x86
model analyzer
Triton Model Analyzer is a CLI tool to help with better understanding of the compute and memory requirements of the Triton Inference Server models.
Stars: ✭ 144 (+585.71%)
Mutual labels:  performance-analysis
OpenWRT-x86 64-Install
Create and deploy a LEGACY or EFI OpenWRT bootable image for x86_64 processors
Stars: ✭ 15 (-28.57%)
Mutual labels:  x86

VARIORUM

Build Status Read the Docs

Welcome to Variorum, a platform-agnostic library exposing monitor and control interfaces for several features in hardware architectures.

version 0.4.1

Last Update

2 April 2021

Webpages

https://variorum.readthedocs.io

Overview

Variorum is an extensible vendor-neutral library for exposing power and performance monitoring and control of low-level hardware knobs.

Documentation

To get started building and using Variorum, check out the full documentation here:

https://variorum.readthedocs.io

Getting Started

Installation is simple. You will need CMAKE version 2.8 or higher and GCC. Variorum does not support in-source builds. In most cases, the installation is as follows:

    $ cd variorum/
    $ mkdir build && mkdir install
    $ cd build/
    $ cmake -DCMAKE_INSTALL_PREFIX=../install ../src
    $ make
    $ make install

Note that Variorum depends on hwloc and JANSSON. The build system will first check for a specified local install of these dependencies, then it will check if it has been pre-installed. If it can find neither, it will clone and build the dependency from source (will fail on machines without internet access).

By default BUILD_DOCS=ON, so the build system looks for Doxygen and Sphinx. If you do not want to include these dependencies, simply toggle BUILD_DOCS=OFF in CMakeCache.txt or run the CMake command as follows:

$ cmake -DCMAKE_INSTALL_PREFIX=../install -DBUILD_DOCS=OFF ../src

CMake Host Config Files

We provide configuration files for specific systems to pre-populate the cache. This configuration file will define various compilers, and paths to hwloc installs. These can be used as follows:

    $ cd variorum/
    $ mkdir build && mkdir install
    $ cd build/
    $ cmake -C ../host-configs/your-local-configuration-file.cmake ../src
    $ make

Platform and Microarchitecture Support

Variorum has support for an increasing number of platforms and microarchitectures:

Platforms supported: AMD, ARM, IBM, Intel, NVIDIA

If you are unsure of your architecture number, check the "model" field in lscpu or /proc/cpuinfo (note that it will not be in hexadecimal).

Supported AMD Microrchitectures:

Family 19h, Models 0~Fh and 30h ~ 3Fh (EPYC Milan) 

Supported ARM Microrchitectures:

Juno r2

Supported IBM Microrchitectures:

Power9

Supported Intel Microarchitectures:

0x2A (Sandy Bridge)
0x2D (Sandy Bridge)
0x3E (Ivy Bridge)
0x3E (Haswell)
0x4F (Broadwell)
0x9E (Kaby Lake)
0x55 (Skylake)

Supported Nvidia Microrchitectures:

Volta (requires [CUDA Toolkit[(https://developer.nvidia.com/cuda-downloads))

Testing

From within the build directory, unit tests can be executed as follows:

    $ make test

Please report any failed tests to the project team at [email protected].

Examples

For sample code, see the examples/ directory.

System Environment Requirements

This software has certain system requirements depending on what hardware you are running on.

AMD: Running this software on AMD platforms depends on the AMD Energy Driver, AMD HSMP driver, and AMD E-SMI library being available with the correct permissions.

ARM: Running this software on ARM platforms depends on the Linux Hardware Monitoring (hwmon) subsystem for access to the monitoring and control interfaces.

IBM: Running this software on IBM platforms depends on the OPAL files being present with R/W permissions.

Intel: Running this software on Intel platforms depends on the files /dev/cpu/*/msr being present with R/W permissions. Recent kernels require additional capabilities. We have found it easier to use our own msr-safe kernel module, but running as root (or going through the bother of adding the capabilities to the binaries) is another option.

Nvidia: Running this software on Nvidia platforms depends on CUDA being loaded.

Bug Tracker

Bugs and feature requests are being tracked on GitHub Issues.

Mailing List

If you have questions about Variorum, identify a bug, or have ideas about expanding the functionality of Variorum and are interested in contributing to its development, please send an email to our open mailing list at [email protected]. We are very interested in improving Variorum and exploring new use cases.

If you are interested in keeping up with Variorum or communicating with its developers and users, please join our open mailing list by sending an email as follows:

To: [email protected]
Subject: (leave this field empty)

Subscribe variorum-users

Contributing

We welcome all kinds of contributions: new features, bug fixes, documentation, edits, etc.!

To contribute, make a pull request, with dev as the destination branch. We use GitHub Actions to run CI tests, and your branch must pass these tests before being merged.

See the CONTRIBUTING for more information.

Authors

Stephanie Brink, [email protected]
Aniruddha Marathe, [email protected]
Tapasya Patki, [email protected]
Barry Rountree, [email protected]

Please feel free to contact the developers with any questions or feedback.

We collect names of those who have contributed to Variorum over the years. See the current list in AUTHORS.

License

Variorum is released under the MIT license. For more details, see the LICENSE and NOTICE files.

SPDX-License-Identifier: MIT

LLNL-CODE-789253

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].