compilersutra-perf 0.2.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/PKG-INFO +20 -20
  2. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/README.md +14 -11
  3. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Runtime/Process.cpp +14 -1
  4. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/pyproject.toml +29 -9
  5. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/setup.py +13 -5
  6. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/compilersutra_perf.egg-info/PKG-INFO +20 -20
  7. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/compilersutra_perf.egg-info/SOURCES.txt +24 -0
  8. compilersutra_perf-0.3.0/src/compilersutra_perf.egg-info/entry_points.txt +5 -0
  9. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/compilersutra_perf.egg-info/requires.txt +3 -3
  10. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/__init__.py +7 -1
  11. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/backends/registry.py +22 -2
  12. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/cli.py +272 -417
  13. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/cli_output.py +28 -1
  14. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/config.py +36 -0
  15. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/detector.py +2 -0
  16. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/backends/amd_cpu.py +7 -7
  17. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/manager.py +4 -4
  18. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/parsing.py +25 -4
  19. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/__init__.py +6 -1
  20. compilersutra_perf-0.3.0/src/csperf/execution/base.py +58 -0
  21. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/cpu.py +159 -126
  22. compilersutra_perf-0.3.0/src/csperf/execution/qemu_user.py +269 -0
  23. compilersutra_perf-0.3.0/src/csperf/execution/runners.py +920 -0
  24. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/experiments/apply.py +2 -2
  25. compilersutra_perf-0.3.0/src/csperf/experiments/registry.py +94 -0
  26. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/hardware.py +17 -3
  27. compilersutra_perf-0.3.0/src/csperf/integration/__init__.py +5 -0
  28. compilersutra_perf-0.3.0/src/csperf/integration/csrun.py +603 -0
  29. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/models.py +43 -1
  30. compilersutra_perf-0.3.0/src/csperf/plugins/__init__.py +44 -0
  31. compilersutra_perf-0.3.0/src/csperf/plugins/contracts.py +88 -0
  32. compilersutra_perf-0.3.0/src/csperf/plugins/loader.py +68 -0
  33. compilersutra_perf-0.3.0/src/csperf/plugins/toolchains.py +95 -0
  34. compilersutra_perf-0.3.0/src/csperf/plugins/visualizers.py +66 -0
  35. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/power/collect.py +2 -0
  36. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profile_summary.py +104 -6
  37. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/collectors/macos.py +52 -23
  38. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/papi_support.py +2 -1
  39. compilersutra_perf-0.3.0/src/csperf/profiler/gpu.py +94 -0
  40. compilersutra_perf-0.3.0/src/csperf/provenance.py +230 -0
  41. compilersutra_perf-0.3.0/src/csperf/report/exporters/__init__.py +15 -0
  42. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/formatting.py +7 -1
  43. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/sections.py +11 -0
  44. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/results.py +10 -5
  45. compilersutra_perf-0.3.0/src/csperf/runner_meta.py +189 -0
  46. compilersutra_perf-0.3.0/src/csperf/schema_export.py +141 -0
  47. compilersutra_perf-0.3.0/tests/test_backend_runners.py +59 -0
  48. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_cli_functional.py +12 -14
  49. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_cli_smoke.py +12 -4
  50. compilersutra_perf-0.3.0/tests/test_cpu_arena.py +86 -0
  51. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_cpu_measurement.py +18 -14
  52. compilersutra_perf-0.3.0/tests/test_cross_platform_matrix.py +67 -0
  53. compilersutra_perf-0.3.0/tests/test_csrun_integration.py +495 -0
  54. compilersutra_perf-0.3.0/tests/test_diff_significance.py +181 -0
  55. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_doctor.py +66 -0
  56. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_issue51_validation.py +5 -2
  57. compilersutra_perf-0.3.0/tests/test_measurement_validity.py +243 -0
  58. compilersutra_perf-0.3.0/tests/test_milestone3_gaps.py +120 -0
  59. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_milestone_reliability.py +34 -2
  60. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_opencl_measure.py +1 -1
  61. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_optimize_diff.py +11 -2
  62. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_papi_collector.py +3 -3
  63. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_papi_fallback.py +9 -9
  64. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_papi_native.py +3 -3
  65. compilersutra_perf-0.3.0/tests/test_plugins_loader.py +109 -0
  66. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_power_collect.py +4 -0
  67. compilersutra_perf-0.3.0/tests/test_provenance.py +147 -0
  68. compilersutra_perf-0.3.0/tests/test_qemu_user_riscv.py +66 -0
  69. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_results_csv.py +1 -1
  70. compilersutra_perf-0.3.0/tests/test_runner_meta.py +77 -0
  71. compilersutra_perf-0.2.0/src/compilersutra_perf.egg-info/entry_points.txt +0 -2
  72. compilersutra_perf-0.2.0/src/csperf/execution/base.py +0 -23
  73. compilersutra_perf-0.2.0/src/csperf/experiments/registry.py +0 -45
  74. compilersutra_perf-0.2.0/src/csperf/report/exporters/__init__.py +0 -4
  75. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/CMakeLists.txt +0 -0
  76. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/LICENSE +0 -0
  77. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/MANIFEST.in +0 -0
  78. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/NOTICE +0 -0
  79. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/CMakeLists.txt +0 -0
  80. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/native/NativeApplication.hpp +0 -0
  81. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/native/NativeArgumentParser.hpp +0 -0
  82. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/native/NativeOptions.hpp +0 -0
  83. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/native/NativeRunner.hpp +0 -0
  84. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/native/PapiCounters.hpp +0 -0
  85. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLApplication.hpp +0 -0
  86. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLArgumentParser.hpp +0 -0
  87. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLDeviceCatalog.hpp +0 -0
  88. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLDevicePolicy.hpp +0 -0
  89. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLKernelExecutor.hpp +0 -0
  90. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLSupport.hpp +0 -0
  91. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/opencl/OpenCLTypes.hpp +0 -0
  92. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/runtime/Application.hpp +0 -0
  93. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/runtime/Process.hpp +0 -0
  94. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/support/Debug.hpp +0 -0
  95. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/support/JSON.hpp +0 -0
  96. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanApplication.hpp +0 -0
  97. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanArgumentParser.hpp +0 -0
  98. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanDeviceCatalog.hpp +0 -0
  99. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanDevicePolicy.hpp +0 -0
  100. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanLibraryPolicy.hpp +0 -0
  101. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanLoader.hpp +0 -0
  102. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanOptions.hpp +0 -0
  103. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanQueueFamilyPolicy.hpp +0 -0
  104. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanShaderValidator.hpp +0 -0
  105. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/csperf/vulkan/VulkanSupport.hpp +0 -0
  106. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/include/runtime.h +0 -0
  107. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Native/NativeApplication.cpp +0 -0
  108. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Native/NativeArgumentParser.cpp +0 -0
  109. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Native/NativeRunner.cpp +0 -0
  110. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Native/PapiCounters.cpp +0 -0
  111. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/OpenCL/OpenCLApplication.cpp +0 -0
  112. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/OpenCL/OpenCLArgumentParser.cpp +0 -0
  113. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/OpenCL/OpenCLDeviceCatalog.cpp +0 -0
  114. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/OpenCL/OpenCLDevicePolicy.cpp +0 -0
  115. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/OpenCL/OpenCLKernelExecutor.cpp +0 -0
  116. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/OpenCL/OpenCLSupport.cpp +0 -0
  117. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Runtime/Application.cpp +0 -0
  118. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Runtime/RuntimeInfo.cpp +0 -0
  119. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Support/JSON.cpp +0 -0
  120. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanApplication.cpp +0 -0
  121. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanArgumentParser.cpp +0 -0
  122. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanDeviceCatalog.cpp +0 -0
  123. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanDevicePolicy.cpp +0 -0
  124. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanLibraryPolicy.cpp +0 -0
  125. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanLoader.cpp +0 -0
  126. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanQueueFamilyPolicy.cpp +0 -0
  127. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanShaderValidator.cpp +0 -0
  128. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/lib/Vulkan/VulkanSupport.cpp +0 -0
  129. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/tools/csperf-native-runner/main.cpp +0 -0
  130. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/tools/csperf-opencl-runner/main.cpp +0 -0
  131. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/native/runtime/tools/csperf-vulkan-runner/main.cpp +0 -0
  132. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/setup.cfg +0 -0
  133. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/compilersutra_perf.egg-info/dependency_links.txt +0 -0
  134. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/compilersutra_perf.egg-info/top_level.txt +0 -0
  135. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/backends/__init__.py +0 -0
  136. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/backends/base.py +0 -0
  137. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/backends/cpu.py +0 -0
  138. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/backends/gpu.py +0 -0
  139. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/dashboard_app.py +0 -0
  140. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/doctor.py +0 -0
  141. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/__init__.py +0 -0
  142. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/backends/__init__.py +0 -0
  143. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/backends/amd_gpu.py +0 -0
  144. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/backends/macos_cpu.py +0 -0
  145. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/backends/stubs.py +0 -0
  146. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/base.py +0 -0
  147. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/orchestrate.py +0 -0
  148. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/registry.py +0 -0
  149. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/energy/result.py +0 -0
  150. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/build.py +0 -0
  151. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/compile_flags.py +0 -0
  152. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/gpu.py +0 -0
  153. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/hip.py +0 -0
  154. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/opencl.py +0 -0
  155. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/utils.py +0 -0
  156. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/execution/vulkan.py +0 -0
  157. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/experiments/__init__.py +0 -0
  158. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/lit/__init__.py +0 -0
  159. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/lit/runner.py +0 -0
  160. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/optimize_diff.py +0 -0
  161. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/perf_env.py +0 -0
  162. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/pipelines/__init__.py +0 -0
  163. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/pipelines/base.py +0 -0
  164. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/pipelines/factory.py +0 -0
  165. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/power/__init__.py +0 -0
  166. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/__init__.py +0 -0
  167. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/base.py +0 -0
  168. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/__init__.py +0 -0
  169. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/affinity.py +0 -0
  170. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/base.py +0 -0
  171. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/collectors/__init__.py +0 -0
  172. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/collectors/base.py +0 -0
  173. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/collectors/linux.py +1 -1
  174. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/collectors/papi.py +1 -1
  175. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/collectors/registry.py +0 -0
  176. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/detectors/__init__.py +0 -0
  177. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/detectors/architecture.py +0 -0
  178. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/detectors/platform.py +0 -0
  179. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/detectors/vendor.py +0 -0
  180. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/factory.py +0 -0
  181. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/metrics/__init__.py +0 -0
  182. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/metrics/definitions.py +0 -0
  183. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/metrics/events.py +0 -0
  184. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/metrics/mapping.py +0 -0
  185. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/profiler/cpu/metrics/registry.py +0 -0
  186. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/quickstart.py +0 -0
  187. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/__init__.py +0 -0
  188. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/build.py +0 -0
  189. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/charts.py +0 -0
  190. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/comparison.py +0 -0
  191. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/components.py +0 -0
  192. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/constants.py +0 -0
  193. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/export.py +0 -0
  194. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/exporters/html.py +0 -0
  195. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/exporters/pdf.py +0 -0
  196. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/model.py +0 -0
  197. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/quality.py +0 -0
  198. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/registry.py +0 -0
  199. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/render.py +0 -0
  200. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/reproduction.py +0 -0
  201. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/sections_plugins.py +0 -0
  202. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/report/template.py +0 -0
  203. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/toolutils.py +0 -0
  204. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/src/csperf/visualize.py +0 -0
  205. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_bundled_runners.py +0 -0
  206. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_cli_helpers.py +0 -0
  207. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_cli_output.py +0 -0
  208. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_collector_registry.py +0 -0
  209. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_compile_flags.py +0 -0
  210. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_cpu_affinity_collect.py +0 -0
  211. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_detector.py +0 -0
  212. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_diff_profiler_warnings.py +0 -0
  213. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_energy_framework.py +0 -0
  214. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_experiments_apply.py +0 -0
  215. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_hip_mocked.py +0 -0
  216. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_lit_runner.py +0 -0
  217. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_macos_collector.py +0 -0
  218. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_opencl_inference.py +0 -0
  219. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_papi_support.py +0 -0
  220. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_perf_env.py +0 -0
  221. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_perf_events.py +0 -0
  222. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_perf_fallback.py +0 -0
  223. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_process_timeout.py +0 -0
  224. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_profile_summary_security.py +0 -0
  225. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_quickstart.py +0 -0
  226. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_registry.py +0 -0
  227. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_report_components.py +0 -0
  228. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_report_export.py +0 -0
  229. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_report_reproduction.py +0 -0
  230. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_toolutils.py +0 -0
  231. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_visualize.py +0 -0
  232. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_vulkaninfo_parse.py +0 -0
  233. {compilersutra_perf-0.2.0 → compilersutra_perf-0.3.0}/tests/test_workload_manifest.py +0 -0
