tritonparse 0.2.4.dev20251007071533__tar.gz → 0.2.4.dev20251009071511__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.
Potentially problematic release.
This version of tritonparse might be problematic. Click here for more details.
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.github/workflows/test.yml +1 -7
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.gitignore +1 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/PKG-INFO +76 -31
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/README.md +75 -30
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/test_tritonparse.py +275 -97
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/context_manager.py +14 -1
- tritonparse-0.2.4.dev20251009071511/tritonparse/reproducer/templates/example.py +387 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/structured_logging.py +320 -3
- tritonparse-0.2.4.dev20251009071511/tritonparse/tools/load_tensor.py +74 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse.egg-info/PKG-INFO +76 -31
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse.egg-info/SOURCES.txt +0 -3
- tritonparse-0.2.4.dev20251007071533/.ci/install-triton-kernels.sh +0 -87
- tritonparse-0.2.4.dev20251007071533/.github/copilot-instructions.md +0 -47
- tritonparse-0.2.4.dev20251007071533/tests/example_output/repro/repro_context_20250816192455.json +0 -448
- tritonparse-0.2.4.dev20251007071533/tritonparse/reproducer/templates/example.py +0 -320
- tritonparse-0.2.4.dev20251007071533/tritonparse/tools/load_tensor.py +0 -58
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.ci/README.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.ci/install-project.sh +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.ci/install-triton.sh +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.ci/run-tests.sh +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.ci/setup.sh +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.github/PAGES_SETUP.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.github/workflows/deploy-pages-standalone.yml +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.github/workflows/deploy-pages.yml +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/.github/workflows/nightly-pypi.yml +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/CHANGELOG.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/CODE_OF_CONDUCT.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/CONTRIBUTING.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/LICENSE +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/Makefile +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/__init__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/docs/README.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/docs/screenshots/code-comparison.png +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/docs/screenshots/kernel-overview.png +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/pyproject.toml +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/run.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/setup.cfg +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/README.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/__init__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/example_output/logs/dedicated_log_triton_trace_findhao_.ndjson +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/example_output/parsed_output/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/example_output/parsed_output/f0_fc0_a0_cai-.ndjson.gz +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/example_output/parsed_output/log_file_list.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/example_output/parsed_output_complex/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/example_output/parsed_output_complex/log_file_list.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tests/test_add.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/__init__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/__main__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/cli.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/common.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/event_diff.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/extract_source_mappings.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/ir_parser.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/mapper.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/__init__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/cli.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/ingestion/ndjson.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/orchestrator.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/placeholder_replacer.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/templates/__init__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/templates/loader.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/reproducer/utils.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/shared_vars.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/source_type.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/sourcemap_utils.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tools/__init__.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tools/decompress_bin_ndjson.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tools/disasm.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tools/format_fix.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tools/prettify_ndjson.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tools/readme.md +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/tp_logger.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/trace_processor.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse/utils.py +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse.egg-info/dependency_links.txt +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse.egg-info/entry_points.txt +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse.egg-info/requires.txt +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/tritonparse.egg-info/top_level.txt +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/eslint.config.js +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/index.html +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/package-lock.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/package.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/postcss.config.js +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/public/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/public/f0_fc0_a0_cai-.ndjson +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/public/favicon.ico +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/public/logo.svg +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/scripts/inline-html.js +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/App.css +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/App.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/assets/react.svg +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/ArgumentViewer.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/Callstack.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/CodeComparisonView.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/CodeViewer.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/CompilationInfo.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/CopyCodeButton.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/DataSourceSelector.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/DiffComparisonView.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/DiffViewer.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/ExternalLink.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/SingleCodeViewer.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/StackDiffViewer.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/ToggleSwitch.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/TritonIRs.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/components/WelcomeScreen.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/context/FileDiffSession.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/index.css +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/main.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/pages/CodeView.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/pages/FileDiffView.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/pages/KernelOverview.tsx +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/utils/dataLoader.ts +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/utils/fbDetection.ts +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/utils/safeImport.ts +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/utils/tensor.ts +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/src/vite-env.d.ts +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/tailwind.config.js +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/tsconfig.app.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/tsconfig.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/tsconfig.node.json +0 -0
- {tritonparse-0.2.4.dev20251007071533 → tritonparse-0.2.4.dev20251009071511}/website/vite.config.ts +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
|
-
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tritonparse
|
|
3
|
-
Version: 0.2.4.
|
|
3
|
+
Version: 0.2.4.dev20251009071511
|
|
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,13 +27,27 @@ Dynamic: license-file
|
|
|
27
27
|
|
|
28
28
|
## ✨ Key Features
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
- **📊
|
|
33
|
-
- **🔄
|
|
34
|
-
- **📝
|
|
35
|
-
-
|
|
36
|
-
|
|
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
|
|
|
@@ -41,22 +55,22 @@ Dynamic: license-file
|
|
|
41
55
|
|
|
42
56
|
```python
|
|
43
57
|
import tritonparse.structured_logging
|
|
58
|
+
import tritonparse.utils
|
|
44
59
|
|
|
45
|
-
# Initialize logging
|
|
60
|
+
# Initialize logging
|
|
46
61
|
tritonparse.structured_logging.init("./logs/", enable_trace_launch=True)
|
|
47
62
|
|
|
48
63
|
# Your Triton/PyTorch code here
|
|
49
64
|
# ... your kernels ...
|
|
50
65
|
|
|
51
66
|
# Parse and generate trace files
|
|
52
|
-
|
|
53
|
-
tritonparse.utils.unified_parse("./logs/")
|
|
67
|
+
tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
54
68
|
```
|
|
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
69
|
|
|
70
|
+
<details>
|
|
71
|
+
<summary>📝 Example output (click to expand)</summary>
|
|
72
|
+
|
|
73
|
+
```bash
|
|
60
74
|
================================================================================
|
|
61
75
|
📁 TRITONPARSE PARSING RESULTS
|
|
62
76
|
================================================================================
|
|
@@ -64,13 +78,13 @@ INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/t
|
|
|
64
78
|
📊 Total files generated: 2
|
|
65
79
|
|
|
66
80
|
📄 Generated files:
|
|
67
|
-
--------------------------------------------------
|
|
68
81
|
1. 📝 dedicated_log_triton_trace_findhao__mapped.ndjson.gz (7.2KB)
|
|
69
82
|
2. 📝 log_file_list.json (181B)
|
|
70
83
|
================================================================================
|
|
71
84
|
✅ Parsing completed successfully!
|
|
72
85
|
================================================================================
|
|
73
86
|
```
|
|
87
|
+
</details>
|
|
74
88
|
|
|
75
89
|
### 2. Visualize Results
|
|
76
90
|
|
|
@@ -78,6 +92,41 @@ INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/t
|
|
|
78
92
|
|
|
79
93
|
> **🔒 Privacy Note**: Your trace files are processed entirely in your browser - nothing is uploaded to any server!
|
|
80
94
|
|
|
95
|
+
### 3. Generate Reproducers (Optional)
|
|
96
|
+
|
|
97
|
+
Extract any kernel into a standalone, executable Python script for debugging or testing:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Generate reproducer from first launch event
|
|
101
|
+
tritonparse reproduce ./parsed_output/trace.ndjson.gz --line 2 --out-dir repro_output
|
|
102
|
+
|
|
103
|
+
# Run the generated reproducer
|
|
104
|
+
cd repro_output/<kernel_name>/
|
|
105
|
+
python repro_*.py
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Python API:**
|
|
109
|
+
```python
|
|
110
|
+
from tritonparse.reproducer.orchestrator import reproduce
|
|
111
|
+
|
|
112
|
+
result = reproduce(
|
|
113
|
+
input_path="./parsed_output/trace.ndjson.gz",
|
|
114
|
+
line_index=1, # Which launch event (1-based)
|
|
115
|
+
out_dir="repro_output"
|
|
116
|
+
)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
<details>
|
|
120
|
+
<summary>🎯 Common Reproducer Use Cases (click to expand)</summary>
|
|
121
|
+
|
|
122
|
+
- **🐛 Bug Isolation**: Extract a failing kernel into a minimal standalone script
|
|
123
|
+
- **⚡ Performance Testing**: Benchmark specific kernels without running the full application
|
|
124
|
+
- **🤝 Team Collaboration**: Share reproducible test cases with colleagues or in bug reports
|
|
125
|
+
- **📊 Regression Testing**: Compare kernel behavior and performance across different versions
|
|
126
|
+
- **🔍 Deep Debugging**: Modify and experiment with kernel parameters in isolation
|
|
127
|
+
|
|
128
|
+
</details>
|
|
129
|
+
|
|
81
130
|
## 🛠️ Installation
|
|
82
131
|
|
|
83
132
|
**For basic usage (trace generation):**
|
|
@@ -106,18 +155,13 @@ pip install triton
|
|
|
106
155
|
|
|
107
156
|
| 📖 Guide | Description |
|
|
108
157
|
|----------|-------------|
|
|
109
|
-
| **[🏠 Wiki Home](https://github.com/meta-pytorch/tritonparse/wiki)** | Complete documentation and navigation |
|
|
110
|
-
| **[📦 Installation
|
|
111
|
-
| **[📋 Usage Guide](https://github.com/meta-pytorch/tritonparse/wiki/02.-Usage-Guide)** | Complete workflow and examples |
|
|
112
|
-
| **[🌐 Web Interface
|
|
113
|
-
| **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and
|
|
114
|
-
| **[
|
|
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
|
|
158
|
+
| **[🏠 Wiki Home](https://github.com/meta-pytorch/tritonparse/wiki)** | Complete documentation and quick navigation |
|
|
159
|
+
| **[📦 Installation](https://github.com/meta-pytorch/tritonparse/wiki/01.-Installation)** | Setup guide for all scenarios |
|
|
160
|
+
| **[📋 Usage Guide](https://github.com/meta-pytorch/tritonparse/wiki/02.-Usage-Guide)** | Complete workflow, reproducer generation, and examples |
|
|
161
|
+
| **[🌐 Web Interface](https://github.com/meta-pytorch/tritonparse/wiki/03.-Web-Interface-Guide)** | Master the visualization interface |
|
|
162
|
+
| **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and architecture overview |
|
|
163
|
+
| **[📝 Code Formatting](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)** | Formatting standards and tools |
|
|
164
|
+
| **[❓ FAQ](https://github.com/meta-pytorch/tritonparse/wiki/06.-FAQ)** | Quick answers and troubleshooting |
|
|
121
165
|
|
|
122
166
|
## 📊 Understanding Triton Compilation
|
|
123
167
|
|
|
@@ -130,9 +174,10 @@ Each stage can be inspected and compared to understand optimization transformati
|
|
|
130
174
|
## 🤝 Contributing
|
|
131
175
|
|
|
132
176
|
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
|
|
177
|
+
- Development setup and prerequisites
|
|
178
|
+
- Code formatting standards (**[Formatting Guide](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)**)
|
|
179
|
+
- Pull request and code review process
|
|
180
|
+
- Testing guidelines
|
|
136
181
|
- Architecture overview
|
|
137
182
|
|
|
138
183
|
## 📞 Support & Community
|
|
@@ -9,13 +9,27 @@
|
|
|
9
9
|
|
|
10
10
|
## ✨ Key Features
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
- **📊
|
|
15
|
-
- **🔄
|
|
16
|
-
- **📝
|
|
17
|
-
-
|
|
18
|
-
|
|
12
|
+
### 🔍 Visualization & Analysis
|
|
13
|
+
- **🚀 Launch Difference Analysis** - Detect and visualize kernel launch parameter variations
|
|
14
|
+
- **📊 IR Code View** - Side-by-side IR viewing with synchronized highlighting and line mapping
|
|
15
|
+
- **🔄 File Diff View** - Compare kernels across different trace files side-by-side
|
|
16
|
+
- **📝 Multi-format IR Support** - View TTGIR, TTIR, LLIR, PTX, and AMDGCN
|
|
17
|
+
- **🎯 Interactive Code Views** - Click-to-highlight corresponding lines across IR stages
|
|
18
|
+
|
|
19
|
+
### 🔧 Reproducer & Debugging Tools
|
|
20
|
+
- **🔄 Standalone Script Generation** - Extract any kernel into a self-contained Python script
|
|
21
|
+
- **💾 Tensor Data Reconstruction** - Preserve actual tensor data or use statistical approximation
|
|
22
|
+
- **🎯 Custom Templates** - Flexible reproducer templates for different workflows
|
|
23
|
+
- **🐛 Bug Isolation** - Share reproducible test cases for debugging and collaboration
|
|
24
|
+
|
|
25
|
+
### 📊 Structured Logging & Analysis
|
|
26
|
+
- **📝 Compilation & Launch Tracing** - Capture detailed events with source mapping
|
|
27
|
+
- **🔍 Stack Trace Integration** - Full Python stack traces for debugging
|
|
28
|
+
- **📈 Metadata Extraction** - Comprehensive kernel statistics
|
|
29
|
+
|
|
30
|
+
### 🛠️ Developer Tools
|
|
31
|
+
- **🌐 Browser-based Interface** - No installation required, works in your browser
|
|
32
|
+
- **🔒 Privacy-first** - All processing happens locally, no data uploaded
|
|
19
33
|
|
|
20
34
|
## 🚀 Quick Start
|
|
21
35
|
|
|
@@ -23,22 +37,22 @@
|
|
|
23
37
|
|
|
24
38
|
```python
|
|
25
39
|
import tritonparse.structured_logging
|
|
40
|
+
import tritonparse.utils
|
|
26
41
|
|
|
27
|
-
# Initialize logging
|
|
42
|
+
# Initialize logging
|
|
28
43
|
tritonparse.structured_logging.init("./logs/", enable_trace_launch=True)
|
|
29
44
|
|
|
30
45
|
# Your Triton/PyTorch code here
|
|
31
46
|
# ... your kernels ...
|
|
32
47
|
|
|
33
48
|
# Parse and generate trace files
|
|
34
|
-
|
|
35
|
-
tritonparse.utils.unified_parse("./logs/")
|
|
49
|
+
tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
36
50
|
```
|
|
37
|
-
The example terminal output is:
|
|
38
|
-
```bash
|
|
39
|
-
tritonparse log file list: /tmp/tmp1gan7zky/log_file_list.json
|
|
40
|
-
INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/tritonparse/tests/parsed_output
|
|
41
51
|
|
|
52
|
+
<details>
|
|
53
|
+
<summary>📝 Example output (click to expand)</summary>
|
|
54
|
+
|
|
55
|
+
```bash
|
|
42
56
|
================================================================================
|
|
43
57
|
📁 TRITONPARSE PARSING RESULTS
|
|
44
58
|
================================================================================
|
|
@@ -46,13 +60,13 @@ INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/t
|
|
|
46
60
|
📊 Total files generated: 2
|
|
47
61
|
|
|
48
62
|
📄 Generated files:
|
|
49
|
-
--------------------------------------------------
|
|
50
63
|
1. 📝 dedicated_log_triton_trace_findhao__mapped.ndjson.gz (7.2KB)
|
|
51
64
|
2. 📝 log_file_list.json (181B)
|
|
52
65
|
================================================================================
|
|
53
66
|
✅ Parsing completed successfully!
|
|
54
67
|
================================================================================
|
|
55
68
|
```
|
|
69
|
+
</details>
|
|
56
70
|
|
|
57
71
|
### 2. Visualize Results
|
|
58
72
|
|
|
@@ -60,6 +74,41 @@ INFO:tritonparse:Copying parsed logs from /tmp/tmp1gan7zky to /scratch/findhao/t
|
|
|
60
74
|
|
|
61
75
|
> **🔒 Privacy Note**: Your trace files are processed entirely in your browser - nothing is uploaded to any server!
|
|
62
76
|
|
|
77
|
+
### 3. Generate Reproducers (Optional)
|
|
78
|
+
|
|
79
|
+
Extract any kernel into a standalone, executable Python script for debugging or testing:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Generate reproducer from first launch event
|
|
83
|
+
tritonparse reproduce ./parsed_output/trace.ndjson.gz --line 2 --out-dir repro_output
|
|
84
|
+
|
|
85
|
+
# Run the generated reproducer
|
|
86
|
+
cd repro_output/<kernel_name>/
|
|
87
|
+
python repro_*.py
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Python API:**
|
|
91
|
+
```python
|
|
92
|
+
from tritonparse.reproducer.orchestrator import reproduce
|
|
93
|
+
|
|
94
|
+
result = reproduce(
|
|
95
|
+
input_path="./parsed_output/trace.ndjson.gz",
|
|
96
|
+
line_index=1, # Which launch event (1-based)
|
|
97
|
+
out_dir="repro_output"
|
|
98
|
+
)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
<details>
|
|
102
|
+
<summary>🎯 Common Reproducer Use Cases (click to expand)</summary>
|
|
103
|
+
|
|
104
|
+
- **🐛 Bug Isolation**: Extract a failing kernel into a minimal standalone script
|
|
105
|
+
- **⚡ Performance Testing**: Benchmark specific kernels without running the full application
|
|
106
|
+
- **🤝 Team Collaboration**: Share reproducible test cases with colleagues or in bug reports
|
|
107
|
+
- **📊 Regression Testing**: Compare kernel behavior and performance across different versions
|
|
108
|
+
- **🔍 Deep Debugging**: Modify and experiment with kernel parameters in isolation
|
|
109
|
+
|
|
110
|
+
</details>
|
|
111
|
+
|
|
63
112
|
## 🛠️ Installation
|
|
64
113
|
|
|
65
114
|
**For basic usage (trace generation):**
|
|
@@ -88,18 +137,13 @@ pip install triton
|
|
|
88
137
|
|
|
89
138
|
| 📖 Guide | Description |
|
|
90
139
|
|----------|-------------|
|
|
91
|
-
| **[🏠 Wiki Home](https://github.com/meta-pytorch/tritonparse/wiki)** | Complete documentation and navigation |
|
|
92
|
-
| **[📦 Installation
|
|
93
|
-
| **[📋 Usage Guide](https://github.com/meta-pytorch/tritonparse/wiki/02.-Usage-Guide)** | Complete workflow and examples |
|
|
94
|
-
| **[🌐 Web Interface
|
|
95
|
-
| **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and
|
|
96
|
-
| **[
|
|
97
|
-
|
|
98
|
-
## 🛠️ Tech Stack
|
|
99
|
-
|
|
100
|
-
- **Frontend**: React 19, TypeScript, Vite, Tailwind CSS, Monaco Editor
|
|
101
|
-
- **Backend**: Python with Triton integration, structured logging
|
|
102
|
-
- **Deployment**: GitHub Pages, automatic deployment
|
|
140
|
+
| **[🏠 Wiki Home](https://github.com/meta-pytorch/tritonparse/wiki)** | Complete documentation and quick navigation |
|
|
141
|
+
| **[📦 Installation](https://github.com/meta-pytorch/tritonparse/wiki/01.-Installation)** | Setup guide for all scenarios |
|
|
142
|
+
| **[📋 Usage Guide](https://github.com/meta-pytorch/tritonparse/wiki/02.-Usage-Guide)** | Complete workflow, reproducer generation, and examples |
|
|
143
|
+
| **[🌐 Web Interface](https://github.com/meta-pytorch/tritonparse/wiki/03.-Web-Interface-Guide)** | Master the visualization interface |
|
|
144
|
+
| **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and architecture overview |
|
|
145
|
+
| **[📝 Code Formatting](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)** | Formatting standards and tools |
|
|
146
|
+
| **[❓ FAQ](https://github.com/meta-pytorch/tritonparse/wiki/06.-FAQ)** | Quick answers and troubleshooting |
|
|
103
147
|
|
|
104
148
|
## 📊 Understanding Triton Compilation
|
|
105
149
|
|
|
@@ -112,9 +156,10 @@ Each stage can be inspected and compared to understand optimization transformati
|
|
|
112
156
|
## 🤝 Contributing
|
|
113
157
|
|
|
114
158
|
We welcome contributions! Please see our **[Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** for:
|
|
115
|
-
- Development setup
|
|
116
|
-
- Code formatting standards
|
|
117
|
-
- Pull request process
|
|
159
|
+
- Development setup and prerequisites
|
|
160
|
+
- Code formatting standards (**[Formatting Guide](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)**)
|
|
161
|
+
- Pull request and code review process
|
|
162
|
+
- Testing guidelines
|
|
118
163
|
- Architecture overview
|
|
119
164
|
|
|
120
165
|
## 📞 Support & Community
|