tritonparse 0.3.2.dev20251113071521__tar.gz → 0.3.3.dev20251231071619__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.
- tritonparse-0.3.3.dev20251231071619/.github/scripts/check_new_commits.sh +122 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.github/workflows/nightly-pypi.yml +13 -5
- tritonparse-0.3.3.dev20251231071619/.github/workflows/website-build.yml +63 -0
- tritonparse-0.3.3.dev20251231071619/CHANGELOG.md +26 -0
- tritonparse-0.3.3.dev20251231071619/Makefile +86 -0
- {tritonparse-0.3.2.dev20251113071521/tritonparse.egg-info → tritonparse-0.3.3.dev20251231071619}/PKG-INFO +17 -7
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/README.md +16 -6
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/test_add.py +2 -2
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/test_tritonparse.py +423 -10
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/cli.py +37 -5
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/context_manager.py +1 -1
- tritonparse-0.3.3.dev20251231071619/tritonparse/info/__init__.py +30 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/info/cli.py +262 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/info/kernel_query.py +209 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/info/parse_helper.py +70 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/parse/__init__.py +66 -0
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/common.py +7 -9
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/extract_source_mappings.py +3 -3
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/ir_analysis.py +259 -2
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/ir_parser.py +3 -2
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/mapper.py +2 -2
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/sourcemap_utils.py +3 -2
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/trace_processor.py +4 -5
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/utils.py +13 -1
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/ast_analyzer.py +636 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/cli.py +22 -3
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/consolidated_result.py +52 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/function_extractor.py +6 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/import_info.py +25 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/import_parser.py +178 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/import_resolver.py +152 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/multi_file_analyzer.py +825 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/orchestrator.py +36 -4
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/placeholder_replacer.py +87 -9
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/templates/example.py +4 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/templates/tritonbench.py +3 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/templates/utils.py +48 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/artifacts/__init__.py +5 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/artifacts/triton_fused_kernel.py +65 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/artifacts/triton_preprocess.py +16 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/artifacts/triton_utils.py +14 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/test_import_parser.py +164 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/test_import_resolver.py +88 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests/test_multi_file_analyzer.py +118 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/utils.py +156 -41
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/shared_vars.py +6 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/tools/__init__.py +0 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/tools/extract_irs.py +244 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/tools/prettify_ndjson.py +16 -1
- tritonparse-0.3.3.dev20251231071619/tritonparse/tools/readme.md +37 -0
- tritonparse-0.3.3.dev20251231071619/tritonparse/tp_logger.py +46 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619/tritonparse.egg-info}/PKG-INFO +17 -7
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse.egg-info/SOURCES.txt +37 -12
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/package-lock.json +555 -748
- tritonparse-0.3.3.dev20251231071619/website/package.json +43 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/App.tsx +22 -60
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/ArgumentViewer.tsx +31 -32
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/CodeComparisonView.tsx +66 -57
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/CodeViewer.tsx +22 -7
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/CompilationInfo.tsx +1 -1
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/CopyCodeButton.tsx +3 -9
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/DataSourceSelector.tsx +24 -29
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/DiffComparisonView.tsx +87 -43
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/DiffViewer.tsx +32 -12
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/SingleCodeViewer.tsx +6 -17
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/StackDiffViewer.tsx +45 -14
- tritonparse-0.3.3.dev20251231071619/website/src/components/TritonIRs.tsx +45 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/WelcomeScreen.tsx +4 -51
- tritonparse-0.3.3.dev20251231071619/website/src/components/icons/GitHubIcon.tsx +11 -0
- tritonparse-0.3.3.dev20251231071619/website/src/components/icons/index.ts +25 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/context/FileDiffSession.tsx +1 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/pages/CodeView.tsx +100 -104
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/pages/FileDiffView.tsx +54 -27
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/pages/IRAnalysis.tsx +123 -1
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/pages/KernelOverview.tsx +23 -39
- tritonparse-0.3.3.dev20251231071619/website/src/types/global.d.ts +14 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/utils/dataLoader.ts +49 -15
- tritonparse-0.3.3.dev20251231071619/website/src/utils/irLanguage.ts +30 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/utils/tensor.ts +13 -7
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/vite-env.d.ts +4 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/vite.config.ts +12 -1
- tritonparse-0.3.2.dev20251113071521/CHANGELOG.md +0 -394
- tritonparse-0.3.2.dev20251113071521/Makefile +0 -58
- tritonparse-0.3.2.dev20251113071521/tritonparse/tools/readme.md +0 -1
- tritonparse-0.3.2.dev20251113071521/tritonparse/tp_logger.py +0 -9
- tritonparse-0.3.2.dev20251113071521/website/package.json +0 -46
- tritonparse-0.3.2.dev20251113071521/website/src/components/TritonIRs.tsx +0 -94
- tritonparse-0.3.2.dev20251113071521/website/src/utils/fbDetection.ts +0 -22
- tritonparse-0.3.2.dev20251113071521/website/src/utils/safeImport.ts +0 -29
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.ci/README.md +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.ci/install-project.sh +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.ci/install-triton.sh +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.ci/run-tests.sh +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.ci/setup.sh +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.github/PAGES_SETUP.md +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.github/workflows/deploy-pages-standalone.yml +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.github/workflows/deploy-pages.yml +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.github/workflows/test.yml +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/.gitignore +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/CODE_OF_CONDUCT.md +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/CONTRIBUTING.md +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/LICENSE +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/__init__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/pyproject.toml +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/run.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/setup.cfg +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/README.md +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/__init__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/example_output/logs/dedicated_log_triton_trace_findhao_.ndjson +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/example_output/parsed_output/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/example_output/parsed_output/f0_fc0_a0_cai-.ndjson.gz +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/example_output/parsed_output/log_file_list.json +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/example_output/parsed_output_complex/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/example_output/parsed_output_complex/log_file_list.json +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/__init__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/__main__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/event_diff.py +0 -0
- {tritonparse-0.3.2.dev20251113071521/tritonparse → tritonparse-0.3.3.dev20251231071619/tritonparse/parse}/source_type.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/__init__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/ingestion/ndjson.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/templates/__init__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/templates/loader.py +0 -0
- {tritonparse-0.3.2.dev20251113071521/tritonparse/tools → tritonparse-0.3.3.dev20251231071619/tritonparse/reproducer/tests}/__init__.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/reproducer/types.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/structured_logging.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/tools/decompress_bin_ndjson.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/tools/disasm.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/tools/format_fix.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse/tools/load_tensor.py +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse.egg-info/dependency_links.txt +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse.egg-info/entry_points.txt +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse.egg-info/requires.txt +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tritonparse.egg-info/top_level.txt +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/eslint.config.js +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/index.html +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/public/dedicated_log_triton_trace_findhao__mapped.ndjson.gz +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/public/f0_fc0_a0_cai-.ndjson +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/public/favicon.ico +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/public/logo.svg +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/scripts/inline-html.js +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/scripts/update_deps.sh +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/App.css +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/assets/react.svg +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/Callstack.tsx +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/CodeViewer.css +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/ExternalLink.tsx +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/components/ToggleSwitch.tsx +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/index.css +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/src/main.tsx +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/tsconfig.app.json +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/tsconfig.json +0 -0
- {tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/website/tsconfig.node.json +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
# Check if there are new commits since the last nightly PyPI release.
|
|
4
|
+
# This script is used by nightly-pypi.yml to implement on-demand nightly publishing.
|
|
5
|
+
#
|
|
6
|
+
# Exit code:
|
|
7
|
+
# Always exits with 0 (success). The publish decision is communicated via GITHUB_OUTPUT.
|
|
8
|
+
#
|
|
9
|
+
# Output:
|
|
10
|
+
# Sets GITHUB_OUTPUT variable: should_publish=true/false
|
|
11
|
+
# - true: New commits found or check skipped due to errors (fail-open behavior)
|
|
12
|
+
# - false: No new commits since last nightly release
|
|
13
|
+
|
|
14
|
+
set -o pipefail
|
|
15
|
+
# Note: set -e is intentionally not used to allow explicit error handling.
|
|
16
|
+
# The script implements fail-open behavior where errors should not block publishing.
|
|
17
|
+
|
|
18
|
+
# Configuration
|
|
19
|
+
MAX_RETRIES=3
|
|
20
|
+
RETRY_DELAY=5
|
|
21
|
+
CURL_TIMEOUT=10
|
|
22
|
+
PACKAGE_NAME="${PACKAGE_NAME:-tritonparse}"
|
|
23
|
+
PACKAGE_PATH="${PACKAGE_PATH:-}" # Optional: subdirectory to check (e.g., "python/")
|
|
24
|
+
|
|
25
|
+
# Dependencies: This script requires 'jq' and 'curl' to be installed.
|
|
26
|
+
# These are pre-installed on ubuntu-latest GitHub Actions runners.
|
|
27
|
+
|
|
28
|
+
# Function: Fetch latest nightly version from PyPI with retry
|
|
29
|
+
fetch_latest_nightly() {
|
|
30
|
+
local retries=0
|
|
31
|
+
|
|
32
|
+
while [ $retries -lt $MAX_RETRIES ]; do
|
|
33
|
+
local response
|
|
34
|
+
response=$(curl -s --max-time $CURL_TIMEOUT \
|
|
35
|
+
"https://pypi.org/pypi/${PACKAGE_NAME}/json" 2>/dev/null)
|
|
36
|
+
local curl_exit=$?
|
|
37
|
+
|
|
38
|
+
if [ $curl_exit -eq 0 ] && [ -n "$response" ]; then
|
|
39
|
+
# Try to parse and extract latest dev version
|
|
40
|
+
local latest
|
|
41
|
+
latest=$(echo "$response" | \
|
|
42
|
+
jq -r '.releases | keys[] | select(contains(".dev"))' 2>/dev/null | \
|
|
43
|
+
sort -V | tail -1)
|
|
44
|
+
local jq_exit=$?
|
|
45
|
+
|
|
46
|
+
if [ $jq_exit -eq 0 ] && [ -n "$latest" ]; then
|
|
47
|
+
echo "$latest"
|
|
48
|
+
return 0
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
retries=$((retries + 1))
|
|
53
|
+
echo "::warning::PyPI API request failed (attempt $retries/$MAX_RETRIES)"
|
|
54
|
+
|
|
55
|
+
if [ $retries -lt $MAX_RETRIES ]; then
|
|
56
|
+
echo "Retrying in ${RETRY_DELAY}s..."
|
|
57
|
+
sleep $RETRY_DELAY
|
|
58
|
+
fi
|
|
59
|
+
done
|
|
60
|
+
|
|
61
|
+
echo "::warning::All $MAX_RETRIES attempts failed"
|
|
62
|
+
return 1
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
main() {
|
|
66
|
+
echo "Checking for new commits since last nightly release..."
|
|
67
|
+
|
|
68
|
+
# Step 1: Fetch latest nightly version (with retry)
|
|
69
|
+
LATEST_NIGHTLY=$(fetch_latest_nightly)
|
|
70
|
+
FETCH_STATUS=$?
|
|
71
|
+
|
|
72
|
+
# Step 2: Network request failed -> skip check, proceed with publish
|
|
73
|
+
if [ $FETCH_STATUS -ne 0 ]; then
|
|
74
|
+
echo "::warning::Failed to fetch PyPI data after $MAX_RETRIES attempts"
|
|
75
|
+
echo "::warning::Skipping commit check, proceeding with publish"
|
|
76
|
+
echo "should_publish=true" >> "$GITHUB_OUTPUT"
|
|
77
|
+
exit 0
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# Step 3: No nightly version exists -> first nightly release
|
|
81
|
+
if [ -z "$LATEST_NIGHTLY" ]; then
|
|
82
|
+
echo "No existing nightly version found, proceeding with publish"
|
|
83
|
+
echo "should_publish=true" >> "$GITHUB_OUTPUT"
|
|
84
|
+
exit 0
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
echo "Latest nightly on PyPI: $LATEST_NIGHTLY"
|
|
88
|
+
|
|
89
|
+
# Step 4: Extract timestamp from version (format: X.Y.Z.devYYYYMMDDHHMMSS)
|
|
90
|
+
TIMESTAMP=$(echo "$LATEST_NIGHTLY" | sed -n 's/.*\.dev\([0-9]\{14\}\).*/\1/p')
|
|
91
|
+
|
|
92
|
+
if [ -z "$TIMESTAMP" ]; then
|
|
93
|
+
echo "::warning::Cannot parse timestamp from version, proceeding with publish"
|
|
94
|
+
echo "should_publish=true" >> "$GITHUB_OUTPUT"
|
|
95
|
+
exit 0
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
# Step 5: Convert to date format for git log
|
|
99
|
+
SINCE_DATE="${TIMESTAMP:0:4}-${TIMESTAMP:4:2}-${TIMESTAMP:6:2} ${TIMESTAMP:8:2}:${TIMESTAMP:10:2}:${TIMESTAMP:12:2} UTC"
|
|
100
|
+
echo "Last nightly published at: $SINCE_DATE"
|
|
101
|
+
|
|
102
|
+
# Step 6: Check for new commits since last nightly
|
|
103
|
+
# If PACKAGE_PATH is set, only check commits in that subdirectory
|
|
104
|
+
if [ -n "$PACKAGE_PATH" ]; then
|
|
105
|
+
echo "Checking commits in path: $PACKAGE_PATH"
|
|
106
|
+
COMMITS_SINCE=$(git log --since="$SINCE_DATE" --oneline -- "$PACKAGE_PATH" | wc -l)
|
|
107
|
+
else
|
|
108
|
+
COMMITS_SINCE=$(git log --since="$SINCE_DATE" --oneline | wc -l)
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
if [ "$COMMITS_SINCE" -eq 0 ]; then
|
|
112
|
+
echo "No new commits since last nightly, skipping publish"
|
|
113
|
+
echo "should_publish=false" >> "$GITHUB_OUTPUT"
|
|
114
|
+
exit 0
|
|
115
|
+
else
|
|
116
|
+
echo "Found $COMMITS_SINCE new commit(s) since last nightly"
|
|
117
|
+
echo "should_publish=true" >> "$GITHUB_OUTPUT"
|
|
118
|
+
exit 0
|
|
119
|
+
fi
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
main
|
|
@@ -10,6 +10,7 @@ on:
|
|
|
10
10
|
|
|
11
11
|
permissions:
|
|
12
12
|
contents: read
|
|
13
|
+
id-token: write # Required for Trusted Publishing (OIDC)
|
|
13
14
|
|
|
14
15
|
jobs:
|
|
15
16
|
build-and-publish:
|
|
@@ -23,9 +24,15 @@ jobs:
|
|
|
23
24
|
- uses: actions/setup-python@v5
|
|
24
25
|
with:
|
|
25
26
|
python-version: "3.11"
|
|
27
|
+
|
|
28
|
+
- name: Check for new commits since last nightly
|
|
29
|
+
id: check
|
|
30
|
+
if: github.ref_type != 'tag'
|
|
31
|
+
run: bash .github/scripts/check_new_commits.sh
|
|
32
|
+
|
|
26
33
|
- name: Compute nightly version from latest tag (next patch + timestamp)
|
|
27
34
|
id: ver
|
|
28
|
-
if: github.ref_type != 'tag'
|
|
35
|
+
if: github.ref_type != 'tag' && steps.check.outputs.should_publish != 'false'
|
|
29
36
|
run: |
|
|
30
37
|
# Get latest tag; allow 'v' prefix; fail if none
|
|
31
38
|
if ! TAG=$(git describe --tags --abbrev=0 2>/dev/null); then
|
|
@@ -46,6 +53,7 @@ jobs:
|
|
|
46
53
|
echo "Computed nightly version: ${NEXT}.dev${DATE}"
|
|
47
54
|
|
|
48
55
|
- name: Build sdist/wheel
|
|
56
|
+
if: github.ref_type == 'tag' || steps.check.outputs.should_publish != 'false'
|
|
49
57
|
run: |
|
|
50
58
|
python -m pip install --upgrade pip
|
|
51
59
|
pip install build setuptools-scm
|
|
@@ -55,14 +63,14 @@ jobs:
|
|
|
55
63
|
python -m build
|
|
56
64
|
|
|
57
65
|
- name: Check metadata
|
|
66
|
+
if: github.ref_type == 'tag' || steps.check.outputs.should_publish != 'false'
|
|
58
67
|
run: |
|
|
59
68
|
pip install twine
|
|
60
69
|
twine check dist/*
|
|
61
70
|
|
|
62
|
-
- name: Publish to PyPI (
|
|
63
|
-
if: github.event_name == 'schedule' || github.ref_type == 'tag'
|
|
71
|
+
- name: Publish to PyPI (Trusted Publishing)
|
|
72
|
+
if: (github.event_name == 'schedule' || github.ref_type == 'tag') && steps.check.outputs.should_publish != 'false'
|
|
64
73
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
65
74
|
with:
|
|
66
|
-
|
|
67
|
-
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
75
|
+
attestations: true
|
|
68
76
|
skip-existing: true
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Website Build Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- "website/**"
|
|
8
|
+
- ".github/workflows/website-build.yml"
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [main]
|
|
11
|
+
paths:
|
|
12
|
+
- "website/**"
|
|
13
|
+
- ".github/workflows/website-build.yml"
|
|
14
|
+
workflow_dispatch:
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build-test:
|
|
18
|
+
runs-on: ubuntu-slim
|
|
19
|
+
timeout-minutes: 10
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout repository
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Setup Node.js
|
|
26
|
+
uses: actions/setup-node@v4
|
|
27
|
+
with:
|
|
28
|
+
node-version: "24"
|
|
29
|
+
cache: "npm"
|
|
30
|
+
cache-dependency-path: "website/package-lock.json"
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
working-directory: ./website
|
|
34
|
+
run: npm ci
|
|
35
|
+
|
|
36
|
+
- name: Run ESLint
|
|
37
|
+
working-directory: ./website
|
|
38
|
+
run: npm run lint
|
|
39
|
+
|
|
40
|
+
- name: Build website
|
|
41
|
+
working-directory: ./website
|
|
42
|
+
run: npm run build
|
|
43
|
+
|
|
44
|
+
- name: Build standalone website
|
|
45
|
+
working-directory: ./website
|
|
46
|
+
run: npm run build:single
|
|
47
|
+
|
|
48
|
+
- name: Verify build output
|
|
49
|
+
run: |
|
|
50
|
+
if [ ! -d "website/dist" ]; then
|
|
51
|
+
echo "❌ Build failed: dist directory not found"
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
if [ ! -f "website/dist/index.html" ]; then
|
|
55
|
+
echo "❌ Build failed: index.html not found"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
if [ ! -f "website/dist/standalone.html" ]; then
|
|
59
|
+
echo "❌ Build failed: standalone.html not found"
|
|
60
|
+
exit 1
|
|
61
|
+
fi
|
|
62
|
+
echo "✅ Build successful: all expected files present"
|
|
63
|
+
ls -la website/dist/
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
For detailed release notes, see [GitHub Releases](https://github.com/meta-pytorch/tritonparse/releases).
|
|
6
|
+
|
|
7
|
+
## [0.3.2] - 2025-12-22
|
|
8
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.3.2)
|
|
9
|
+
|
|
10
|
+
## [0.3.1] - 2025-11-03
|
|
11
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.3.1)
|
|
12
|
+
|
|
13
|
+
## [0.3.0] - 2025-10-14
|
|
14
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.3.0)
|
|
15
|
+
|
|
16
|
+
## [0.2.3] - 2025-09-19
|
|
17
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.2.3)
|
|
18
|
+
|
|
19
|
+
## [0.2.0] - 2025-09-11
|
|
20
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.2.0)
|
|
21
|
+
|
|
22
|
+
## [0.1.1] - 2025-07-25
|
|
23
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.1.1)
|
|
24
|
+
|
|
25
|
+
## [0.1.0] - 2025-07-21
|
|
26
|
+
See [release notes](https://github.com/meta-pytorch/tritonparse/releases/tag/v0.1.0)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Makefile for tritonparse project
|
|
2
|
+
|
|
3
|
+
.PHONY: help format format-check lint lint-check test test-cuda clean install-dev website-install website-lint website-build website-build-single website-dev
|
|
4
|
+
|
|
5
|
+
# Default target
|
|
6
|
+
help:
|
|
7
|
+
@echo "Available targets:"
|
|
8
|
+
@echo " format - Format all Python files"
|
|
9
|
+
@echo " format-check - Check formatting without making changes"
|
|
10
|
+
@echo " lint - Run all linters"
|
|
11
|
+
@echo " lint-check - Check linting without making changes"
|
|
12
|
+
@echo " test - Run tests (CPU only)"
|
|
13
|
+
@echo " test-cuda - Run tests (including CUDA tests)"
|
|
14
|
+
@echo " clean - Clean up cache files"
|
|
15
|
+
@echo " install-dev - Install development dependencies"
|
|
16
|
+
@echo ""
|
|
17
|
+
@echo "Website targets:"
|
|
18
|
+
@echo " website-install - Install website dependencies"
|
|
19
|
+
@echo " website-lint - Run ESLint on website"
|
|
20
|
+
@echo " website-build - Build website"
|
|
21
|
+
@echo " website-build-single - Build standalone website"
|
|
22
|
+
@echo " website-dev - Run website dev server"
|
|
23
|
+
|
|
24
|
+
# Formatting targets
|
|
25
|
+
format:
|
|
26
|
+
@echo "Running format fix script..."
|
|
27
|
+
python -m tritonparse.tools.format_fix --verbose
|
|
28
|
+
|
|
29
|
+
format-check:
|
|
30
|
+
@echo "Checking formatting..."
|
|
31
|
+
python -m tritonparse.tools.format_fix --check-only --verbose
|
|
32
|
+
|
|
33
|
+
# Linting targets
|
|
34
|
+
lint:
|
|
35
|
+
@echo "Running linters..."
|
|
36
|
+
ruff check .
|
|
37
|
+
black --check .
|
|
38
|
+
|
|
39
|
+
lint-check:
|
|
40
|
+
@echo "Checking linting..."
|
|
41
|
+
ruff check --diff .
|
|
42
|
+
black --check --diff .
|
|
43
|
+
|
|
44
|
+
# Testing targets
|
|
45
|
+
test:
|
|
46
|
+
@echo "Running tests (CPU only)..."
|
|
47
|
+
pytest tests/ -v -m "not cuda"
|
|
48
|
+
|
|
49
|
+
test-cuda:
|
|
50
|
+
@echo "Running all tests (including CUDA)..."
|
|
51
|
+
pytest tests/ -v
|
|
52
|
+
|
|
53
|
+
# Utility targets
|
|
54
|
+
clean:
|
|
55
|
+
@echo "Cleaning up cache files..."
|
|
56
|
+
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
|
57
|
+
find . -type f -name "*.pyc" -delete 2>/dev/null || true
|
|
58
|
+
find . -type f -name "*.pyo" -delete 2>/dev/null || true
|
|
59
|
+
find . -type f -name ".coverage" -delete 2>/dev/null || true
|
|
60
|
+
find . -type d -name "*.egg-info" -exec rm -rf {} + 2>/dev/null || true
|
|
61
|
+
find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true
|
|
62
|
+
|
|
63
|
+
install-dev:
|
|
64
|
+
@echo "Installing development dependencies..."
|
|
65
|
+
pip install -U black usort ruff coverage
|
|
66
|
+
|
|
67
|
+
# Website targets
|
|
68
|
+
website-install:
|
|
69
|
+
@echo "Installing website dependencies..."
|
|
70
|
+
cd website && npm ci
|
|
71
|
+
|
|
72
|
+
website-lint:
|
|
73
|
+
@echo "Running ESLint on website..."
|
|
74
|
+
cd website && npm run lint
|
|
75
|
+
|
|
76
|
+
website-build:
|
|
77
|
+
@echo "Building website..."
|
|
78
|
+
cd website && npm run build
|
|
79
|
+
|
|
80
|
+
website-build-single:
|
|
81
|
+
@echo "Building standalone website..."
|
|
82
|
+
cd website && npm run build:single
|
|
83
|
+
|
|
84
|
+
website-dev:
|
|
85
|
+
@echo "Starting website dev server..."
|
|
86
|
+
cd website && npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tritonparse
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3.dev20251231071619
|
|
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
|
|
@@ -78,18 +78,24 @@ pip install triton
|
|
|
78
78
|
|
|
79
79
|
```python
|
|
80
80
|
import tritonparse.structured_logging
|
|
81
|
-
import tritonparse.utils
|
|
81
|
+
import tritonparse.parse.utils
|
|
82
82
|
|
|
83
|
-
# Initialize logging
|
|
84
|
-
tritonparse.structured_logging.init(
|
|
83
|
+
# Initialize logging with full tracing options
|
|
84
|
+
tritonparse.structured_logging.init(
|
|
85
|
+
"./logs/",
|
|
86
|
+
enable_trace_launch=True, # Capture kernel launch events (enables torch.compile tracing automatically)
|
|
87
|
+
enable_more_tensor_information=True, # Optional: collect tensor statistics (min/max/mean/std)
|
|
88
|
+
)
|
|
85
89
|
|
|
86
90
|
# Your Triton/PyTorch code here
|
|
87
91
|
# ... your kernels ...
|
|
88
92
|
|
|
89
93
|
# Parse and generate trace files
|
|
90
|
-
tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
94
|
+
tritonparse.parse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
91
95
|
```
|
|
92
96
|
|
|
97
|
+
> **💡 Note**: `enable_trace_launch=True` automatically enables tracing for both native Triton kernels (`@triton.jit`) and `torch.compile` / TorchInductor kernels.
|
|
98
|
+
|
|
93
99
|
<details>
|
|
94
100
|
<summary>📝 Example output (click to expand)</summary>
|
|
95
101
|
|
|
@@ -120,8 +126,9 @@ tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
|
120
126
|
Extract any kernel into a standalone, executable Python script for debugging or testing:
|
|
121
127
|
|
|
122
128
|
```bash
|
|
123
|
-
# Generate reproducer
|
|
124
|
-
|
|
129
|
+
# Generate reproducer for the first launch event
|
|
130
|
+
# (--line is 0-based: line 0 is compilation event, line 1 is first launch event)
|
|
131
|
+
tritonparseoss reproduce ./parsed_output/trace.ndjson.gz --line 1 --out-dir repro_output
|
|
125
132
|
|
|
126
133
|
# Run the generated reproducer
|
|
127
134
|
cd repro_output/<kernel_name>/
|
|
@@ -161,6 +168,9 @@ result = reproduce(
|
|
|
161
168
|
| **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and architecture overview |
|
|
162
169
|
| **[📝 Code Formatting](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)** | Formatting standards and tools |
|
|
163
170
|
| **[❓ FAQ](https://github.com/meta-pytorch/tritonparse/wiki/06.-FAQ)** | Quick answers and troubleshooting |
|
|
171
|
+
| **[⚙️ Environment Variables](https://github.com/meta-pytorch/tritonparse/wiki/07.-Environment-Variables-Reference)** | Complete environment variable reference |
|
|
172
|
+
| **[📖 Python API Reference](https://github.com/meta-pytorch/tritonparse/wiki/08.-Python-API-Reference)** | Full API documentation |
|
|
173
|
+
| **[🔄 Reproducer Guide](https://github.com/meta-pytorch/tritonparse/wiki/09.-Reproducer-Guide)** | Comprehensive kernel reproducer guide |
|
|
164
174
|
|
|
165
175
|
## 📊 Understanding Triton Compilation
|
|
166
176
|
|
|
@@ -60,18 +60,24 @@ pip install triton
|
|
|
60
60
|
|
|
61
61
|
```python
|
|
62
62
|
import tritonparse.structured_logging
|
|
63
|
-
import tritonparse.utils
|
|
63
|
+
import tritonparse.parse.utils
|
|
64
64
|
|
|
65
|
-
# Initialize logging
|
|
66
|
-
tritonparse.structured_logging.init(
|
|
65
|
+
# Initialize logging with full tracing options
|
|
66
|
+
tritonparse.structured_logging.init(
|
|
67
|
+
"./logs/",
|
|
68
|
+
enable_trace_launch=True, # Capture kernel launch events (enables torch.compile tracing automatically)
|
|
69
|
+
enable_more_tensor_information=True, # Optional: collect tensor statistics (min/max/mean/std)
|
|
70
|
+
)
|
|
67
71
|
|
|
68
72
|
# Your Triton/PyTorch code here
|
|
69
73
|
# ... your kernels ...
|
|
70
74
|
|
|
71
75
|
# Parse and generate trace files
|
|
72
|
-
tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
76
|
+
tritonparse.parse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
73
77
|
```
|
|
74
78
|
|
|
79
|
+
> **💡 Note**: `enable_trace_launch=True` automatically enables tracing for both native Triton kernels (`@triton.jit`) and `torch.compile` / TorchInductor kernels.
|
|
80
|
+
|
|
75
81
|
<details>
|
|
76
82
|
<summary>📝 Example output (click to expand)</summary>
|
|
77
83
|
|
|
@@ -102,8 +108,9 @@ tritonparse.utils.unified_parse("./logs/", out="./parsed_output")
|
|
|
102
108
|
Extract any kernel into a standalone, executable Python script for debugging or testing:
|
|
103
109
|
|
|
104
110
|
```bash
|
|
105
|
-
# Generate reproducer
|
|
106
|
-
|
|
111
|
+
# Generate reproducer for the first launch event
|
|
112
|
+
# (--line is 0-based: line 0 is compilation event, line 1 is first launch event)
|
|
113
|
+
tritonparseoss reproduce ./parsed_output/trace.ndjson.gz --line 1 --out-dir repro_output
|
|
107
114
|
|
|
108
115
|
# Run the generated reproducer
|
|
109
116
|
cd repro_output/<kernel_name>/
|
|
@@ -143,6 +150,9 @@ result = reproduce(
|
|
|
143
150
|
| **[🔧 Developer Guide](https://github.com/meta-pytorch/tritonparse/wiki/04.-Developer-Guide)** | Contributing and architecture overview |
|
|
144
151
|
| **[📝 Code Formatting](https://github.com/meta-pytorch/tritonparse/wiki/05.-Code-Formatting)** | Formatting standards and tools |
|
|
145
152
|
| **[❓ FAQ](https://github.com/meta-pytorch/tritonparse/wiki/06.-FAQ)** | Quick answers and troubleshooting |
|
|
153
|
+
| **[⚙️ Environment Variables](https://github.com/meta-pytorch/tritonparse/wiki/07.-Environment-Variables-Reference)** | Complete environment variable reference |
|
|
154
|
+
| **[📖 Python API Reference](https://github.com/meta-pytorch/tritonparse/wiki/08.-Python-API-Reference)** | Full API documentation |
|
|
155
|
+
| **[🔄 Reproducer Guide](https://github.com/meta-pytorch/tritonparse/wiki/09.-Reproducer-Guide)** | Comprehensive kernel reproducer guide |
|
|
146
156
|
|
|
147
157
|
## 📊 Understanding Triton Compilation
|
|
148
158
|
|
{tritonparse-0.3.2.dev20251113071521 → tritonparse-0.3.3.dev20251231071619}/tests/test_add.py
RENAMED
|
@@ -12,8 +12,8 @@ import os
|
|
|
12
12
|
import torch
|
|
13
13
|
import triton
|
|
14
14
|
import triton.language as tl
|
|
15
|
+
import tritonparse.parse.utils
|
|
15
16
|
import tritonparse.structured_logging
|
|
16
|
-
import tritonparse.utils
|
|
17
17
|
|
|
18
18
|
log_path = "./logs"
|
|
19
19
|
tritonparse.structured_logging.init(log_path, enable_trace_launch=True)
|
|
@@ -75,6 +75,6 @@ def test_tensor_add():
|
|
|
75
75
|
if __name__ == "__main__":
|
|
76
76
|
test_tensor_add()
|
|
77
77
|
# Use improved unified_parse with explicit output directory
|
|
78
|
-
tritonparse.utils.unified_parse(
|
|
78
|
+
tritonparse.parse.utils.unified_parse(
|
|
79
79
|
source=log_path, out="./parsed_output", overwrite=True
|
|
80
80
|
)
|