{"id":18711254,"url":"https://github.com/rocm/rochpcg","last_synced_at":"2025-08-21T03:32:51.739Z","repository":{"id":37644663,"uuid":"193762457","full_name":"ROCm/rocHPCG","owner":"ROCm","description":"HPCG benchmark based on ROCm platform","archived":false,"fork":false,"pushed_at":"2025-03-13T20:08:54.000Z","size":521,"stargazers_count":37,"open_issues_count":0,"forks_count":19,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2025-04-08T03:35:13.985Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ROCm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-25T18:29:09.000Z","updated_at":"2025-02-26T13:00:29.000Z","dependencies_parsed_at":"2023-01-28T15:47:48.639Z","dependency_job_id":"0e5b0530-28b0-4fb6-9225-1692e717572b","html_url":"https://github.com/ROCm/rocHPCG","commit_stats":{"total_commits":248,"total_committers":10,"mean_commits":24.8,"dds":0.08870967741935487,"last_synced_commit":"8dd5c94ef6d44dd2c1a375ada8d75aa5aee107a7"},"previous_names":["rocm/rochpcg"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ROCm/rocHPCG","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocHPCG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocHPCG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocHPCG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocHPCG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ROCm","download_url":"https://codeload.github.com/ROCm/rocHPCG/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ROCm%2FrocHPCG/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271420539,"owners_count":24756589,"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","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-07T12:38:12.082Z","updated_at":"2025-08-21T03:32:51.381Z","avatar_url":"https://github.com/ROCm.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rocHPCG\nrocHPCG is a benchmark based on the [HPCG][] benchmark application, implemented on top of AMD's Radeon Open eCosystem Platform [ROCm][] runtime and toolchains. rocHPCG is created using the [HIP][] programming language and optimized for AMD's latest discrete GPUs.\n\n## Requirements\n* Git\n* CMake (3.10 or later)\n* MPI\n* NUMA library\n* AMD [ROCm] platform (4.1 or later)\n* [rocPRIM][]\n* googletest (for test application only)\n\n## Quickstart rocHPCG build and install\n\n#### Install script\nYou can build rocHPCG using the *install.sh* script\n```\n# Clone rocHPCG using git\ngit clone https://github.com/ROCmSoftwarePlatform/rocHPCG.git\n\n# Go to rocHPCG directory\ncd rocHPCG\n\n# Run install.sh script\n# Command line options:\n#    -h|--help         - prints this help message\n#    -i|--install      - install after build\n#    -d|--dependencies - install dependencies\n#    -r|--reference    - reference mode\n#    -g|--debug        - -DCMAKE_BUILD_TYPE=Debug (default: Release)\n#    -t|--test         - build single GPU test\n#    --with-rocm=\u003cdir\u003e - Path to ROCm install (default: /opt/rocm)\n#    --with-mpi=\u003cdir\u003e  - Path to external MPI install (Default: clone+build OpenMPI v4.1.0 in deps/)\n#    --with-openmp     - compile with OpenMP support (default: enabled)\n#    --with-memmgmt    - compile with smart memory management (default: enabled)\n#    --with-memdefrag  - compile with memory defragmentation (defaut: enabled)\n./install.sh -di\n```\nBy default, [UCX] v1.10.0 and [OpenMPI] v4.1.0 will be cloned and build in `rocHPCG/deps`.\nAfter build and install, the `rochpcg` executable is placed in `build/release/rochpcg-install`.\n\n#### MPI\nYou can build rocHPCG using your own MPI installation by specifying the directory, e.g.\n```\n./install.sh -di --with-mpi=/my/mpiroot/\n```\nAlternatively, when you do not pass a specific directory, OpenMPI v4.1.0 with UCX will be cloned and built within `rocHPCG/deps` directory.\nIf you want to disable MPI, you need to run\n```\n./install.sh -di --with-mpi=off\n```\n\n#### ROCm\nYou can build rocHPCG with specific ROCm versions by passing the directory to the install script, e.g.\n```\n./install.sh -di --with-rocm=/my/rocm-x.y.z/\n```\n\n## Running rocHPCG benchmark application\nYou can run the rocHPCG benchmark application by either using command line parameters or the `hpcg.dat` input file\n```\nrochpcg \u003cnx\u003e \u003cny\u003e \u003cnz\u003e \u003cruntime\u003e\n# where\n# nx      - is the global problem size in x dimension\n# ny      - is the global problem size in y dimension\n# nz      - is the global problem size in z dimension\n# runtime - is the desired benchmarking time in seconds (\u003e 1800s for official runs)\n```\n\nSimilarly, these parameters can be entered into an input file `hpcg.dat` in the working directory, e.g. `nx = ny = nz = 280` and `runtime = 1860`.\n```\nHPCG benchmark input file\nSandia National Laboratories; University of Tennessee, Knoxville\n280 280 280\n1860\n```\n\n## Performance evaluation\nFor performance evaluation purposes, the number of iterations should be as low as possible (e.g. convergence rate as high as possible), since the final HPCG score is scaled to 50 iterations.\nFurthermore, it is observed that high memory occupancy performs better on AMD devices. Problem size suggestion for devices with 16GB is `nx = ny = nz = 280` and `nx = 560, ny = nz = 280` for devices with 32GB or more. Runtime for official runs have to be at least 1800 seconds (use 1860 to be on the safe side), e.g.\n```\n./rochpcg 560 280 280 1860\n```\nPlease note that convergence rate behaviour might change in a multi-GPU environment and need to be adjusted accordingly.\n\nAdditionally, you can specify the device to be used for the application (e.g. device #1):\n```\n./rochpcg 560 280 280 1860 --dev=1\n```\n\n## Support\nPlease use [the issue tracker][] for bugs and feature requests.\n\n## License\nThe [license file][] can be found in the main repository.\n\n[HPCG]: https://www.hpcg-benchmark.org/\n[ROCm]: https://github.com/RadeonOpenCompute/ROCm\n[HIP]: https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/\n[rocPRIM]: https://github.com/ROCmSoftwarePlatform/rocPRIM\n[OpenMPI]: https://github.com/open-mpi/ompi\n[UCX]: https://github.com/openucx/ucx\n[the issue tracker]: https://github.com/ROCmSoftwarePlatform/rocHPCG/issues\n[license file]: https://github.com/ROCmSoftwarePlatform/rocHPCG\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocm%2Frochpcg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frocm%2Frochpcg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frocm%2Frochpcg/lists"}