tritonparse 0.2.4.dev20250928071447__tar.gz → 0.3.2.dev20251113071521__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 (138) hide show
  1. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.github/workflows/test.yml +1 -7
  2. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.gitignore +1 -0
  3. tritonparse-0.3.2.dev20251113071521/CHANGELOG.md +394 -0
  4. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/PKG-INFO +94 -50
  5. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/README.md +93 -49
  6. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/pyproject.toml +3 -0
  7. tritonparse-0.3.2.dev20251113071521/run.py +8 -0
  8. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/test_add.py +0 -1
  9. tritonparse-0.3.2.dev20251113071521/tests/test_tritonparse.py +1567 -0
  10. tritonparse-0.3.2.dev20251113071521/tritonparse/__main__.py +7 -0
  11. tritonparse-0.3.2.dev20251113071521/tritonparse/cli.py +91 -0
  12. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/common.py +7 -5
  13. tritonparse-0.3.2.dev20251113071521/tritonparse/context_manager.py +64 -0
  14. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/event_diff.py +2 -0
  15. tritonparse-0.3.2.dev20251113071521/tritonparse/ir_analysis.py +427 -0
  16. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/ir_parser.py +147 -2
  17. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/mapper.py +2 -0
  18. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/cli.py +53 -0
  19. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/function_extractor.py +222 -0
  20. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/reproducer/ingestion/ndjson.py +4 -2
  21. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/orchestrator.py +86 -0
  22. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/placeholder_replacer.py +257 -0
  23. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/templates/example.py +34 -0
  24. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/reproducer/templates/loader.py +2 -0
  25. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/templates/tritonbench.py +103 -0
  26. tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/types.py +20 -0
  27. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/reproducer/utils.py +216 -53
  28. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/shared_vars.py +3 -0
  29. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/sourcemap_utils.py +24 -0
  30. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/structured_logging.py +494 -24
  31. tritonparse-0.3.2.dev20251113071521/tritonparse/tools/__init__.py +0 -0
  32. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/tools/decompress_bin_ndjson.py +2 -0
  33. tritonparse-0.3.2.dev20251113071521/tritonparse/tools/disasm.py +81 -0
  34. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/tools/format_fix.py +2 -0
  35. tritonparse-0.3.2.dev20251113071521/tritonparse/tools/load_tensor.py +76 -0
  36. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/tools/prettify_ndjson.py +13 -11
  37. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/trace_processor.py +57 -19
  38. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/utils.py +12 -2
  39. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse.egg-info/PKG-INFO +94 -50
  40. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse.egg-info/SOURCES.txt +14 -8
  41. tritonparse-0.3.2.dev20251113071521/tritonparse.egg-info/entry_points.txt +2 -0
  42. tritonparse-0.3.2.dev20251113071521/website/index.html +24 -0
  43. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/package-lock.json +1440 -1654
  44. tritonparse-0.3.2.dev20251113071521/website/package.json +46 -0
  45. tritonparse-0.3.2.dev20251113071521/website/scripts/update_deps.sh +53 -0
  46. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/App.tsx +28 -2
  47. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/Callstack.tsx +1 -1
  48. tritonparse-0.3.2.dev20251113071521/website/src/components/CodeComparisonView.tsx +566 -0
  49. tritonparse-0.3.2.dev20251113071521/website/src/components/CodeViewer.css +95 -0
  50. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/CodeViewer.tsx +192 -72
  51. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/CompilationInfo.tsx +1 -1
  52. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/SingleCodeViewer.tsx +1 -1
  53. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/TritonIRs.tsx +1 -1
  54. tritonparse-0.3.2.dev20251113071521/website/src/index.css +28 -0
  55. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/pages/CodeView.tsx +2 -2
  56. tritonparse-0.3.2.dev20251113071521/website/src/pages/IRAnalysis.tsx +169 -0
  57. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/pages/KernelOverview.tsx +35 -3
  58. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/utils/dataLoader.ts +27 -1
  59. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/vite.config.ts +2 -0
  60. tritonparse-0.2.4.dev20250928071447/.ci/install-triton-kernels.sh +0 -87
  61. tritonparse-0.2.4.dev20250928071447/.github/copilot-instructions.md +0 -47
  62. tritonparse-0.2.4.dev20250928071447/CHANGELOG.md +0 -129
  63. tritonparse-0.2.4.dev20250928071447/docs/README.md +0 -13
  64. tritonparse-0.2.4.dev20250928071447/docs/screenshots/code-comparison.png +0 -0
  65. tritonparse-0.2.4.dev20250928071447/docs/screenshots/kernel-overview.png +0 -0
  66. tritonparse-0.2.4.dev20250928071447/run.py +0 -48
  67. tritonparse-0.2.4.dev20250928071447/tests/example_output/repro/repro_context_20250816192455.json +0 -448
  68. tritonparse-0.2.4.dev20250928071447/tests/test_tritonparse.py +0 -828
  69. tritonparse-0.2.4.dev20250928071447/tritonparse/reproducer/cli.py +0 -27
  70. tritonparse-0.2.4.dev20250928071447/tritonparse/reproducer/orchestrator.py +0 -63
  71. tritonparse-0.2.4.dev20250928071447/tritonparse/reproducer/templates/example.py +0 -239
  72. tritonparse-0.2.4.dev20250928071447/tritonparse/tools/load_tensor.py +0 -58
  73. tritonparse-0.2.4.dev20250928071447/website/index.html +0 -14
  74. tritonparse-0.2.4.dev20250928071447/website/package.json +0 -42
  75. tritonparse-0.2.4.dev20250928071447/website/postcss.config.js +0 -6
  76. tritonparse-0.2.4.dev20250928071447/website/src/components/CodeComparisonView.tsx +0 -419
  77. tritonparse-0.2.4.dev20250928071447/website/src/index.css +0 -76
  78. tritonparse-0.2.4.dev20250928071447/website/tailwind.config.js +0 -8
  79. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.ci/README.md +0 -0
  80. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.ci/install-project.sh +0 -0
  81. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.ci/install-triton.sh +0 -0
  82. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.ci/run-tests.sh +0 -0
  83. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.ci/setup.sh +0 -0
  84. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.github/PAGES_SETUP.md +0 -0
  85. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.github/workflows/deploy-pages-standalone.yml +0 -0
  86. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.github/workflows/deploy-pages.yml +0 -0
  87. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/.github/workflows/nightly-pypi.yml +0 -0
  88. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/CODE_OF_CONDUCT.md +0 -0
  89. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/CONTRIBUTING.md +0 -0
  90. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/LICENSE +0 -0
  91. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/Makefile +0 -0
  92. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/__init__.py +0 -0
  93. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/setup.cfg +0 -0
  94. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/README.md +0 -0
  95. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/__init__.py +0 -0
  96. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/example_output/logs/dedicated_log_triton_trace_findhao_.ndjson +0 -0
  97. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/example_output/parsed_output/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
  98. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/example_output/parsed_output/f0_fc0_a0_cai-.ndjson.gz +0 -0
  99. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/example_output/parsed_output/log_file_list.json +0 -0
  100. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/example_output/parsed_output_complex/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
  101. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tests/example_output/parsed_output_complex/log_file_list.json +0 -0
  102. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/__init__.py +0 -0
  103. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/extract_source_mappings.py +0 -0
  104. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/reproducer/__init__.py +0 -0
  105. {tritonparse-0.2.4.dev20250928071447/tritonparse/tools → tritonparse-0.3.2.dev20251113071521/tritonparse/reproducer/templates}/__init__.py +0 -0
  106. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/source_type.py +0 -0
  107. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/tools/readme.md +0 -0
  108. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse/tp_logger.py +0 -0
  109. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse.egg-info/dependency_links.txt +0 -0
  110. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse.egg-info/requires.txt +0 -0
  111. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/tritonparse.egg-info/top_level.txt +0 -0
  112. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/eslint.config.js +0 -0
  113. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/public/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
  114. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/public/f0_fc0_a0_cai-.ndjson +0 -0
  115. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/public/favicon.ico +0 -0
  116. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/public/logo.svg +0 -0
  117. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/scripts/inline-html.js +0 -0
  118. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/App.css +0 -0
  119. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/assets/react.svg +0 -0
  120. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/ArgumentViewer.tsx +0 -0
  121. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/CopyCodeButton.tsx +0 -0
  122. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/DataSourceSelector.tsx +0 -0
  123. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/DiffComparisonView.tsx +0 -0
  124. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/DiffViewer.tsx +0 -0
  125. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/ExternalLink.tsx +0 -0
  126. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/StackDiffViewer.tsx +0 -0
  127. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/ToggleSwitch.tsx +0 -0
  128. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/components/WelcomeScreen.tsx +0 -0
  129. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/context/FileDiffSession.tsx +0 -0
  130. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/main.tsx +0 -0
  131. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/pages/FileDiffView.tsx +0 -0
  132. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/utils/fbDetection.ts +0 -0
  133. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/utils/safeImport.ts +0 -0
  134. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/utils/tensor.ts +0 -0
  135. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/src/vite-env.d.ts +0 -0
  136. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/tsconfig.app.json +0 -0
  137. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/tsconfig.json +0 -0
  138. {tritonparse-0.2.4.dev20250928071447 → tritonparse-0.3.2.dev20251113071521}/website/tsconfig.node.json +0 -0