@@ -1,14 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compilersutra-perf
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Alpha CLI for compiler and GPU performance experiments — compile, profile, diff, and export JSON/CSV results
5
5
  Author-email: Priya Pandey <osc@compilersutra.com>, CompilerSutra <osc@compilersutra.com>
6
6
  License-Expression: Apache-2.0
7
- Project-URL: Homepage, https://github.com/compilersutra/CompilerSutraPerfTool
8
- Project-URL: Documentation, https://github.com/compilersutra/CompilerSutraPerfTool/blob/main/docs/USAGE.md
9
- Project-URL: Repository, https://github.com/compilersutra/CompilerSutraPerfTool
10
- Project-URL: Issues, https://github.com/compilersutra/CompilerSutraPerfTool/issues
11
- Project-URL: Changelog, https://github.com/compilersutra/CompilerSutraPerfTool/blob/main/CHANGELOG.md
7
+ Project-URL: Homepage, https://www.compilersutra.com
8
+ Project-URL: Documentation, https://www.compilersutra.com/docs/project/compilersutra-perf/getting-started/
12
9
  Project-URL: Author, https://www.linkedin.com/in/priya-pandey-54a5a22aa/
13
10
  Keywords: benchmarking,compiler,gpu,hip,llvm,opencl,performance,profiling,systems,vulkan
