{"id":18711143,"url":"https://github.com/rocm/rocprofiler-compute","last_synced_at":"2025-12-11T22:46:17.745Z","repository":{"id":62713937,"uuid":"561919887","full_name":"ROCm/rocprofiler-compute","owner":"ROCm","description":"Advanced Profiling and Analytics for AMD Hardware","archived":false,"fork":false,"pushed_at":"2025-04-09T21:50:25.000Z","size":42901,"stargazers_count":145,"open_issues_count":66,"forks_count":53,"subscribers_count":17,"default_branch":"develop","last_synced_at":"2025-04-09T22:33:43.980Z","etag":null,"topics":["gpu-kernels","hardware-counters","hpc","linux","performance-analysis","profiling"],"latest_commit_sha":null,"homepage":"https://rocm.docs.amd.com/projects/rocprofiler-compute/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ROCm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-04T19:53:55.000Z","updated_at":"2025-04-08T23:09:06.000Z","dependencies_parsed_at":"2023-10-31T14:26:34.475Z","dependency_job_id":"ea9b6bd7-e882-4103-b9db-9986706e425d","html_url":"https://github.com/ROCm/rocprofiler-compute","commit_stats":null,"previous_names":["rocm/omniperf","amdresearch/omniperf","rocm/rocprofiler-compute"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2Frocprofiler-compute","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2Frocprofiler-compute/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2Frocprofiler-compute/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2Frocprofiler-compute/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ROCm","download_url":"https://codeload.github.com/ROCm/rocprofiler-compute/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248639297,"owners_count":21137820,"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":["gpu-kernels","hardware-counters","hpc","linux","performance-analysis","profiling"],"created_at":"2024-11-07T12:37:15.262Z","updated_at":"2025-12-11T22:46:12.724Z","avatar_url":"https://github.com/ROCm.png","language":"Python","readme":"[![Ubuntu 22.04](https://github.com/ROCm/rocprofiler-compute/actions/workflows/ubuntu-jammy.yml/badge.svg)](https://github.com/ROCm/rocprofiler-compute/actions/workflows/ubuntu-jammy.yml)\n[![RHEL 8](https://github.com/ROCm/rocprofiler-compute/actions/workflows/rhel-8.yml/badge.svg)](https://github.com/ROCm/rocprofiler-compute/actions/workflows/rhel-8.yml)\n[![Instinct](https://github.com/ROCm/rocprofiler-compute/actions/workflows/mi-rhel9.yml/badge.svg)](https://github.com/ROCm/rocprofiler-compute/actions/workflows/mi-rhel9.yml)\n[![Docs](https://github.com/ROCm/rocprofiler-compute/actions/workflows/docs.yml/badge.svg)](https://rocm.github.io/rocprofiler-compute/)\n[![DOI](https://zenodo.org/badge/561919887.svg)](https://zenodo.org/badge/latestdoi/561919887)\n\n# ROCm Compute Profiler\n\n## General\n\nROCm Compute Profiler is a system performance profiling tool for machine\nlearning/HPC workloads running on AMD MI GPUs. The tool presently\ntargets usage on MI100, MI200, and MI300 accelerators.\n\n* For more information on available features, installation steps, and\nworkload profiling and analysis, please refer to the online\n[documentation](https://rocm.docs.amd.com/projects/rocprofiler-compute/en/latest/).\n\n* ROCm Compute Profiler is an AMD open source research project and is not supported\nas part of the ROCm software stack. We welcome contributions and\nfeedback from the community. Please see the\n[CONTRIBUTING.md](CONTRIBUTING.md) file for additional details on our\ncontribution process.\n\n* Licensing information can be found in the [LICENSE](LICENSE) file.\n\n## Development\n\nROCm Compute Profiler follows a\n[main-dev](https://nvie.com/posts/a-successful-git-branching-model/)\nbranching model. As a result, our latest stable release is shipped\nfrom the `amd-mainline` branch, while new features are developed in our\n`develop` branch.\n\nUsers may checkout `amd-staging` to preview upcoming features.\n\n## Testing\n\nTo quickly get the environment (bash shell) for building and testing, run the following commands:\n* `cd docker`\n* `docker compose -f docker-compose.test.yml up --force-recreate -d \u0026\u0026 docker attach docker-test-1`\n\nInside the docker container, clean, build and install the project with tests enabled:\n```\nrm -rf build install \u0026\u0026 cmake -B build -D CMAKE_INSTALL_PREFIX=install -D ENABLE_TESTS=ON -D INSTALL_TESTS=ON -DENABLE_COVERAGE=ON -S . \u0026\u0026 cmake --build build --target install --parallel 8\n```\n\nNote that per the above command, build assets will be stored under `build` directory and installed assets will be stored under `install` directory.\n\nThen, to run the automated test suite, run the following command:\n```\nctest\n```\n\nFor manual testing, you can find the executable at `install/bin/rocprof-compute`\n\nNOTE: This Dockerfile uses `rocm/dev-ubuntu-22.04` as the base image\n\n## Standalone binary\n\nTo create a standalone binary, run the following commands:\n* `cd docker`\n* `docker compose -f docker-compose.standalone.yml up --force-recreate -d \u0026\u0026 docker attach docker-standalone-1`\n\nYou should find the rocprof-compute.bin standalone binary inside the `build` folder in the root directory of the project.\n\nTo build the binary we follow these steps:\n* Use RHEL 8 image used to build ROCm as the base image\n* Install python3.8\n* Install dependencies for runtime and for making standalone binary\n* Call the make target which uses Nuitka to build the standalone binary\n\nNOTE: Since RHEL 8 ships with glibc version 2.28, this standalone binary can only be run on environment with glibc version greater than 2.28.\nglibc version can be checked using `ldd --version` command.\n\nNOTE: libnss3.so shared library is required when using --roof-only option which generates roofline data in PDF format \n\nTo test the standalone binary provide the `--call-binary` option to pytest.\n\n## How to Cite\n\nThis software can be cited using a Zenodo\n[DOI](https://doi.org/10.5281/zenodo.7314631) reference. A BibTex\nstyle reference is provided below for convenience:\n\n```\n@software{xiaomin_lu_2022_7314631\n  author       = {Xiaomin Lu and\n                  Cole Ramos and\n                  Fei Zheng and\n                  Karl W. Schulz and\n                  Jose Santos and\n                  Keith Lowery and\n                  Nicholas Curtis and\n                  Cristian Di Pietrantonio},\n  title        = {ROCm/rocprofiler-compute: v3.1.0 (12 February 2025)},\n  month        = February,\n  year         = 2025,\n  publisher    = {Zenodo},\n  version      = {v3.1.0},\n  doi          = {10.5281/zenodo.7314631},\n  url          = {https://doi.org/10.5281/zenodo.7314631}\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocm%2Frocprofiler-compute","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frocm%2Frocprofiler-compute","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocm%2Frocprofiler-compute/lists"}