{"id":17602859,"url":"https://github.com/wrathematics/proginfo","last_synced_at":"2025-04-30T09:45:58.061Z","repository":{"id":69285878,"uuid":"339895712","full_name":"wrathematics/proginfo","owner":"wrathematics","description":"A small utility for getting some info post-hoc about a program's run.","archived":false,"fork":false,"pushed_at":"2021-02-23T23:40:12.000Z","size":142,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T06:41:23.401Z","etag":null,"topics":["cuda","gpu","nvidia","profiler","profiling"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wrathematics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2021-02-18T00:48:21.000Z","updated_at":"2024-12-24T18:42:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"64d37723-e665-4af2-9800-78820f2b4339","html_url":"https://github.com/wrathematics/proginfo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrathematics%2Fproginfo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrathematics%2Fproginfo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrathematics%2Fproginfo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wrathematics%2Fproginfo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wrathematics","download_url":"https://codeload.github.com/wrathematics/proginfo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242627302,"owners_count":20160260,"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":["cuda","gpu","nvidia","profiler","profiling"],"created_at":"2024-10-22T13:24:35.722Z","updated_at":"2025-03-09T00:32:32.163Z","avatar_url":"https://github.com/wrathematics.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# proginfo\n\n* **Version:** 0.1-0\n* **License:** [BSL-1.0](http://opensource.org/licenses/BSL-1.0)\n* **Project home**: https://github.com/wrathematics/proginfo\n* **Bug reports**: https://github.com/wrathematics/proginfo/issues\n\n\nproginfo is a small utility for getting some basic information about a program, sort of like a fancier version of the unix command `time`. This is not a replacement for a real profiler.\n\nThe program reports wallclock time, and system-level utilization and RAM usage for both CPU and any (NVIDIA) GPUs.\n\n\n## Notes\n\n1. Sampled values are reported as follows\n```\nMIN/MEAN/MAX (SD) / TOTAL\n```\n\n2. GPU utilization rates are the \"percent of time over the past second in which any work has been executing on the GPU.\" ([reference](http://developer.download.nvidia.com/compute/DevZone/NVML/doxygen/structnvml_utilization__t.html)).\n\n3. The consumed memory on GPUs is \"equal to the sum of memory allocated by all active channels on the device.\" ([reference](http://developer.download.nvidia.com/compute/DevZone/NVML/doxygen/group__group4.html#g2dfeb1db82aa1de91aa6edf941c85ca8))\n\n4. The consumed memory for CPU is reported as the complement (from total) of the sum of buffered, cached, and free RAM on Linux.\n\n5. All memory numbers are in GiB (divide bytes by 1024^3).\n\n6. CPU utilization is reported by `clock()`, which is wrong. Will probably fix eventually.\n\n\n\n## Compiling\n\nEdit the makefile and type `make`. Real make system later.\n\n\n\n## Examples\n\nHere's a basic example \n\n```\n$ ./proginfo Rscript -e \"1+1\"\n[1] 2\n\n## Program Info (from 28 polls)\n* CPU\n  - Wall time: 0.285\n  - Utilization: 1.284%\n  - RAM: 15.451/15.482/15.506 (62.797) / 62.814 GiB\n* GPU\n  - Utilization\n      + (Device 0) 1/1.00/1 (0.00) / 100%\n  - RAM:\n      + (Device 0) 1.084/1.084/1.084 (0.000) / 7.926 GiB\n```\n\nAnd here's a code that allocates some data on the GPU:\n\n```\n$ ./proginfo Rscript -e 'suppressMessages(library(fmlr)); c = card(); x = gpumat(c, 25000, 25000, type=\"float\"); x$fill_zero(); x$info()'\n\n# gpumat 25000x25000 type=f \n\n## Program Info (from 119 polls)\n* CPU\n  - Wall time: 1.235\n  - Utilization: 0.919%\n  - RAM: 15.471/15.632/15.855 (62.669) / 62.814 GiB\n* GPU\n  - Utilization\n      + (Device 0) 0/6.69/44 (12.37) / 100%\n  - RAM:\n      + (Device 0) 1.059/1.159/3.611 (0.342) / 7.926 GiB\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrathematics%2Fproginfo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwrathematics%2Fproginfo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwrathematics%2Fproginfo/lists"}