14
11
  Classifier: Development Status :: 3 - Alpha
@@ -39,19 +36,19 @@ Requires-Dist: pip-audit>=2.7; extra == "dev"
39
36
  Requires-Dist: urllib3>=2.7; extra == "dev"
40
37
  Requires-Dist: click>=8.3.3; extra == "dev"
41
38
  Requires-Dist: cryptography>=50.0.0; extra == "dev"
42
- Requires-Dist: GitPython>=3.1.57; extra == "dev"
39
+ Requires-Dist: GitPython>=3.1.59; extra == "dev"
43
40
  Requires-Dist: idna>=3.15; extra == "dev"
44
41
  Requires-Dist: Pillow>=12.3.0; extra == "dev"
45
42
  Requires-Dist: Pygments>=2.20.0; extra == "dev"
46
43
  Requires-Dist: requests>=2.33.0; extra == "dev"
47
- Requires-Dist: tornado>=6.5.7; extra == "dev"
44
+ Requires-Dist: tornado>=6.5.8; extra == "dev"
48
45
  Provides-Extra: excel
49
46
  Requires-Dist: openpyxl>=3.1; extra == "excel"
50
47
  Provides-Extra: visualize
51
48
  Requires-Dist: streamlit>=1.33; extra == "visualize"
52
49
  Requires-Dist: plotly>=5.20; extra == "visualize"
53
50
  Provides-Extra: pdf
54
- Requires-Dist: weasyprint>=62; extra == "pdf"
51
+ Requires-Dist: weasyprint>=70.0; extra == "pdf"
55
52
  Provides-Extra: track
56
53
  Requires-Dist: mlflow>=2.11; extra == "track"
57
54
  Provides-Extra: tune
@@ -74,6 +71,8 @@ Compile, run, profile, compare, and export structured JSON/CSV/XLSX artifacts
74
71
 
