{"id":19705905,"url":"https://github.com/llnl/variorum","last_synced_at":"2025-04-23T08:17:38.545Z","repository":{"id":37390894,"uuid":"220091866","full_name":"LLNL/variorum","owner":"LLNL","description":"Vendor-neutral library for exposing power and performance features across diverse architectures","archived":false,"fork":false,"pushed_at":"2025-04-10T22:46:48.000Z","size":67684,"stargazers_count":75,"open_issues_count":78,"forks_count":27,"subscribers_count":13,"default_branch":"dev","last_synced_at":"2025-04-23T08:17:30.796Z","etag":null,"topics":["c","cmake","hwloc","performance","performance-analysis","sampling","x86"],"latest_commit_sha":null,"homepage":"https://variorum.readthedocs.io","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-06T21:17:28.000Z","updated_at":"2025-04-10T22:14:56.000Z","dependencies_parsed_at":"2023-10-14T14:05:50.732Z","dependency_job_id":"a0644feb-034c-4466-a933-cf50a29a0115","html_url":"https://github.com/LLNL/variorum","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fvariorum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fvariorum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fvariorum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fvariorum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/variorum/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250395289,"owners_count":21423400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cmake","hwloc","performance","performance-analysis","sampling","x86"],"created_at":"2024-11-11T21:31:38.476Z","updated_at":"2025-04-23T08:17:38.522Z","avatar_url":"https://github.com/LLNL.png","language":"C++","readme":"# VARIORUM\n\n[![Build Status](https://github.com/llnl/variorum/actions/workflows/github-actions.yml/badge.svg)](https://github.com/LLNL/variorum/actions)\n[![Read the Docs](https://readthedocs.org/projects/variorum/badge/?version=latest)](http://variorum.readthedocs.io)\n\nWelcome to Variorum, a platform-agnostic library exposing monitor and control\ninterfaces for several features in hardware architectures.\n\nversion 0.8.0\n\n\nLast Update\n-----------\n26 March 2024\n\n\nWebpages\n--------\nhttps://variorum.readthedocs.io\n\n\n## Overview\n\nVariorum is an extensible vendor-neutral library for Linux that exposes\npower and performance monitoring and control of low-level hardware dials.\n\n## Documentation\nTo get started building and using Variorum, check out the full documentation\nhere:\n\nhttps://variorum.readthedocs.io\n\n\n## Getting Started\n\nInstallation is simple. You will need [CMAKE](http://www.cmake.org) version 2.8\nor higher and GCC. Variorum does not support in-source builds. In most cases,\nthe installation is as follows:\n\n```\n    $ cd variorum/\n    $ mkdir build \u0026\u0026 mkdir install\n    $ cd build/\n    $ cmake -DCMAKE_INSTALL_PREFIX=../install ../src\n    $ make\n    $ make install\n```\n\nNote that Variorum depends on hwloc and JANSSON. The build system will first\ncheck for a specified local install of these dependencies, then it will check\nif it has been pre-installed. If it can find neither, it will clone and build\nthe dependency from source (will fail on machines without internet access).\n\n\n## CMake Host Config Files\nWe provide configuration files for specific systems to pre-populate the cache.\nThis configuration file will define various compilers, and paths to hwloc\ninstalls. These can be used as follows:\n\n```\n    $ cd variorum/\n    $ mkdir build \u0026\u0026 mkdir install\n    $ cd build/\n    $ cmake -C ../host-configs/your-local-configuration-file.cmake ../src\n    $ make\n```\n\n## Platform and Microarchitecture Support\nVariorum has support for an increasing number of platforms and\nmicroarchitectures:\n\nPlatforms supported: AMD, ARM, IBM, Intel, NVIDIA\n\nIf you are unsure of your architecture number, check the \"model\" field in `lscpu`\nor `/proc/cpuinfo` (note that it will not be in hexadecimal).\n\n\nSupported AMD Microrchitectures:\n\n    Family 19h, Models 0~Fh and 30h ~ 3Fh (EPYC Milan and Genoa)\n\nSupported AMD GPUs:\n\n    AMD Radeon Instinct, all models from MI50 onwards.\n\nSupported ARM Microrchitectures:\n\n    Juno r2\n    Neoverse N1\n\nSupported IBM Microrchitectures:\n\n    Power9\n\nSupported Intel Microarchitectures:\n\n    0x2A (Sandy Bridge)\n    0x2D (Sandy Bridge)\n    0x3E (Ivy Bridge)\n    0x3E (Haswell)\n    0x4F (Broadwell)\n    0x9E (Kaby Lake)\n    0x55 (Skylake, Cascade Lake, Cooper Lake)\n    0x6A (Ice Lake)\n    0x8F (Sapphire Rapids)\n\nSupported Intel GPUs:\n\n    Intel Arctic Sound, Intel Ponte Vecchio\n\nSupported Nvidia Microrchitectures:\n\n    Volta\n    Ampere \n\n## Testing\n\nFrom within the build directory, unit tests can be executed as follows:\n```\n    $ make test\n```\nPlease report any failed tests to the project maintainers.\n\n\n## Examples\n\nFor sample code, see the `examples/` directory.\n\n\n## System Environment Requirements\nThis software has certain system requirements depending on what hardware you\nare running on.\n\nAMD: Running this software on AMD platforms depends on the AMD Energy Driver,\nAMD HSMP driver, and AMD E-SMI library being available with the correct\npermissions.\n\nAMD GPU: Running this software on AMD GPU platforms depends on the ROCm-SMI library.\n\nARM: Running this software on ARM platforms depends on the Linux Hardware\nMonitoring (hwmon) subsystem for access to the monitoring and control\ninterfaces.\n\nIBM: Running this software on IBM platforms depends on the OPAL files being\npresent with R/W permissions.\n\nIntel: Running this software on Intel platforms depends on the files\n`/dev/cpu/*/msr` being present with R/W permissions. Recent kernels require\nadditional capabilities. We have found it easier to use our own\n[msr-safe](https://github.com/LLNL/msr-safe) kernel module, but running as root\n(or going through the bother of adding the capabilities to the binaries) is\nanother option.\n\nNvidia: Running this software on Nvidia platforms depends on CUDA being loaded.\n\n\n\n## Bug Tracker\nBugs and feature requests are being tracked on [GitHub\nIssues](https://github.com/LLNL/variorum/issues).\n\n\n## Contributing\nWe welcome all kinds of contributions: new features, bug fixes, documentation,\nedits, etc.!\n\nTo contribute, make a pull request, with `dev` as the destination branch. We\nuse GitHub Actions to run CI tests, and your branch must pass these tests\nbefore being merged.\n\nSee the [CONTRIBUTING](./CONTRIBUTING.md) for more information.\n\n\n## Authors\nStephanie Brink, \u003cbrink2@llnl.gov\u003e \u003cbr\u003e\nAniruddha Marathe, \u003cmarathe1@llnl.gov\u003e \u003cbr\u003e\nTapasya Patki, \u003cpatki1@llnl.gov\u003e \u003cbr\u003e\nBarry Rountree, \u003crountree@llnl.gov\u003e\n\nPlease feel free to contact the developers with any questions or feedback.\n\nWe collect names of those who have contributed to Variorum over the years. See\nthe current list in\n[Contributors](https://variorum.readthedocs.io/en/latest/Contributors.html).\n\n## License\nVariorum is released under the MIT license. For more details, see the\n[LICENSE](./LICENSE) and [NOTICE](./NOTICE) files.\n\nSPDX-License-Identifier: MIT\n\n`LLNL-CODE-789253`\n\n## Acknowledgments\nThis research was supported by the Exascale Computing Project (17-SC-20-SC), a\njoint project of the U.S. Department of Energy's Office of Science and National\nNuclear Security Administration, responsible for delivering a capable exascale\necosystem, including software, applications, and hardware technology, to\nsupport the nation's exascale computing imperative.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fvariorum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fvariorum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fvariorum/lists"}