@@ -142,7 +142,7 @@ jobs:
142
142
  TRITON_COMMIT: ${{ steps.triton-commit.outputs.commit }}
143
143
  run: |
144
144
  bash .ci/install-triton.sh
145
- bash .ci/install-triton-kernels.sh
145
+
146
146
  - name: Install project dependencies
147
147
  env:
148
148
  CONDA_ENV: tritonparse
@@ -192,12 +192,6 @@ jobs:
192
192
  run: |
193
193
  bash .ci/setup.sh
194
194
 
195
- - name: Install Triton kernels
196
- env:
197
- CONDA_ENV: tritonparse-pip
198
- run: |
199
- bash .ci/install-triton-kernels.sh
200
-
201
195
  - name: Install project dependencies
202
196
  env:
203
197
  CONDA_ENV: tritonparse-pip
@@ -70,4 +70,5 @@ env.bak/
70
70
  venv.bak/
71
71
  *.mdc
72
72
  repro_output/
73
+ .github/copilot-instructions.md
73
74
  # end
@@ -0,0 +1,394 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.3.1] - 2025-11-03
9
+
10
+ ### TritonParse Release Notes (last 24 commits)
11
+
12
+ - **Date range**: 2025-10-14 — 2025-11-03
13
+ - **Scope**: IR Analysis enhancements (beta), Reproducer template extensions, code viewer improvements, bug fixes.
14
+
15
+ ### Highlights
16
+
17
+ - **📊 IR Analysis (Beta)**: New analysis capabilities for visualizing Software Pipelining (SWP), BufferOps statistics, and loop schedules in Triton IR. **Note: This is a beta feature.**
18
+ - **🏷️ Variable Location Tracking**: Complete location alias tracking system for mapping IR locations back to source code with frontend visualization.
19
+ - **🔧 TritonBench Template**: New reproducer template for easy TritonBench integration and kernel benchmarking.
20
+ - **🎨 Code Viewer Enhancements**: Full Python source extraction, function highlighting, and performance optimizations.
21
+ - **🔄 Reproducer Refactoring**: AST-based function extraction eliminates code duplication and simplifies template maintenance.
22
+
23
+ ### Changes by area
24
+
25
+ #### 📊 **IR Analysis (Beta)**
26
+ - **Software Pipelining (SWP) visualization** (PR #189):
27
+ - Analyzes inner `scf.for` loops and identifies prologue, loop_body, and epilogue stages
28
+ - Tracks `tt.load` and `tt.dot` operations through TTIR → TTGIR → Python source mappings
29
+ - Frontend displays simplified source code with SWP stage information
30
+ - **Limitations**: Does not support Warp Specialization or Blackwell operators yet
31
+ - **BufferOps backend information** (PR #181):
32
+ - Statistical analysis of buffer operations (tt.load/store, amdgpu.buffer_load/store, global_load/store) at TTGIR and AMDGCN levels
33
+ - Useful for AMD GPU backend optimization analysis
34
+ - **Web frontend IR Analysis page** (PR #184):
35
+ - New dedicated page at `/ir-analysis` route with integrated display for loop schedules and BufferOps statistics
36
+
37
+ #### 🏷️ **Variable Location Tracking**
38
+ Complete three-part implementation (PR #186, #187, #188):
39
+ - Fixed #loc storage key conflict in IR parser
40
+ - Added location alias parsing support in `ir_parser.py` and `trace_processor.py`
41
+ - Frontend visualization with CSS styling and interactive location display in Code Viewer
42
+
43
+ #### 🔄 **Reproducer System**
44
+ - **TritonBench template support** (commit 3493ac8):
45
+ - New template: `tritonparse/reproducer/templates/tritonbench.py`
46
+ - CLI option: `--template tritonbench` for TritonBench-compatible reproducers
47
+ - Integrates with TritonBench's `BenchmarkOperator` and benchmark harness
48
+ - **AST-based refactoring** (PR #178):
49
+ - New module: `tritonparse/reproducer/function_extractor.py` using Python AST
50
+ - Simplified `example.py` template from ~370 lines to ~20 lines
51
+ - **Bug fixes**:
52
+ - Fixed 1-based to 0-based line number conversion (PR #185)
53
+ - Corrected output key typo: `repo_*` → `repro_*` (PR #175)
54
+ - CUDA device normalization to `cuda:0` format (PR #177)
55
+
56
+ #### 📝 **Callsite Location Support**
57
+ - **TTIR/TTGIR callsite location** (PR #190):
58
+ - Extended IR parser to extract callsite location information
59
+ - Better debugging with call graph information and test coverage
60
+
61
+ #### 💻 **Code Viewer & Frontend**
62
+ - **Full Python source extraction** (commit 2976887):
63
+ - Enhanced `structured_logging.py` to extract complete Python source files
64
+ - **Full file display with function highlighting** (commit 220d5a4):
65
+ - CodeViewer now supports displaying entire source files with function-level highlighting
66
+ - **CodeComparisonView performance optimization** (commit c17e584):
67
+ - Significant rendering performance improvements for large files
68
+ - Reduced re-renders and improved memory efficiency
69
+
70
+ #### 🌐 **Website & Maintenance**
71
+ - **Dependency updates** (PR #179): Added automation script `website/scripts/update_deps.sh`
72
+ - **Copyright updates** (PR #183): Updated copyright headers across source files
73
+
74
+ ### Compatibility notes
75
+
76
+ - **No breaking changes**: All updates are backward compatible with v0.3.0.
77
+ - **IR Analysis (Beta)**: New optional feature accessible through web UI.
78
+ - **TritonBench template**: Optional, does not impact existing reproducer generation.
79
+
80
+ ### Upgrade guidance
81
+
82
+ 1. **Using IR Analysis (Beta)**:
83
+ - Open web UI and navigate to IR Analysis page after parsing
84
+ - View SWP stage information (prologue/loop_body/epilogue) and BufferOps statistics
85
+ - Note: Beta feature with some limitations on advanced pipelining patterns
86
+
87
+ 2. **Generating TritonBench reproducers**:
88
+ ```bash
89
+ tritonparseoss reproduce trace.ndjson.gz --line <N> --template tritonbench --out-dir <output>
90
+ ```
91
+
92
+ 3. **Code viewer enhancements**: Automatically enabled with full source display and function highlighting
93
+
94
+ ## [0.3.0] - 2025-10-14
95
+
96
+ ### TritonParse Release Notes (last 44 commits)
97
+
98
+ - **Date range**: 2025-09-19 — 2025-10-14
99
+ - **Scope**: Major feature release - Reproducer system, tensor storage, SASS support, enhanced context manager, CLI improvements.
100
+
101
+ ### Highlights
102
+
103
+ - **🔄 Reproducer System (Complete)**: Full-featured standalone kernel script generation with template support, tensor reconstruction, and multiple import modes. Extract any traced kernel into a self-contained Python script for debugging, testing, and sharing.
104
+ - **💾 TensorBlobManager**: Production-ready content-addressed tensor storage with automatic compression, deduplication, quota management, and efficient disk usage. Enables high-fidelity kernel reproduction with actual tensor data.
105
+ - **🔧 SASS Disassembly Support**: Optional NVIDIA SASS disassembly during compilation tracing for low-level debugging and performance analysis. Toggle via `enable_sass_dump` parameter or `TRITONPARSE_DUMP_SASS` environment variable.
106
+ - **🎯 Enhanced Context Manager**: Configurable `TritonParseManager` context manager with support for trace launch control, inductor compilation splitting, and flexible parsing parameters.
107
+ - **⚡ CLI Modernization**: Refactored to subcommand structure (`tritonparse parse`, `tritonparse reproduce`) with unified entry point and improved argument handling.
108
+ - **📊 Auto-enable Inductor Launch Tracing**: Automatic detection and tracing of PyTorch Inductor-compiled kernels without manual configuration.
109
+ - **🌐 Website Improvements**: Light mode color scheme, improved stack display in Launch Analysis, and better file diff navigation.
110
+
111
+ ### Changes by area
112
+
113
+ #### 🔄 **Reproducer System**
114
+ - **Complete reproducer infrastructure** (PR #117-127):
115
+ - CLI subcommand structure: `tritonparse reproduce <ndjson_file> [options]`
116
+ - NDJSON ingestion layer with IR preservation
117
+ - Context bundle system for kernel metadata and parameters
118
+ - Standardized output paths: `repro_output/<kernel_name>/repro_<timestamp>.py`
119
+ - Template support with placeholder system for custom generation
120
+ - Example templates for tensor loading and kernel invocation
121
+ - Dynamic import generation for kernel dependencies
122
+ - Kernel signature parsing and integration
123
+ - Kernel invocation snippet generation with grid/block configuration
124
+ - **Kernel import modes** (PR #165, #166):
125
+ - `--kernel-import direct`: Import kernel from source file
126
+ - `--kernel-import override-ttir`: Override and inject TTIR for advanced debugging
127
+ - Flexible kernel loading strategies for different debugging workflows
128
+ - **Enhanced tensor handling** (PR #141):
129
+ - Improved tensor metadata logging (shape, dtype, stride, storage offset, device)
130
+ - Better tensor reconstruction quality in generated reproducers
131
+ - Support for non-contiguous tensors (commit 12f1d1b)
132
+ - **Extensible placeholder system** (PR #149):
133
+ - Refactored placeholder replacement with class-based design
134
+ - Support for: `{{KERNEL_IMPORT_PLACEHOLDER}}`, `{{KERNEL_INVOCATION_PLACEHOLDER}}`, `{{KERNEL_SYSPATH_PLACEHOLDER}}`, `{{JSON_FILE_NAME_PLACEHOLDER}}`
135
+ - Easy extension for future template needs
136
+ - **Documentation**: Comprehensive reproducer section in README (PR #161) and Usage Guide in Wiki
137
+
138
+ #### 💾 **TensorBlobManager & Storage**
139
+ - **Production-ready blob storage** (PR #156):
140
+ - Content-addressed storage using BLAKE2b hashing
141
+ - Automatic gzip compression for large tensors (>1MB)
142
+ - Two-level directory structure (`xx/hash.bin.gz`) to avoid filesystem limits
143
+ - Automatic deduplication: identical tensors stored only once
144
+ - Storage quota enforcement (default: 100GB)
145
+ - Per-tensor size limit (default: 10GB) to prevent OOM
146
+ - Real-time statistics: saved count, dedup hits, compression ratio
147
+ - Graceful degradation with warning logs when quota exceeded
148
+ - **Compression support** (PR #157):
149
+ - Configurable compression level (default: 4)
150
+ - Atomic writes using temporary files + rename for safety
151
+ - Hash verification for data integrity
152
+ - **Comprehensive testing** (PR #162):
153
+ - Unit tests for compression, deduplication, quota management
154
+ - Edge case handling and cleanup verification
155
+
156
+ #### 🔧 **SASS Disassembly**
157
+ - **SASS extraction support** (PR #137):
158
+ - New tool: `tritonparse/tools/disasm.py` for CUBIN disassembly
159
+ - Integration into structured logging behind opt-in flag
160
+ - Uses `nvdisasm -c -gp -g -gi` for detailed disassembly
161
+ - Parses output to find function blocks with preserved labels and source mapping
162
+ - **Configuration**:
163
+ - Environment variable: `TRITONPARSE_DUMP_SASS=1`
164
+ - API parameter: `enable_sass_dump=True` in `structured_logging.init()`
165
+ - API parameter takes precedence over environment variable
166
+ - **Robustness**:
167
+ - Error handling for subprocess failures, missing nvdisasm, and generic exceptions
168
+ - Writes marker messages instead of failing the trace
169
+ - Requires NVIDIA CUDA Binary Utilities (nvdisasm)
170
+ - **CUDA testing** (PR #138):
171
+ - Strengthened tests to validate SASS extraction and persistence
172
+
173
+ #### 🎯 **Context Manager & API**
174
+ - **Enhanced context manager** (PR #144, #159):
175
+ - Added `__init__` method with configurable parameters:
176
+ - `enable_trace_launch`: Control trace launch logging
177
+ - `split_inductor_compilations`: Control inductor compilation splitting
178
+ - `**parse_kwargs`: Additional arguments for `unified_parse`
179
+ - Updated `__exit__` to pass parameters through to parsing pipeline
180
+ - More flexible for different use cases and workflows
181
+ - **Split inductor compilations control**:
182
+ - Parameter threading through: `unified_parse()` → `oss_run()` → `parse_logs()` → `parse_single_file()`
183
+ - Renamed from `split_by_frame_id_and_compile_id` to `split_inductor_compilations` for clarity
184
+ - Default `True`: splits by frame_id, frame_compile_id, attempt_id, compiled_autograd_id
185
+ - When `False`: groups all inductor compilations together
186
+ - Follows tlparse's convention
187
+ - **Unit tests** (commit a5338ce):
188
+ - Tests for enhanced context manager behavior
189
+ - Validation of split inductor compilation modes
190
+
191
+ #### ⚡ **CLI & Entry Points**
192
+ - **Subcommand structure** (PR #117):
193
+ - Refactored from single-command to modern subcommand architecture
194
+ - `tritonparse parse <source> [options]` - Run structured log parser
195
+ - `tritonparse reproduce <ndjson_file> [options]` - Generate reproducers
196
+ - Breaking change: old `python run.py <source>` no longer works
197
+ - Extract parser flags into `tritonparse.utils._add_parse_args()`
198
+ - Remove `unified_parse_from_cli` (programmatic `unified_parse()` remains)
199
+ - **Unified entry point** (PR #133):
200
+ - Added proper CLI entry point in package configuration
201
+ - Unified argument handling across commands
202
+ - **CLI entry point fix** (PR #154):
203
+ - Fixed `ModuleNotFoundError` for tritonparse CLI entry point
204
+ - Improved package installation and command availability
205
+
206
+ #### 📊 **Logging & Tracing**
207
+ - **Auto-enable Inductor Launch Tracing** (PR #142):
208
+ - Automatically detect and trace PyTorch Inductor-compiled kernels
209
+ - No manual configuration required for Inductor workflows
210
+ - Seamless integration with existing tracing infrastructure
211
+ - **Kernel source path output** (commit 03bc1e1):
212
+ - Output `kernel_src_path` in trace metadata for better debugging
213
+ - **NDJSON prettifier improvements** (PR #135):
214
+ - Renamed and inverted flag to default-filter IRs
215
+ - More intuitive filtering behavior
216
+ - **Debug flag deprecation** (PR #132):
217
+ - Removed unused debugging flags
218
+ - Cleaner configuration surface
219
+
220
+ #### 🌐 **Website & UI**
221
+ - **Upgraded to Tailwind CSS v4** (commit 6c42d8a):
222
+ - Migrated from PostCSS plugin to `@tailwindcss/vite` for improved performance
223
+ - Updated CSS import syntax from `@tailwind` directives to `@import "tailwindcss"`
224
+ - Removed `tailwind.config.js` and `postcss.config.js` (now CSS-based configuration)
225
+ - Updated `shadow` class naming to v4 convention (`shadow` → `shadow-sm`)
226
+ - Cleaned up global CSS to prevent interference with Tailwind utility classes
227
+ - **Upgraded all frontend dependencies**:
228
+ - Vite: 6.3.5 → 7.1.10
229
+ - React ecosystem: Updated to latest versions (React 19+)
230
+ - TypeScript: 5.7.2 → 5.7.3
231
+ - Added `@types/node` for Node.js type definitions
232
+ - Fixed dompurify security vulnerability (3.1.7 → 3.3.0) via npm overrides
233
+ - **Light mode color scheme** (PR #139):
234
+ - Updated `index.css` to support only light mode
235
+ - Consistent, professional appearance
236
+ - **Improved stack display** (PR #151):
237
+ - Better stack trace visualization in Launch Analysis
238
+ - Clearer debugging information
239
+ - **Documentation cleanup** (PR #172):
240
+ - Removed redundant docs directory and screenshots
241
+ - Streamlined repository structure
242
+
243
+ #### 🔧 **Bug Fixes & Maintenance**
244
+ - **General bug fixes** (PR #153):
245
+ - Multiple stability and reliability improvements
246
+ - Better error handling throughout codebase
247
+ - **Deserialization fix** (commit d4d7a20):
248
+ - Fixed unhandled types in deserialization
249
+ - More robust data loading
250
+ - **README improvements** (PR #158, #164):
251
+ - Refactored and cleaned up README
252
+ - Fixed command typos in reproducer generation examples
253
+ - Clearer installation and usage instructions
254
+ - **Test cleanup** (PR #160):
255
+ - Removed deprecated test for triton_kernels Tensor functionality
256
+ - Updated test suite for current codebase
257
+
258
+ ### Compatibility notes
259
+
260
+ - **Breaking Change**: CLI now uses subcommand structure. Old usage `python run.py <source>` must be updated to `tritonparse parse <source>` or `python run.py parse <source>`.
261
+ - **New Dependencies**: SASS disassembly requires NVIDIA CUDA Binary Utilities (`nvdisasm`). This is optional and only needed if `enable_sass_dump=True`.
262
+ - **Storage**: TensorBlobManager introduces new blob storage directory structure. Default quota is 100GB; configure via `TensorBlobManager` initialization if needed.
263
+ - **Context Manager API**: Enhanced with new parameters. Fully backward compatible with sensible defaults.
264
+
265
+ ### Upgrade guidance
266
+
267
+ 1. **Update CLI commands**: Change `python run.py <source>` to `tritonparse parse <source>` or use the new `tritonparse` command if installed via pip.
268
+ 2. **Reproducer usage**: Use `tritonparse reproduce ./parsed_output/trace.ndjson.gz --line <N> --out-dir <output>` to generate standalone kernel scripts.
269
+ 3. **SASS disassembly**: Opt-in by setting `TRITONPARSE_DUMP_SASS=1` or passing `enable_sass_dump=True` to `structured_logging.init()`. Requires `nvdisasm` in PATH.
270
+ 4. **Tensor storage**: Enable high-fidelity reproduction by using TensorBlobManager (enabled by default when `enable_trace_launch=True`).
271
+ 5. **Context manager**: Use enhanced `TritonParseManager` for more control over tracing and parsing behavior.
272
+
273
+ ## [0.2.3] - 2025-09-19
274
+
275
+ ### TritonParse Release Notes (last 15 commits)
276
+
277
+ - **Date range**: 2025-09-13 — 2025-09-18
278
+ - **Scope**: Website UI/UX, core library, CI/CD & packaging, documentation & testing.
279
+
280
+ ### Highlights
281
+ - **Website File Diff tooling**: Introduced a new Diff Comparison view and File Diff page, preserved diff sessions across navigation, integrated Monaco editor, added preview mode, and shipped a round of UI polish with a URL redirect fix for File Diff navigation.
282
+ - **Kernel Overview**: Added a tiled kernel view toggle to improve dense overviews.
283
+ - **Core**: Added lazy-import support for Triton repo `triton_kernels` custom types, attribution check for `torch._utils_internal`, and safer file mapping cleanup in the log parser.
284
+ - **CI/Packaging**: Refactored dependencies in `pyproject.toml`, removed a legacy Triton install script, and updated GitHub Actions workflows.
285
+ - **Docs & tests**: Improved README guidance; added tests and example outputs; minor UI bug fix in `CopyCodeButton` SVG attributes.
286
+
287
+ ### Changes by area
288
+ - **Website UI/UX**
289
+ - Introduce `DiffComparisonView` and `FileDiffView`; maintain diff session state; integrate Monaco editor; preview mode; UI polish and navigation fixes.
290
+ - Add tiled kernel view toggle in `KernelOverview`.
291
+
292
+ - **Core library**
293
+ - Lazy-import support for `triton_kernels` custom types; extend tensor handling in tests.
294
+ - Add attribution check for `torch._utils_internal`.
295
+ - Refactor file mapping cleanup in `parse_logs`.
296
+
297
+ - **CI/CD & packaging**
298
+ - Refactor dependencies in `pyproject.toml`; remove `.ci/install-triton-pip.sh`.
299
+ - Update GitHub Actions workflows; add helper for `triton_kernels` in CI.
300
+
301
+ - **Docs & testing**
302
+ - Clarify tool purpose and installation in `README.md`.
303
+ - Add tests and sample outputs; small UI component fixes.
304
+
305
+ ### Compatibility notes
306
+ - No breaking changes expected. `triton_kernels` support is optional via lazy import.
307
+
308
+ ### Upgrade guidance
309
+ - Reinstall website dependencies if developing the UI to pick up the Monaco editor.
310
+
311
+ ## [0.2.0] - 2025-09-11
312
+
313
+ ### TritonParse Release Notes (last 27 commits)
314
+
315
+ - **Date range**: 2025-07-25 — 2025-09-11
316
+ - **Scope**: Core library, website UI/UX, performance & scalability, CI/CD & packaging, documentation & maintenance.
317
+
318
+ ### Highlights
319
+ - **Website usability**: Drag-and-drop to open logs; one-click copy in code viewers; sticky, compact kernel selector; footer shows app version, localized build date, and Git short SHA; tensor arguments in Launch Analysis now display concise summaries with expandable details.
320
+ - **Large-file parsing**: Streaming NDJSON parsing and robust gzip handling significantly reduce memory usage and improve stability for files >100 MB.
321
+ - **Core & integrations**: Persist Inductor kernel config into `inductor_metadata` and pass to JIT hooks; ensure Inductor path invokes `jit_post_compile_hook`; new `init_with_env` for environment-based initialization; move compilation timing `times` into `metadata` for automatic frontend rendering.
322
+ - **Releases & versioning**: Adopt setuptools-scm dynamic versioning; add Nightly PyPI publishing; enable stable publishing on tag push; fix nightly version potentially being older than stable; correct packaging license metadata.
323
+ - **CI stability**: Ubuntu 24.04 compatibility; improved CUDA/cuDNN setup and detection; parallelize jobs; add parallel CI for pip-installed Triton; better error visibility in install scripts; upgrade libstdc++.
324
+
325
+ ### Changes by area
326
+ - **Core library**
327
+ - Save Inductor kernel params to `inductor_metadata` and forward to JIT hooks.
328
+ - Manually invoke `jit_post_compile_hook` in the Inductor Triton compile path.
329
+ - Add `init_with_env` that reads `TRITON_TRACE_FOLDER` and `TRITON_TRACE_LAUNCH`.
330
+ - Move compilation `times` into `metadata` so the frontend auto-renders it.
331
+ - Use cached source in compile listener for stability.
332
+ - Refactor source-mapping pipeline into modular units for maintainability.
333
+
334
+ - **Website UI/UX**
335
+ - Drag-and-drop to open supported log files.
336
+ - Copy button in code viewer panels.
337
+ - Sticky/collapsible/compact kernel selector in Kernel Overview; resizable compilation stack trace vertically.
338
+ - Launch Analysis: tensor args show concise summaries with expandable details.
339
+ - Footer displays version, localized build date, and Git short SHA.
340
+ - Streaming NDJSON parsing and improved error handling for large logs.
341
+
342
+ - **Performance & scalability**
343
+ - Use streaming path for files >100 MB to reduce memory peaks and improve robustness.
344
+
345
+ - **CI/CD & packaging**
346
+ - Enable setuptools-scm and nightly PyPI publishing.
347
+ - Publish stable releases on tag push; improve version computation and tag detection.
348
+ - Fix nightly version possibly lagging behind stable; add clear error on missing tags.
349
+ - Add parallel CI for pip-installed Triton; recommend pip installation in docs.
350
+ - Improve Ubuntu 24.04 setup, CUDA/cuDNN handling, and job parallelism.
351
+ - Increase error visibility in install scripts and upgrade libstdc++.
352
+ - Define lower bounds for prerequisites in `pyproject.toml`.
353
+
354
+ - **Docs & maintenance**
355
+ - Move repository to `meta-pytorch` org; update links and guidance; add AI assistant context.
356
+ - Update/restore CONTRIBUTING docs to avoid breaking downstream consumers.
357
+
358
+ - **Testing**
359
+ - Preserve test outputs when `TEST_KEEP_OUTPUT=1` to aid debugging.
360
+
361
+ ### Compatibility notes
362
+ - Versioning & publishing: setuptools-scm with tag-based stable releases and nightly dev versions. Ensure `PYPI_API_TOKEN` is configured in CI if publishing is intended.
363
+ - Data format: compilation timing `times` moved under `metadata`; update any downstream scripts that referenced the old location.
364
+ - Build metadata: footer shows localized build date and Git short SHA; restart dev server to refresh these values.
365
+
366
+ ### Upgrade guidance
367
+ - Prefer Triton from PyPI (≥ 3.4.0) and adhere to the lower bounds declared in `pyproject.toml`.
368
+ - For deterministic build metadata in the website, set `BUILD_DATE` and `GIT_COMMIT_SHA_SHORT` in the environment when running dev/build.
369
+
370
+
371
+ ## [0.1.1] - 2025-07-25
372
+
373
+ ### Added
374
+
375
+ - **Launch Difference Analysis**: A new `launch_diff` event is automatically generated for each kernel, providing a concise summary of how launch parameters vary across different calls. This helps to quickly identify changes in kernel arguments, grid dimensions, and other metadata.
376
+ - **Enhanced Web UI for Launch Analysis**: The web interface now visualizes the `launch_diff` data, offering an interactive way to explore how kernel launches differ. It includes a detailed breakdown of constant vs. varying parameters and their value distributions.
377
+ - **Kernel-Centric Event Grouping**: The parser now intelligently groups compilation and launch events by kernel, making it easier to analyze the entire lifecycle of a specific kernel.
378
+ - **Launch Event Tracing Control**: Added an `enable_trace_launch` parameter to `tritonparse.structured_logging.init` to give users explicit control over whether to trace kernel launch events.
379
+ - **Enhanced Logging and Testing**: Improved the structured logging initialization and expanded test coverage to verify the correctness of `launch` and `compilation` event counts.
380
+
381
+ ## [0.1.0] - 2025-07-21
382
+
383
+ This is the initial public release of TritonParse.
384
+
385
+ ### Added
386
+
387
+ - **Interactive Web Interface**: A rich, client-side web UI for exploring, comparing, and understanding Triton IRs. Features side-by-side code views, synchronized highlighting, and detailed metadata panels.
388
+ - **Structured Logging Backend**: A powerful Python backend to capture detailed information from the Triton compiler and runtime, including IRs (TTIR, TTGIR, PTX, AMDGCN), metadata, timings, and Python source code, and outputs it as structured NDJSON logs.
389
+ - **Source-to-Source Mapping**: Automatic generation of bidirectional mappings between Python code and all intermediate representations (IRs), allowing you to trace a line of Python code all the way down to the generated assembly and back.
390
+ - **Kernel Launch Tracing**: Capability to trace each kernel launch, capturing the grid dimensions, kernel arguments (with detailed tensor information), and other runtime metadata.
391
+ - **Flexible Log Parsing CLI**: A command-line interface (`run.py`) to parse logs from local files or directories, and from single or multiple ranks in a distributed training job.
392
+ - **Prerequisites Documentation**: Clear requirements for Python (>=3.10), PyTorch, and Triton (>3.3.1, compiled from source).
393
+ - **Getting Started Guide**: A step-by-step workflow for generating, parsing, and visualizing traces.
394
+ - **Configuration via Environment Variables**: Support for `TRITON_TRACE`, `TRITON_TRACE_LAUNCH`, `TRITONPARSE_KERNEL_ALLOWLIST`, and `TRITON_TRACE_GZIP`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tritonparse
3
- Version: 0.2.4.dev20250928071447
3
+ Version: 0.3.2.dev20251113071521
4
4
  Summary: TritonParse: A Compiler Tracer, Visualizer, and mini-Reproducer Generator for Triton Kernels
5
5
  Author-email: Yueming Hao <yhao@meta.com>
6
6
  License-Expression: BSD-3-Clause
@@ -27,36 +27,73 @@ Dynamic: license-file
27
27
 
28
28
  ## ✨ Key Features
29
29
 
30
- - **🚀 Launch Difference Analysis** - Automatically detect and visualize variations in kernel launch parameters, helping you pinpoint performance bottlenecks and debug launch configurations.
31
- - **🔍 Interactive Visualization** - Explore Triton kernels with detailed metadata and stack traces
32
- - **📊 Multi-format IR Support** - View TTGIR, TTIR, LLIR, PTX, and AMDGCN in one place
33
- - **🔄 Side-by-side Comparison** - Compare IR stages with synchronized highlighting
34
- - **📝 Structured Logging** - Capture detailed compilation and launch events with source mapping
35
- - **🌐 Ready-to-use Interface** - No installation required, works in your browser
36
- - **🔒 Privacy-first** - All processing happens locally in your browser, no data uploaded
30
+ ### 🔍 Visualization & Analysis
31
+ - **🚀 Launch Difference Analysis** - Detect and visualize kernel launch parameter variations
32
+ - **📊 IR Code View** - Side-by-side IR viewing with synchronized highlighting and line mapping
33
+ - **🔄 File Diff View** - Compare kernels across different trace files side-by-side
34
+ - **📝 Multi-format IR Support** - View TTGIR, TTIR, LLIR, PTX, and AMDGCN
35
+ - **🎯 Interactive Code Views** - Click-to-highlight corresponding lines across IR stages
36
+
37
+ ### 🔧 Reproducer & Debugging Tools
38
+ - **🔄 Standalone Script Generation** - Extract any kernel into a self-contained Python script
39
+ - **💾 Tensor Data Reconstruction** - Preserve actual tensor data or use statistical approximation
40
+ - **🎯 Custom Templates** - Flexible reproducer templates for different workflows
41
+ - **🐛 Bug Isolation** - Share reproducible test cases for debugging and collaboration
42
+
43
+ ### 📊 Structured Logging & Analysis
44
+ - **📝 Compilation & Launch Tracing** - Capture detailed events with source mapping
45
+ - **🔍 Stack Trace Integration** - Full Python stack traces for debugging
46
+ - **📈 Metadata Extraction** - Comprehensive kernel statistics
47
+
48
+ ### 🛠️ Developer Tools
49
+ - **🌐 Browser-based Interface** - No installation required, works in your browser
50
+ - **🔒 Privacy-first** - All processing happens locally, no data uploaded
37
51
 
38
52
  ## 🚀 Quick Start
39
53
 
40
- ### 1. Generate Traces
54
+ ### 1. Installation
55
+
56
+ **Four options to install:**
57
+ ```bash
58
+ # install nightly version
59
+ pip install -U --pre tritonparse
60
+ # install stable version
61
+ pip install tritonparse
62
+ # install from source
63
+ git clone https://github.com/meta-pytorch/tritonparse.git
64
+ cd tritonparse
65
+ pip install -e .
66
+ # pip install the latest version from github
67
+ pip install git+https://github.com/meta-pytorch/tritonparse.git
68
+ ```
69
+
70
+ **Prerequisites:** Python ≥ 3.10, Triton ≥ 3.4.0, GPU required (NVIDIA/AMD)
71
+
72
+ TritonParse relies on new features in Triton. If you're using nightly PyTorch, Triton is already included. Otherwise, install the latest Triton:
73
+ ```bash
74
+ pip install triton
75
+ ```
76
+
77
+ ### 2. Generate Traces
41
78
 
42
79
  ```python
43
80
  import tritonparse.structured_logging
81
+ import tritonparse.utils
44
82
 
45
- # Initialize logging with launch tracing enabled
83
+ # Initialize logging
46
84
  tritonparse.structured_logging.init("./logs/", enable_trace_launch=True)
47
85
 
48
86
  # Your Triton/PyTorch code here
49
87
  # ... your kernels ...
50
88
 
51
89
  # Parse and generate trace files
52
- import tritonparse.utils
53
- tritonparse.utils.unified_parse("./logs/")
90
+ tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
54
91
  ```
55
- The example terminal output is:
56
- ```bash
57
- tritonparse log file list: /tmp/tmp1gan7zky/log_file_list.json
58
- INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/tritonparse/tests/parsed_output
59
92
 
93
+ <details>
94
+ <summary>📝 Example output (click to expand)</summary>
95
+
96
+ ```bash
60
97
  ================================================================================
61
98
  📁 TRITONPARSE PARSING RESULTS
62
99
  ================================================================================
@@ -64,60 +101,66 @@ INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/t
64
101
  📊 Total files generated: 2
65
102
 
66
103
  📄 Generated files:
67
- --------------------------------------------------
68
104
  1. 📝 dedicated_log_triton_trace_findhao__mapped.ndjson.gz (7.2KB)
69
105
  2. 📝 log_file_list.json (181B)
70
106
  ================================================================================
71
107
  ✅ Parsing completed successfully!
72
108
  ================================================================================
73
109
  ```
110
+ </details>
74
111
 
75
- ### 2. Visualize Results
112
+ ### 3. Visualize Results
76
113
 
77
114
  **Visit [https://meta-pytorch.org/tritonparse/](https://meta-pytorch.org/tritonparse/?json_url=https://meta-pytorch.org/tritonparse/dedicated_log_triton_trace_findhao__mapped.ndjson.gz)** and open your local trace files (.ndjson.gz format).
78
115
 
79
116
  > **🔒 Privacy Note**: Your trace files are processed entirely in your browser - nothing is uploaded to any server!
80
117
 
81
- ## 🛠️ Installation
118
+ ### 4. Generate Reproducers (Optional)
119
+
120
+ Extract any kernel into a standalone, executable Python script for debugging or testing:
82
121
 
83
- **For basic usage (trace generation):**
84
- Four options:
85
122
  ```bash
86
- # install nightly version
87
- pip install -U --pre tritonparse
88
- # install stable version
89
- pip install tritonparse
90
- # install from source
91
- git clone https://github.com/meta-pytorch/tritonparse.git
92
- cd tritonparse
93
- pip install -e .
94
- # pip install the latest version from github
95
- pip install git+https://github.com/meta-pytorch/tritonparse.git
123
+ # Generate reproducer from first launch event
124
+ tritonparseoss reproduce ./parsed_output/trace.ndjson.gz --line 2 --out-dir repro_output
125
+
126
+ # Run the generated reproducer
127
+ cd repro_output/<kernel_name>/
128
+ python repro_*.py
96
129
  ```
97
130
 
98
- **Prerequisites:** Python ≥ 3.10, Triton ≥ 3.4.0, GPU required (NVIDIA/AMD)
131
+ **Python API:**
132
+ ```python
133
+ from tritonparse.reproducer.orchestrator import reproduce
99
134
 
100
- TritonParse relies on new features in Triton. Please install the latest version of Triton:
101
- ```bash
102
- pip install triton
135
+ result = reproduce(
136
+ input_path="./parsed_output/trace.ndjson.gz",
137
+ line_index=0, # 0-based index (first event is 0)
138
+ out_dir="repro_output"
139
+ )
103
140
  ```
104
141
 
142
+ <details>
143
+ <summary>🎯 Common Reproducer Use Cases (click to expand)</summary>
144
+
145
+ - **🐛 Bug Isolation**: Extract a failing kernel into a minimal standalone script
146
+ - **⚡ Performance Testing**: Benchmark specific kernels without running the full application
147
+ - **🤝 Team Collaboration**: Share reproducible test cases with colleagues or in bug reports
148
+ - **📊 Regression Testing**: Compare kernel behavior and performance across different versions
149
+ - **🔍 Deep Debugging**: Modify and experiment with kernel parameters in isolation
150
+
151
+ </details>
152
+
105
153
  ## 📚 Complete Documentation
106
154
 
107
155
  | 📖 Guide | Description |
108
156
  |----------|-------------|
109
- | **[🏠 Wiki Home](https://github.com/meta-pytorch/tritonparse/wiki)** | Complete documentation and navigation |
110
- | **[📦 Installation Guide](https://github.com/meta-pytorch/tritonparse/wiki/01.-Installation)** | Detailed setup for all scenarios |
111
- | **[📋 Usage Guide](https://github.com/meta-pytorch/tritonparse/wiki/02.-Usage-Guide)** | Complete workflow and examples |
112
- | **[🌐 Web Interface Guide](https://github.com/meta-pytorch/tritonparse/wiki/03.-Web-Interface-Guide)** | Master the visualization interface |
113
- | **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and development setup |
114
- | **[ FAQ](https://github.com/meta-pytorch/tritonparse/wiki/06.-FAQ)** | Frequently asked questions |
115
-
116
- ## 🛠️ Tech Stack
117
-
118
- - **Frontend**: React 19, TypeScript, Vite, Tailwind CSS, Monaco Editor
119
- - **Backend**: Python with Triton integration, structured logging
120
- - **Deployment**: GitHub Pages, automatic deployment
157
+ | **[🏠 Wiki Home](https://github.com/meta-pytorch/tritonparse/wiki)** | Complete documentation and quick navigation |
158
+ | **[📦 Installation](https://github.com/meta-pytorch/tritonparse/wiki/01.-Installation)** | Setup guide for all scenarios |
159
+ | **[📋 Usage Guide](https://github.com/meta-pytorch/tritonparse/wiki/02.-Usage-Guide)** | Complete workflow, reproducer generation, and examples |
160
+ | **[🌐 Web Interface](https://github.com/meta-pytorch/tritonparse/wiki/03.-Web-Interface-Guide)** | Master the visualization interface |
161
+ | **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and architecture overview |
162
+ | **[📝 Code Formatting](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)** | Formatting standards and tools |
163
+ | **[❓ FAQ](https://github.com/meta-pytorch/tritonparse/wiki/06.-FAQ)** | Quick answers and troubleshooting |
121
164
 
122
165
  ## 📊 Understanding Triton Compilation
123
166
 
@@ -130,9 +173,10 @@ Each stage can be inspected and compared to understand optimization transformati
130
173
  ## 🤝 Contributing
131
174
 
132
175
  We welcome contributions! Please see our **[Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** for:
133
- - Development setup
134
- - Code formatting standards
135
- - Pull request process
176
+ - Development setup and prerequisites
177
+ - Code formatting standards (**[Formatting Guide](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)**)
178
+ - Pull request and code review process
179
+ - Testing guidelines
136
180
  - Architecture overview
137
181
 
138
182
  ## 📞 Support & Community