{"id":13730845,"url":"https://github.com/srvm/cupti_profiler","last_synced_at":"2026-01-30T13:01:21.893Z","repository":{"id":21416629,"uuid":"24734692","full_name":"srvm/cupti_profiler","owner":"srvm","description":"CUPTI GPU Profiler","archived":false,"fork":false,"pushed_at":"2019-02-26T00:48:05.000Z","size":41,"stargazers_count":37,"open_issues_count":4,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-08T03:36:00.367Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"abiggerhammer/hammer","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srvm.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}},"created_at":"2014-10-02T20:10:01.000Z","updated_at":"2024-10-04T13:19:42.000Z","dependencies_parsed_at":"2022-08-21T08:41:01.281Z","dependency_job_id":null,"html_url":"https://github.com/srvm/cupti_profiler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/srvm/cupti_profiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srvm%2Fcupti_profiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srvm%2Fcupti_profiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srvm%2Fcupti_profiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srvm%2Fcupti_profiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srvm","download_url":"https://codeload.github.com/srvm/cupti_profiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srvm%2Fcupti_profiler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28913292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-08-03T02:01:20.278Z","updated_at":"2026-01-30T13:01:21.876Z","avatar_url":"https://github.com/srvm.png","language":"C++","readme":"# CUDA Profiling Library\n\nThis library provides an API for collecting CUDA profiling metrics and events\nfrom within a CUDA application. Programmers specify what metrics and events\nthey want, and start the profiler before calling one or more CUDA kernels. The library\nsets up the appropriate CUPTI callbacks, calculates the number of\nkernel passes required, gathers values for the specified\nmetrics and events, and returns them to the programmer on a per-kernel basis.\n\n**Example Usage:**\n\n``` c++\n  vector\u003cstring\u003e event_names {\n                              \"active_warps\",\n                              \"gst_inst_32bit\",\n                              \"active_cycles\"\n                             };\n  vector\u003cstring\u003e metric_names {\n                               \"flop_count_dp\",\n                               \"flop_count_sp\",\n                               \"inst_executed\"\n                              };\n\n  cupti_profiler::profiler profiler(event_names, metric_names);\n\n  // Get #passes required to compute all metrics and events\n  const int passes = profiler.get_passes();\n\n  profiler.start();\n  for(int i=0; i\u003cpasses; ++i) {\n    call_kernel(data);\n  }\n  profiler.stop();\n\n  printf(\"Event Trace\\n\");\n  profiler.print_event_values(std::cout);\n  printf(\"Metric Trace\\n\");\n  profiler.print_metric_values(std::cout);\n```\n\n**Output:**\n\n```\nEvent Trace\n_Z6kernelIPfEvT_i: (active_warps,1734) (gst_inst_32bit,100) (active_cycles,423) \n_Z7kernel2IPfEvT_i: (active_warps,865) (gst_inst_32bit,50) (active_cycles,418) \n\nMetric Trace\n_Z6kernelIPfEvT_i: (flop_count_dp,0) (flop_count_sp,100) (inst_executed,52) \n_Z7kernel2IPfEvT_i: (flop_count_dp,0) (flop_count_sp,50) (inst_executed,26) \n```\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrvm%2Fcupti_profiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrvm%2Fcupti_profiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrvm%2Fcupti_profiler/lists"}