75
72
  **Status:** Alpha MVP (0.2.0). Suitable for local experimentation; not yet validated for production CI regression gates. See [limitations](#limitations) and [docs/METHODOLOGY.md](docs/METHODOLOGY.md).
76
73
 
74
+ **Research goal:** a unified CPU/GPU hardware & compiler observatory layer — orchestrate existing toolchains, normalize results, and keep static vs measured evidence honest. See [docs/OBSERVATORY.md](docs/OBSERVATORY.md).
75
+
77
76
  ---
78
77
 
79
78
  ## Install
@@ -93,7 +92,7 @@ pip install 'compilersutra-perf[dev]' # pytest
93
92
 
94
93
  **Requirements:** Python 3.11+. Linux wheels ship prebuilt native runners for CPU (and Vulkan, where available), so CPU workloads run out of the box. Other platforms (or exotic Python builds) fall back to building the runner on demand, which needs a C/C++ toolchain and `cmake` on `PATH`; `perf` is also recommended for full CPU profiling on Linux. GPU backends need their respective runtimes (ROCm, OpenCL, Vulkan) installed separately.
95
94
 
96
- **Platform wheels and old distributions:** wheels are tagged for the glibc they were built on (e.g. `linux_x86_64`), so a wheel built on Ubuntu 24.04 may fail to load its bundled runner on Ubuntu 22.04 or older (newer glibc). The loader probes the bundled runner at startup and automatically falls back to an on-demand local build, so only an older toolchain is needed there. Hardware counter events are probed per-CPU, so vendor-specific events never break collection on other vendors (Intel vs AMD).
95
+ **Platform wheels and old distributions:** release wheels use a `manylinux` tag (e.g. `manylinux_2_39_x86_64`) for the glibc they were built on, so a wheel built on Ubuntu 24.04 may fail to load its bundled runner on Ubuntu 22.04 or older (newer glibc). The loader probes the bundled runner at startup and automatically falls back to an on-demand local build, so only an older toolchain is needed there. Hardware counter events are probed per-CPU, so vendor-specific events never break collection on other vendors (Intel vs AMD).
97
96
 
98
97
  **Native Windows:** not yet supported. The runner uses POSIX APIs (`fork`, `sched_setaffinity`) and won't build on Windows natively — use [WSL2](docs/WINDOWS_WSL2.md). Result artifacts (JSON/CSV/XLSX/HTML reports) open fine on Windows.
99
98
 
@@ -101,17 +100,16 @@ Check that every system tool csperf needs is present, and install whatever is mi
101
100
 
102
101
  ```bash
103
102
  csperf quickstart --output-dir results/quickstart # doctor + example + report
104
- csperf doctor # report missing tools
103
+ csperf doctor # report missing tools; exit 1 if a required tool is missing
105
104
  csperf doctor --install # install missing required tools (apt/dnf/pacman/apk/brew)
106
105
  csperf doctor --install --all # also install optional GPU/profiling tools
107
106
  ```
108
107
 
109
108
  See [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) for perf, energy, and GPU fixes.
110
109
 
111
- Develop from source:
110
+ Develop from source (private checkout if you have access):
112
111
 
113
112
  ```bash
114
- git clone https://github.com/compilersutra/CompilerSutraPerfTool.git
115
113
  cd CompilerSutraPerfTool
116
114
  python3 -m venv .venv && source .venv/bin/activate
117
115
  pip install -e '.[dev]'
@@ -155,7 +153,7 @@ Each `run` writes `results/<name>.json`, `.csv`, and `.xlsx` (when `openpyxl` is
155
153
  | **CPU** | Execute + profile | Native C++ runner, LLVM IR (clang), Linux `perf` counters, warmup/repeat, optional `--cpu-affinity` |
156
154
  | **HIP** | Execute + profile | `hipcc` compile-and-run, ROCm devices, `rocprofv3` (then v2/v1) |
157
155
  | **OpenCL** | Execute | Native kernel launch, device selection, warmup/repeat |
158
- | **Vulkan** | Compile + validate | GLSL → SPIR-V, shader-module validation |
156
+ | **Vulkan** | Execute via csrun / validate | Prefer CompilerSutraRun YAML execute (`CSRUN_BIN`); else GLSL → SPIR-V + module validation |
159
157
  | **`gpu` alias** | Auto-route | `.hip` → HIP, `.cl` → OpenCL, shaders → Vulkan |
160
158
  | **CUDA / Metal** | Planned | Listed in registry but not executable |
161
159
  | **macOS CPU** | Experimental | Execution works; profiling uses `powermetrics` (needs passwordless `sudo`) |
@@ -303,11 +301,11 @@ Read these before trusting numbers in papers or CI:
303
301
  - **Alpha** — methodology and backend coverage are still evolving.
304
302
  - CPU runs support `--execution-timeout` to bound workload execution.
305
303
  - CPU runs support repeated `--program-arg` values and `--stdin-file`; manifests can define the same settings.
306
- - **`--experiment` / `--opt-config`** — apply compile macros and optional extra flags; plugin entry points remain [#24](https://github.com/compilersutra/CompilerSutraPerfTool/issues/24) / 0.3.0.
304
+ - **`--experiment` / `--opt-config`** — apply compile macros and optional extra flags; plugin entry points remain planned for 0.3.0.
307
305
  - Optional extras `track`, `tune`, and `distributed` are reserved for later releases and are not wired into the CLI.
308
- - **OpenCL** — program may recompile each trial; interpret kernel times carefully ([#38](https://github.com/compilersutra/CompilerSutraPerfTool/issues/38)).
306
+ - **OpenCL** — program may recompile each trial; interpret kernel times carefully.
309
307
  - **CUDA / Metal** — not implemented despite registry entries.
310
- - **Native runners** — PyPI wheel does not bundle C++ binaries; build from source or install runners separately for full execution.
308
+ - **Native runners** — Linux wheels bundle prebuilt native runners; other platforms build on demand from the bundled sources (needs a C/C++ toolchain and `cmake`).
311
309
 
312
310
  Best supported today: **Linux CPU** compile/run/profile with `perf` configured, plus HIP/OpenCL exploration with manual interpretation.
313
311
 
@@ -315,7 +313,11 @@ Best supported today: **Linux CPU** compile/run/profile with `perf` configured,
315
313
 
316
314
  ## Documentation
317
315
 
318
- Full guides live in the repository:
316
+ Public getting started guide:
317
+
318
+ https://www.compilersutra.com/docs/project/compilersutra-perf/getting-started/
319
+
320
+ In-tree guides (source checkout):
319
321
 
320
322
  | Doc | Topic |
321
323
  | --- | --- |
@@ -329,8 +331,6 @@ Full guides live in the repository:
329
331
  | [CONTRIBUTING.md](CONTRIBUTING.md) | Contributions |
330
332
  | [CHANGELOG.md](CHANGELOG.md) | Release notes |
331
333
 
332
- Repository: https://github.com/compilersutra/CompilerSutraPerfTool
333
-
334
334
  ---
335
335
 
336
336
  ## License
@@ -10,6 +10,8 @@ Compile, run, profile, compare, and export structured JSON/CSV/XLSX artifacts
10
10
 
11
11
  **Status:** Alpha MVP (0.2.0). Suitable for local experimentation; not yet validated for production CI regression gates. See [limitations](#limitations) and [docs/METHODOLOGY.md](docs/METHODOLOGY.md).
12
12
 
13
+ **Research goal:** a unified CPU/GPU hardware & compiler observatory layer — orchestrate existing toolchains, normalize results, and keep static vs measured evidence honest. See [docs/OBSERVATORY.md](docs/OBSERVATORY.md).
14
+
13
15
  ---
14
16
 
15
17
  ## Install
@@ -29,7 +31,7 @@ pip install 'compilersutra-perf[dev]' # pytest
29
31
 
30
32
  **Requirements:** Python 3.11+. Linux wheels ship prebuilt native runners for CPU (and Vulkan, where available), so CPU workloads run out of the box. Other platforms (or exotic Python builds) fall back to building the runner on demand, which needs a C/C++ toolchain and `cmake` on `PATH`; `perf` is also recommended for full CPU profiling on Linux. GPU backends need their respective runtimes (ROCm, OpenCL, Vulkan) installed separately.
31
33
 
32
- **Platform wheels and old distributions:** wheels are tagged for the glibc they were built on (e.g. `linux_x86_64`), so a wheel built on Ubuntu 24.04 may fail to load its bundled runner on Ubuntu 22.04 or older (newer glibc). The loader probes the bundled runner at startup and automatically falls back to an on-demand local build, so only an older toolchain is needed there. Hardware counter events are probed per-CPU, so vendor-specific events never break collection on other vendors (Intel vs AMD).
34
+ **Platform wheels and old distributions:** release wheels use a `manylinux` tag (e.g. `manylinux_2_39_x86_64`) for the glibc they were built on, so a wheel built on Ubuntu 24.04 may fail to load its bundled runner on Ubuntu 22.04 or older (newer glibc). The loader probes the bundled runner at startup and automatically falls back to an on-demand local build, so only an older toolchain is needed there. Hardware counter events are probed per-CPU, so vendor-specific events never break collection on other vendors (Intel vs AMD).
33
35
 
34
36
  **Native Windows:** not yet supported. The runner uses POSIX APIs (`fork`, `sched_setaffinity`) and won't build on Windows natively — use [WSL2](docs/WINDOWS_WSL2.md). Result artifacts (JSON/CSV/XLSX/HTML reports) open fine on Windows.
35
37
 
@@ -37,17 +39,16 @@ Check that every system tool csperf needs is present, and install whatever is mi
37
39
 
38
40
  ```bash
39
41
  csperf quickstart --output-dir results/quickstart # doctor + example + report
40
- csperf doctor # report missing tools
42
+ csperf doctor # report missing tools; exit 1 if a required tool is missing
41
43
  csperf doctor --install # install missing required tools (apt/dnf/pacman/apk/brew)
42
44
  csperf doctor --install --all # also install optional GPU/profiling tools
43
45
  ```
44
46
 
45
47
  See [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) for perf, energy, and GPU fixes.
46
48
 
47
- Develop from source:
49
+ Develop from source (private checkout if you have access):
48
50
 
49
51
  ```bash
50
- git clone https://github.com/compilersutra/CompilerSutraPerfTool.git
51
52
  cd CompilerSutraPerfTool
52
53
  python3 -m venv .venv && source .venv/bin/activate
53
54
  pip install -e '.[dev]'
@@ -91,7 +92,7 @@ Each `run` writes `results/<name>.json`, `.csv`, and `.xlsx` (when `openpyxl` is
91
92
  | **CPU** | Execute + profile | Native C++ runner, LLVM IR (clang), Linux `perf` counters, warmup/repeat, optional `--cpu-affinity` |
92
93
  | **HIP** | Execute + profile | `hipcc` compile-and-run, ROCm devices, `rocprofv3` (then v2/v1) |
93
94
  | **OpenCL** | Execute | Native kernel launch, device selection, warmup/repeat |
94
- | **Vulkan** | Compile + validate | GLSL → SPIR-V, shader-module validation |
95
+ | **Vulkan** | Execute via csrun / validate | Prefer CompilerSutraRun YAML execute (`CSRUN_BIN`); else GLSL → SPIR-V + module validation |
95
96
  | **`gpu` alias** | Auto-route | `.hip` → HIP, `.cl` → OpenCL, shaders → Vulkan |
96
97
  | **CUDA / Metal** | Planned | Listed in registry but not executable |
97
98
  | **macOS CPU** | Experimental | Execution works; profiling uses `powermetrics` (needs passwordless `sudo`) |
@@ -239,11 +240,11 @@ Read these before trusting numbers in papers or CI:
239
240
  - **Alpha** — methodology and backend coverage are still evolving.
240
241
  - CPU runs support `--execution-timeout` to bound workload execution.
241
242
  - CPU runs support repeated `--program-arg` values and `--stdin-file`; manifests can define the same settings.
242
- - **`--experiment` / `--opt-config`** — apply compile macros and optional extra flags; plugin entry points remain [#24](https://github.com/compilersutra/CompilerSutraPerfTool/issues/24) / 0.3.0.
243
+ - **`--experiment` / `--opt-config`** — apply compile macros and optional extra flags; plugin entry points remain planned for 0.3.0.
243
244
  - Optional extras `track`, `tune`, and `distributed` are reserved for later releases and are not wired into the CLI.
244
- - **OpenCL** — program may recompile each trial; interpret kernel times carefully ([#38](https://github.com/compilersutra/CompilerSutraPerfTool/issues/38)).
245
+ - **OpenCL** — program may recompile each trial; interpret kernel times carefully.
245
246
  - **CUDA / Metal** — not implemented despite registry entries.
246
- - **Native runners** — PyPI wheel does not bundle C++ binaries; build from source or install runners separately for full execution.
247
+ - **Native runners** — Linux wheels bundle prebuilt native runners; other platforms build on demand from the bundled sources (needs a C/C++ toolchain and `cmake`).
247
248
 
248
249
  Best supported today: **Linux CPU** compile/run/profile with `perf` configured, plus HIP/OpenCL exploration with manual interpretation.
249
250
 
@@ -251,7 +252,11 @@ Best supported today: **Linux CPU** compile/run/profile with `perf` configured,
251
252
 
252
253
  ## Documentation
253
254
 
254
- Full guides live in the repository:
255
+ Public getting started guide:
256
+
257
+ https://www.compilersutra.com/docs/project/compilersutra-perf/getting-started/
258
+
259
+ In-tree guides (source checkout):
255
260
 
256
261
  | Doc | Topic |
257
262
  | --- | --- |
@@ -265,8 +270,6 @@ Full guides live in the repository:
265
270
  | [CONTRIBUTING.md](CONTRIBUTING.md) | Contributions |
266
271
  | [CHANGELOG.md](CHANGELOG.md) | Release notes |
267
272
 
268
- Repository: https://github.com/compilersutra/CompilerSutraPerfTool
269
-
270
273
  ---
271
274
 
272
275
  ## License
@@ -13,7 +13,6 @@
13
13
  #include <sstream>
14
14
  #include <stdexcept>
15
15
  #include <string>
16
- #include <sys/ptrace.h>
17
16
  #include <sys/types.h>
18
17
  #include <sys/wait.h>
19
18
  #include <thread>
@@ -22,6 +21,7 @@
22
21
 
23
22
  #if defined(__linux__)
24
23
  #include <sched.h>
24
+ #include <sys/ptrace.h>
25
25
  #endif
26
26
 
27
27
  namespace csperf::runtime {
@@ -51,6 +51,7 @@ bool wait_for_stop(pid_t pid, int* status) {
51
51
  }
52
52
  }
53
53
 
54
+ #if defined(__linux__)
54
55
  bool stop_child_at_exec(pid_t pid) {
55
56
  if (ptrace(PTRACE_SETOPTIONS, pid, nullptr, PTRACE_O_TRACEEXEC) != 0) {
56
57
  return false;
@@ -81,6 +82,16 @@ void resume_child(pid_t pid, bool traced) {
81
82
  }
82
83
  kill(pid, SIGCONT);
83
84
  }
85
+ #else
86
+ // macOS / BSD: no Linux PTRACE_O_TRACEEXEC. Pause with SIGSTOP only.
87
+ bool stop_child_at_exec(pid_t /*pid*/) {
88
+ return false;
89
+ }
90
+
91
+ void resume_child(pid_t pid, bool /*traced*/) {
92
+ kill(pid, SIGCONT);
93
+ }
94
+ #endif
84
95
 
85
96
  } // namespace
86
97
 
@@ -133,7 +144,9 @@ ProcessResult run_binary(
133
144
  }
134
145
  argv.push_back(nullptr);
135
146
  if (pause_for_parent) {
147
+ #if defined(__linux__)
136
148
  ptrace(PTRACE_TRACEME, 0, nullptr, nullptr);
149
+ #endif
137
150
  raise(SIGSTOP);
138
151
  }
139
152
  execv(binary_path.c_str(), argv.data());
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
8
8
 
9
9
  [project]
10
10
  name = "compilersutra-perf"
11
- version = "0.2.0"
11
+ version = "0.3.0"
12
12
  description = "Alpha CLI for compiler and GPU performance experiments — compile, profile, diff, and export JSON/CSV results"
13
13
  readme = { file = "README.md", content-type = "text/markdown" }
14
14
  requires-python = ">=3.11"
@@ -48,11 +48,8 @@ classifiers = [
48
48
  dependencies = []
49
49
 
50
50
  [project.urls]
51
- Homepage = "https://github.com/compilersutra/CompilerSutraPerfTool"
52
- Documentation = "https://github.com/compilersutra/CompilerSutraPerfTool/blob/main/docs/USAGE.md"
53
- Repository = "https://github.com/compilersutra/CompilerSutraPerfTool"
54
- Issues = "https://github.com/compilersutra/CompilerSutraPerfTool/issues"
55
- Changelog = "https://github.com/compilersutra/CompilerSutraPerfTool/blob/main/CHANGELOG.md"
51
+ Homepage = "https://www.compilersutra.com"
52
+ Documentation = "https://www.compilersutra.com/docs/project/compilersutra-perf/getting-started/"
56
53
  Author = "https://www.linkedin.com/in/priya-pandey-54a5a22aa/"
57
54
 
58
55
  [project.optional-dependencies]
@@ -67,16 +64,16 @@ dev = [
67
64
  "urllib3>=2.7",
68
65
  "click>=8.3.3",
69
66
  "cryptography>=50.0.0",
70
- "GitPython>=3.1.57",
67
+ "GitPython>=3.1.59",
71
68
  "idna>=3.15",
72
69
  "Pillow>=12.3.0",
73
70
  "Pygments>=2.20.0",
74
71
  "requests>=2.33.0",
75
- "tornado>=6.5.7",
72
+ "tornado>=6.5.8",
76
73
  ]
77
74
  excel = ["openpyxl>=3.1"]
78
75
  visualize = ["streamlit>=1.33", "plotly>=5.20"]
79
- pdf = ["weasyprint>=62"]
76
+ pdf = ["weasyprint>=70.0"]
80
77
  track = ["mlflow>=2.11"] # reserved; not wired into the CLI
81
78
  tune = ["optuna>=3.5", "nevergrad>=1.0.5"] # reserved; not wired into the CLI
82
79
  distributed = ["ray>=2.10", "dask>=2024.3.1"] # reserved; not wired into the CLI
@@ -84,6 +81,25 @@ distributed = ["ray>=2.10", "dask>=2024.3.1"] # reserved; not wired into the CL
84
81
  [project.scripts]
85
82
  csperf = "csperf.cli:main"
86
83
 
84
+ [project.entry-points."csperf.experiments"]
85
+ # Built-in experiments remain in csperf.experiments.registry; third-party
86
+ # packages register additional names here (see examples/hello_csperf_plugin).
87
+
88
+ [project.entry-points."csperf.backends"]
89
+ # Executable BackendRunner factories register here (see csperf.execution.runners).
90
+
91
+ [project.entry-points."csperf.report_exporters"]
92
+ # Optional out-of-tree report exporters.
93
+
94
+ [project.entry-points."csperf.gpu_profilers"]
95
+ # Optional GPU profiler plugins.
96
+
97
+ [project.entry-points."csperf.visualizers"]
98
+ # Optional visualizer / dashboard plugins.
99
+
100
+ [project.entry-points."csperf.toolchains"]
101
+ system = "csperf.plugins.toolchains:SystemToolchainProvider"
102
+
87
103
  [tool.setuptools]
88
104
  package-dir = {"" = "src"}
89
105
 
@@ -92,6 +108,10 @@ where = ["src"]
92
108
 
93
109
  [tool.pytest.ini_options]
94
110
  testpaths = ["tests"]
111
+ markers = [
112
+ "hardware: requires perf and a supported CPU PMU (skipped on hosts without perf)",
113
+ "slow: takes more than a few seconds to run",
114
+ ]
95
115
 
96
116
  [tool.ruff]
97
117
  line-length = 100
@@ -19,8 +19,8 @@ from pathlib import Path
19
19
  from shutil import copy2, copytree
20
20
 
21
21
  from setuptools import setup
22
- from setuptools.command.build_py import build_py as _build_py
23
22
  from setuptools.command.bdist_wheel import bdist_wheel as _bdist_wheel
23
+ from setuptools.command.build_py import build_py as _build_py
24
24
 
25
25
  BUILD_TOOL = "cmake"
26
26
  RUNNER_TARGETS = (
@@ -73,10 +73,18 @@ class build_py(_build_py):
73
73
  raise RuntimeError("CSPERF_BUNDLE_NATIVE=1 requires cmake on PATH")
74
74
  build_dir = Path(os.environ.get("CSPERF_NATIVE_BUILD_DIR", "build-native-wheel"))
75
75
  build_dir.mkdir(parents=True, exist_ok=True)
76
- subprocess.run(
77
- [BUILD_TOOL, "-S", str(project_root), "-B", str(build_dir)],
78
- check=True,
79
- )
76
+ # Keep wheel binaries baseline x86-64 so auditwheel/manylinux can repair
77
+ # them (GH runners often default to x86_64_v3 otherwise).
78
+ cmake_cmd = [BUILD_TOOL, "-S", str(project_root), "-B", str(build_dir)]
79
+ machine = platform.machine().lower()
80
+ if machine in {"x86_64", "amd64"}:
81
+ cmake_cmd.extend(
82
+ [
83
+ "-DCMAKE_C_FLAGS=-march=x86-64 -mtune=generic",
84
+ "-DCMAKE_CXX_FLAGS=-march=x86-64 -mtune=generic",
85
+ ]
86
+ )
87
+ subprocess.run(cmake_cmd, check=True)
80
88
  for target in RUNNER_TARGETS:
81
89
  binary = build_dir / "bin" / target
82
90
  if target == "csperf_opencl_runner" and not _runner_built(build_dir, target):
@@ -1,14 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compilersutra-perf
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Alpha CLI for compiler and GPU performance experiments — compile, profile, diff, and export JSON/CSV results
5
5
  Author-email: Priya Pandey <osc@compilersutra.com>, CompilerSutra <osc@compilersutra.com>
6
6
  License-Expression: Apache-2.0
7
- Project-URL: Homepage, https://github.com/compilersutra/CompilerSutraPerfTool
8
- Project-URL: Documentation, https://github.com/compilersutra/CompilerSutraPerfTool/blob/main/docs/USAGE.md
9
- Project-URL: Repository, https://github.com/compilersutra/CompilerSutraPerfTool
10
- Project-URL: Issues, https://github.com/compilersutra/CompilerSutraPerfTool/issues
11
- Project-URL: Changelog, https://github.com/compilersutra/CompilerSutraPerfTool/blob/main/CHANGELOG.md
7
+ Project-URL: Homepage, https://www.compilersutra.com
8
+ Project-URL: Documentation, https://www.compilersutra.com/docs/project/compilersutra-perf/getting-started/
12
9
  Project-URL: Author, https://www.linkedin.com/in/priya-pandey-54a5a22aa/
13
10
  Keywords: benchmarking,compiler,gpu,hip,llvm,opencl,performance,profiling,systems,vulkan
14
11
  Classifier: Development Status :: 3 - Alpha
@@ -39,19 +36,19 @@ Requires-Dist: pip-audit>=2.7; extra == "dev"
39
36
  Requires-Dist: urllib3>=2.7; extra == "dev"
40
37
  Requires-Dist: click>=8.3.3; extra == "dev"
41
38
  Requires-Dist: cryptography>=50.0.0; extra == "dev"
42
- Requires-Dist: GitPython>=3.1.57; extra == "dev"
39
+ Requires-Dist: GitPython>=3.1.59; extra == "dev"
43
40
  Requires-Dist: idna>=3.15; extra == "dev"
44
41
  Requires-Dist: Pillow>=12.3.0; extra == "dev"
45
42
  Requires-Dist: Pygments>=2.20.0; extra == "dev"
46
43
  Requires-Dist: requests>=2.33.0; extra == "dev"
47
- Requires-Dist: tornado>=6.5.7; extra == "dev"
44
+ Requires-Dist: tornado>=6.5.8; extra == "dev"
48
45
  Provides-Extra: excel
49
46
  Requires-Dist: openpyxl>=3.1; extra == "excel"
50
47
  Provides-Extra: visualize
51
48
  Requires-Dist: streamlit>=1.33; extra == "visualize"
52
49
  Requires-Dist: plotly>=5.20; extra == "visualize"
53
50
  Provides-Extra: pdf
54
- Requires-Dist: weasyprint>=62; extra == "pdf"
51
+ Requires-Dist: weasyprint>=70.0; extra == "pdf"
55
52
  Provides-Extra: track
56
53
  Requires-Dist: mlflow>=2.11; extra == "track"
57
54
  Provides-Extra: tune
@@ -74,6 +71,8 @@ Compile, run, profile, compare, and export structured JSON/CSV/XLSX artifacts
74
71
 
75
72
  **Status:** Alpha MVP (0.2.0). Suitable for local experimentation; not yet validated for production CI regression gates. See [limitations](#limitations) and [docs/METHODOLOGY.md](docs/METHODOLOGY.md).
76
73
 
74
+ **Research goal:** a unified CPU/GPU hardware & compiler observatory layer — orchestrate existing toolchains, normalize results, and keep static vs measured evidence honest. See [docs/OBSERVATORY.md](docs/OBSERVATORY.md).
75
+
77
76
  ---
78
77
 
79
78
  ## Install
@@ -93,7 +92,7 @@ pip install 'compilersutra-perf[dev]' # pytest
93
92
 
94
93
  **Requirements:** Python 3.11+. Linux wheels ship prebuilt native runners for CPU (and Vulkan, where available), so CPU workloads run out of the box. Other platforms (or exotic Python builds) fall back to building the runner on demand, which needs a C/C++ toolchain and `cmake` on `PATH`; `perf` is also recommended for full CPU profiling on Linux. GPU backends need their respective runtimes (ROCm, OpenCL, Vulkan) installed separately.
95
94
 
96
- **Platform wheels and old distributions:** wheels are tagged for the glibc they were built on (e.g. `linux_x86_64`), so a wheel built on Ubuntu 24.04 may fail to load its bundled runner on Ubuntu 22.04 or older (newer glibc). The loader probes the bundled runner at startup and automatically falls back to an on-demand local build, so only an older toolchain is needed there. Hardware counter events are probed per-CPU, so vendor-specific events never break collection on other vendors (Intel vs AMD).
95
+ **Platform wheels and old distributions:** release wheels use a `manylinux` tag (e.g. `manylinux_2_39_x86_64`) for the glibc they were built on, so a wheel built on Ubuntu 24.04 may fail to load its bundled runner on Ubuntu 22.04 or older (newer glibc). The loader probes the bundled runner at startup and automatically falls back to an on-demand local build, so only an older toolchain is needed there. Hardware counter events are probed per-CPU, so vendor-specific events never break collection on other vendors (Intel vs AMD).
97
96
 
98
97
  **Native Windows:** not yet supported. The runner uses POSIX APIs (`fork`, `sched_setaffinity`) and won't build on Windows natively — use [WSL2](docs/WINDOWS_WSL2.md). Result artifacts (JSON/CSV/XLSX/HTML reports) open fine on Windows.
99
98
 
@@ -101,17 +100,16 @@ Check that every system tool csperf needs is present, and install whatever is mi
101
100
 
102
101
  ```bash
103
102
  csperf quickstart --output-dir results/quickstart # doctor + example + report
104
- csperf doctor # report missing tools
103
+ csperf doctor # report missing tools; exit 1 if a required tool is missing
105
104
  csperf doctor --install # install missing required tools (apt/dnf/pacman/apk/brew)
106
105
  csperf doctor --install --all # also install optional GPU/profiling tools
107
106
  ```
108
107
 
109
108
  See [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) for perf, energy, and GPU fixes.
110
109
 
111
- Develop from source:
110
+ Develop from source (private checkout if you have access):
112
111
 
113
112
  ```bash
114
- git clone https://github.com/compilersutra/CompilerSutraPerfTool.git
115
113
  cd CompilerSutraPerfTool
116
114
  python3 -m venv .venv && source .venv/bin/activate
117
115
  pip install -e '.[dev]'
@@ -155,7 +153,7 @@ Each `run` writes `results/<name>.json`, `.csv`, and `.xlsx` (when `openpyxl` is
155
153
  | **CPU** | Execute + profile | Native C++ runner, LLVM IR (clang), Linux `perf` counters, warmup/repeat, optional `--cpu-affinity` |
156
154
  | **HIP** | Execute + profile | `hipcc` compile-and-run, ROCm devices, `rocprofv3` (then v2/v1) |
157
155
  | **OpenCL** | Execute | Native kernel launch, device selection, warmup/repeat |
158
- | **Vulkan** | Compile + validate | GLSL → SPIR-V, shader-module validation |
156
+ | **Vulkan** | Execute via csrun / validate | Prefer CompilerSutraRun YAML execute (`CSRUN_BIN`); else GLSL → SPIR-V + module validation |
159
157
  | **`gpu` alias** | Auto-route | `.hip` → HIP, `.cl` → OpenCL, shaders → Vulkan |
160
158
  | **CUDA / Metal** | Planned | Listed in registry but not executable |
161
159
  | **macOS CPU** | Experimental | Execution works; profiling uses `powermetrics` (needs passwordless `sudo`) |
@@ -303,11 +301,11 @@ Read these before trusting numbers in papers or CI:
303
301
  - **Alpha** — methodology and backend coverage are still evolving.
304
302
  - CPU runs support `--execution-timeout` to bound workload execution.
305
303
  - CPU runs support repeated `--program-arg` values and `--stdin-file`; manifests can define the same settings.
306
- - **`--experiment` / `--opt-config`** — apply compile macros and optional extra flags; plugin entry points remain [#24](https://github.com/compilersutra/CompilerSutraPerfTool/issues/24) / 0.3.0.
304
+ - **`--experiment` / `--opt-config`** — apply compile macros and optional extra flags; plugin entry points remain planned for 0.3.0.
307
305
  - Optional extras `track`, `tune`, and `distributed` are reserved for later releases and are not wired into the CLI.
308
- - **OpenCL** — program may recompile each trial; interpret kernel times carefully ([#38](https://github.com/compilersutra/CompilerSutraPerfTool/issues/38)).
306
+ - **OpenCL** — program may recompile each trial; interpret kernel times carefully.
309
307
  - **CUDA / Metal** — not implemented despite registry entries.
310
- - **Native runners** — PyPI wheel does not bundle C++ binaries; build from source or install runners separately for full execution.
308
+ - **Native runners** — Linux wheels bundle prebuilt native runners; other platforms build on demand from the bundled sources (needs a C/C++ toolchain and `cmake`).
311
309
 
312
310
  Best supported today: **Linux CPU** compile/run/profile with `perf` configured, plus HIP/OpenCL exploration with manual interpretation.
313
311
 
@@ -315,7 +313,11 @@ Best supported today: **Linux CPU** compile/run/profile with `perf` configured,
315
313
 
316
314
  ## Documentation
317
315
 
318
- Full guides live in the repository:
316
+ Public getting started guide:
317
+
318
+ https://www.compilersutra.com/docs/project/compilersutra-perf/getting-started/
319
+
320
+ In-tree guides (source checkout):
319
321
 
320
322
  | Doc | Topic |
321
323
  | --- | --- |
@@ -329,8 +331,6 @@ Full guides live in the repository:
329
331
  | [CONTRIBUTING.md](CONTRIBUTING.md) | Contributions |
330
332
  | [CHANGELOG.md](CHANGELOG.md) | Release notes |
331
333
 
332
- Repository: https://github.com/compilersutra/CompilerSutraPerfTool
333
-
334
334
  ---
335
335
 
336
336
  ## License
@@ -77,8 +77,11 @@ src/csperf/models.py
77
77
  src/csperf/optimize_diff.py
78
78
  src/csperf/perf_env.py
79
79
  src/csperf/profile_summary.py
80
+ src/csperf/provenance.py
80
81
  src/csperf/quickstart.py
81
82
  src/csperf/results.py
83
+ src/csperf/runner_meta.py
84
+ src/csperf/schema_export.py
82
85
  src/csperf/toolutils.py
83
86
  src/csperf/visualize.py
84
87
  src/csperf/backends/__init__.py
@@ -106,20 +109,30 @@ src/csperf/execution/cpu.py
106
109
  src/csperf/execution/gpu.py
107
110
  src/csperf/execution/hip.py
108
111
  src/csperf/execution/opencl.py
112
+ src/csperf/execution/qemu_user.py
113
+ src/csperf/execution/runners.py
109
114
  src/csperf/execution/utils.py
110
115
  src/csperf/execution/vulkan.py
111
116
  src/csperf/experiments/__init__.py
112
117
  src/csperf/experiments/apply.py
113
118
  src/csperf/experiments/registry.py
119
+ src/csperf/integration/__init__.py
120
+ src/csperf/integration/csrun.py
114
121
  src/csperf/lit/__init__.py
115
122
  src/csperf/lit/runner.py
116
123
  src/csperf/pipelines/__init__.py
117
124
  src/csperf/pipelines/base.py
118
125
  src/csperf/pipelines/factory.py
126
+ src/csperf/plugins/__init__.py
127
+ src/csperf/plugins/contracts.py
128
+ src/csperf/plugins/loader.py
129
+ src/csperf/plugins/toolchains.py
130
+ src/csperf/plugins/visualizers.py
119
131
  src/csperf/power/__init__.py
120
132
  src/csperf/power/collect.py
121
133
  src/csperf/profiler/__init__.py
122
134
  src/csperf/profiler/base.py
135
+ src/csperf/profiler/gpu.py
123
136
  src/csperf/profiler/cpu/__init__.py
124
137
  src/csperf/profiler/cpu/affinity.py
125
138
  src/csperf/profiler/cpu/base.py
@@ -159,6 +172,7 @@ src/csperf/report/template.py
159
172
  src/csperf/report/exporters/__init__.py
160
173
  src/csperf/report/exporters/html.py
161
174
  src/csperf/report/exporters/pdf.py
175
+ tests/test_backend_runners.py
162
176
  tests/test_bundled_runners.py
163
177
  tests/test_cli_functional.py
164
178
  tests/test_cli_helpers.py
@@ -167,9 +181,13 @@ tests/test_cli_smoke.py
167
181
  tests/test_collector_registry.py
168
182
  tests/test_compile_flags.py
169
183
  tests/test_cpu_affinity_collect.py
184
+ tests/test_cpu_arena.py
170
185
  tests/test_cpu_measurement.py
186
+ tests/test_cross_platform_matrix.py
187
+ tests/test_csrun_integration.py
171
188
  tests/test_detector.py
172
189
  tests/test_diff_profiler_warnings.py
190
+ tests/test_diff_significance.py
173
191
  tests/test_doctor.py
174
192
  tests/test_energy_framework.py
175
193
  tests/test_experiments_apply.py
@@ -177,6 +195,8 @@ tests/test_hip_mocked.py
177
195
  tests/test_issue51_validation.py
178
196
  tests/test_lit_runner.py
179
197
  tests/test_macos_collector.py
198
+ tests/test_measurement_validity.py
199
+ tests/test_milestone3_gaps.py
180
200
  tests/test_milestone_reliability.py
181
201
  tests/test_opencl_inference.py
182
202
  tests/test_opencl_measure.py
@@ -188,15 +208,19 @@ tests/test_papi_support.py
188
208
  tests/test_perf_env.py
189
209
  tests/test_perf_events.py
190
210
  tests/test_perf_fallback.py
211
+ tests/test_plugins_loader.py
191
212
  tests/test_power_collect.py
192
213
  tests/test_process_timeout.py
193
214
  tests/test_profile_summary_security.py
215
+ tests/test_provenance.py
216
+ tests/test_qemu_user_riscv.py
194
217
  tests/test_quickstart.py
195
218
  tests/test_registry.py
196
219
  tests/test_report_components.py
197
220
  tests/test_report_export.py
198
221
  tests/test_report_reproduction.py
199
222
  tests/test_results_csv.py
223
+ tests/test_runner_meta.py
200
224
  tests/test_toolutils.py
201
225
  tests/test_visualize.py
202
226
  tests/test_vulkaninfo_parse.py
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ csperf = csperf.cli:main
3
+
4
+ [csperf.toolchains]
5
+ system = csperf.plugins.toolchains:SystemToolchainProvider
@@ -10,12 +10,12 @@ pip-audit>=2.7
10
10
  urllib3>=2.7
11
11
  click>=8.3.3
12
12
  cryptography>=50.0.0
13
- GitPython>=3.1.57
13
+ GitPython>=3.1.59
14
14
  idna>=3.15
15
15
  Pillow>=12.3.0
16
16
  Pygments>=2.20.0
17
17
  requests>=2.33.0
18
- tornado>=6.5.7
18
+ tornado>=6.5.8
19
19
 
20
20
  [distributed]
21
21
  ray>=2.10
@@ -25,7 +25,7 @@ dask>=2024.3.1
25
25
  openpyxl>=3.1
26
26
 
27
27
  [pdf]
28
- weasyprint>=62
28
+ weasyprint>=70.0
29
29
 
30
30
  [track]
31
31
  mlflow>=2.11
@@ -13,7 +13,13 @@ __all__ = ["__version__"]
13
13
 
14
14
 
15
15
  def _project_version() -> str:
16
- """Read the canonical version from installed metadata or pyproject.toml."""
16
+ """Read the canonical version from pyproject.toml.
17
+
18
+ Installed metadata can lag behind the source tree (e.g. an editable
19
+ install from an older release), so pyproject.toml is the single source
20
+ of truth. Only fall back to installed metadata when pyproject.toml is
21
+ unavailable (e.g. a wheel installed without the source tree).
22
+ """
17
23
 
18
24
  project_file = Path(__file__).resolve().parents[2] / "pyproject.toml"
19
25
  try: