tritonparse 0.3.1.dev20251028071524__py3-none-any.whl → 0.3.1.dev20251029071541__py3-none-any.whl
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/cli.py +8 -0
- tritonparse/reproducer/cli.py +5 -0
- tritonparse/reproducer/orchestrator.py +2 -2
- tritonparse/reproducer/placeholder_replacer.py +35 -17
- tritonparse/reproducer/templates/example.py +5 -1
- tritonparse/reproducer/templates/tritonbench.py +103 -0
- tritonparse/reproducer/utils.py +7 -2
- {tritonparse-0.3.1.dev20251028071524.dist-info → tritonparse-0.3.1.dev20251029071541.dist-info}/METADATA +1 -1
- {tritonparse-0.3.1.dev20251028071524.dist-info → tritonparse-0.3.1.dev20251029071541.dist-info}/RECORD +13 -12
- {tritonparse-0.3.1.dev20251028071524.dist-info → tritonparse-0.3.1.dev20251029071541.dist-info}/WHEEL +0 -0
- {tritonparse-0.3.1.dev20251028071524.dist-info → tritonparse-0.3.1.dev20251029071541.dist-info}/entry_points.txt +0 -0
- {tritonparse-0.3.1.dev20251028071524.dist-info → tritonparse-0.3.1.dev20251029071541.dist-info}/licenses/LICENSE +0 -0
- {tritonparse-0.3.1.dev20251028071524.dist-info → tritonparse-0.3.1.dev20251029071541.dist-info}/top_level.txt +0 -0
tritonparse/cli.py
CHANGED
|
@@ -68,12 +68,20 @@ def main():
|
|
|
68
68
|
}
|
|
69
69
|
unified_parse(**parse_args)
|
|
70
70
|
elif args.func == "reproduce":
|
|
71
|
+
replacer = None
|
|
72
|
+
if args.use_fbcode:
|
|
73
|
+
from tritonparse.fb.reproducer.replacer import FBCodePlaceholderReplacer
|
|
74
|
+
|
|
75
|
+
replacer = FBCodePlaceholderReplacer()
|
|
76
|
+
print(f"Using FBCode placeholder replacer for template: {args.template}")
|
|
77
|
+
|
|
71
78
|
reproduce(
|
|
72
79
|
input_path=args.input,
|
|
73
80
|
line_index=args.line - 1, # Convert 1-based line number to 0-based index
|
|
74
81
|
out_dir=args.out_dir,
|
|
75
82
|
template=args.template,
|
|
76
83
|
kernel_import=args.kernel_import,
|
|
84
|
+
replacer=replacer,
|
|
77
85
|
)
|
|
78
86
|
else:
|
|
79
87
|
raise RuntimeError(f"Unknown command: {args.func}")
|
tritonparse/reproducer/cli.py
CHANGED
|
@@ -23,7 +23,7 @@ def reproduce(
|
|
|
23
23
|
template: str,
|
|
24
24
|
replacer: Optional[PlaceholderReplacer] = None,
|
|
25
25
|
kernel_import: KernelImportMode = KernelImportMode.DEFAULT,
|
|
26
|
-
) -> dict[str,
|
|
26
|
+
) -> dict[str, str]:
|
|
27
27
|
"""
|
|
28
28
|
Generate a reproducer script from NDJSON trace file.
|
|
29
29
|
|
|
@@ -45,7 +45,7 @@ def reproduce(
|
|
|
45
45
|
f"Built context bundle for kernel: {context_bundle.kernel_info.function_name}"
|
|
46
46
|
)
|
|
47
47
|
out_py_path, temp_json_path = determine_output_paths(
|
|
48
|
-
out_dir, context_bundle.kernel_info.function_name
|
|
48
|
+
out_dir, context_bundle.kernel_info.function_name, template
|
|
49
49
|
)
|
|
50
50
|
save_prettified_json(context_bundle.raw_launch_event, temp_json_path)
|
|
51
51
|
|
|
@@ -76,21 +76,39 @@ class DefaultPlaceholderReplacer(PlaceholderReplacer):
|
|
|
76
76
|
- # {{KERNEL_INVOCATION_PLACEHOLDER}}: Replaced with kernel invocation code
|
|
77
77
|
"""
|
|
78
78
|
|
|
79
|
+
KERNEL_NAME_PLACEHOLDER = "{{KERNEL_NAME_PLACEHOLDER}}"
|
|
80
|
+
JSON_FILE_NAME_PLACEHOLDER = "{{JSON_FILE_NAME_PLACEHOLDER}}"
|
|
81
|
+
IR_OVERRIDE_SETUP_PLACEHOLDER = "# {{IR_OVERRIDE_SETUP_PLACEHOLDER}}"
|
|
82
|
+
KERNEL_SYSPATH_PLACEHOLDER = "# {{KERNEL_SYSPATH_PLACEHOLDER}}"
|
|
83
|
+
KERNEL_IMPORT_PLACEHOLDER = "# {{KERNEL_IMPORT_PLACEHOLDER}}"
|
|
84
|
+
UTILITY_FUNCTIONS_PLACEHOLDER = "# {{UTILITY_FUNCTIONS_PLACEHOLDER}}"
|
|
85
|
+
KERNEL_INVOCATION_PLACEHOLDER = "# {{KERNEL_INVOCATION_PLACEHOLDER}}"
|
|
86
|
+
|
|
79
87
|
def __init__(self):
|
|
80
88
|
super().__init__()
|
|
81
89
|
# Register all default handlers
|
|
82
|
-
self.register(
|
|
90
|
+
self.register(self.JSON_FILE_NAME_PLACEHOLDER, self._replace_json_filename)
|
|
83
91
|
self.register(
|
|
84
|
-
|
|
92
|
+
self.IR_OVERRIDE_SETUP_PLACEHOLDER, self._replace_ir_override_setup
|
|
85
93
|
)
|
|
86
|
-
self.register(
|
|
87
|
-
self.register(
|
|
94
|
+
self.register(self.KERNEL_SYSPATH_PLACEHOLDER, self._replace_kernel_syspath)
|
|
95
|
+
self.register(self.KERNEL_IMPORT_PLACEHOLDER, self._replace_kernel_import)
|
|
88
96
|
self.register(
|
|
89
|
-
|
|
97
|
+
self.UTILITY_FUNCTIONS_PLACEHOLDER, self._replace_utility_functions
|
|
90
98
|
)
|
|
91
99
|
self.register(
|
|
92
|
-
|
|
100
|
+
self.KERNEL_INVOCATION_PLACEHOLDER, self._replace_kernel_invocation
|
|
93
101
|
)
|
|
102
|
+
self.register(self.KERNEL_NAME_PLACEHOLDER, self._replace_kernel_name)
|
|
103
|
+
|
|
104
|
+
def _replace_kernel_name(
|
|
105
|
+
self, code: str, context_bundle: ContextBundle, **kwargs
|
|
106
|
+
) -> str:
|
|
107
|
+
"""Replace the kernel name placeholder."""
|
|
108
|
+
kernel_name = context_bundle.kernel_info.function_name
|
|
109
|
+
if not kernel_name:
|
|
110
|
+
raise ValueError("Kernel function name is not available")
|
|
111
|
+
return code.replace(self.KERNEL_NAME_PLACEHOLDER, kernel_name)
|
|
94
112
|
|
|
95
113
|
def _replace_json_filename(
|
|
96
114
|
self, code: str, context_bundle: ContextBundle, **kwargs
|
|
@@ -99,7 +117,7 @@ class DefaultPlaceholderReplacer(PlaceholderReplacer):
|
|
|
99
117
|
temp_json_path = kwargs.get("temp_json_path")
|
|
100
118
|
if temp_json_path is None:
|
|
101
119
|
raise ValueError("temp_json_path is required for JSON filename replacement")
|
|
102
|
-
return code.replace(
|
|
120
|
+
return code.replace(self.JSON_FILE_NAME_PLACEHOLDER, temp_json_path.name)
|
|
103
121
|
|
|
104
122
|
def _replace_ir_override_setup(
|
|
105
123
|
self, code: str, context_bundle: ContextBundle, **kwargs
|
|
@@ -108,7 +126,7 @@ class DefaultPlaceholderReplacer(PlaceholderReplacer):
|
|
|
108
126
|
kernel_import = kwargs.get("kernel_import", KernelImportMode.DEFAULT)
|
|
109
127
|
|
|
110
128
|
if kernel_import != KernelImportMode.OVERRIDE_TTIR:
|
|
111
|
-
return code.replace(
|
|
129
|
+
return code.replace(self.IR_OVERRIDE_SETUP_PLACEHOLDER, "")
|
|
112
130
|
|
|
113
131
|
comp_json_filename = kwargs.get("comp_json_filename")
|
|
114
132
|
if not comp_json_filename:
|
|
@@ -158,7 +176,7 @@ _original_autotune = triton.autotune
|
|
|
158
176
|
triton.autotune = _patched_autotune
|
|
159
177
|
'''
|
|
160
178
|
|
|
161
|
-
return code.replace(
|
|
179
|
+
return code.replace(self.IR_OVERRIDE_SETUP_PLACEHOLDER, setup_code)
|
|
162
180
|
|
|
163
181
|
def _replace_kernel_syspath(
|
|
164
182
|
self, code: str, context_bundle: ContextBundle, **kwargs
|
|
@@ -168,15 +186,15 @@ triton.autotune = _patched_autotune
|
|
|
168
186
|
|
|
169
187
|
if kernel_import == KernelImportMode.DEFAULT:
|
|
170
188
|
sys_stmt, _ = _generate_import_statements(context_bundle.kernel_info)
|
|
171
|
-
return code.replace(
|
|
189
|
+
return code.replace(self.KERNEL_SYSPATH_PLACEHOLDER, sys_stmt)
|
|
172
190
|
elif kernel_import == KernelImportMode.COPY:
|
|
173
191
|
comment = (
|
|
174
192
|
"# Kernel sys.path setup skipped - kernel source code embedded below"
|
|
175
193
|
)
|
|
176
|
-
return code.replace(
|
|
194
|
+
return code.replace(self.KERNEL_SYSPATH_PLACEHOLDER, comment)
|
|
177
195
|
elif kernel_import == KernelImportMode.OVERRIDE_TTIR:
|
|
178
196
|
comment = "# Kernel sys.path setup skipped - using IR override mode"
|
|
179
|
-
return code.replace(
|
|
197
|
+
return code.replace(self.KERNEL_SYSPATH_PLACEHOLDER, comment)
|
|
180
198
|
else:
|
|
181
199
|
raise ValueError(f"Unknown kernel_import mode: {kernel_import}")
|
|
182
200
|
|
|
@@ -190,7 +208,7 @@ triton.autotune = _patched_autotune
|
|
|
190
208
|
_, import_statement = _generate_import_statements(
|
|
191
209
|
context_bundle.kernel_info
|
|
192
210
|
)
|
|
193
|
-
return code.replace(
|
|
211
|
+
return code.replace(self.KERNEL_IMPORT_PLACEHOLDER, import_statement)
|
|
194
212
|
elif kernel_import == KernelImportMode.COPY:
|
|
195
213
|
source_code = context_bundle.kernel_info.source_code
|
|
196
214
|
func_name = context_bundle.kernel_info.function_name
|
|
@@ -216,10 +234,10 @@ triton.autotune = _patched_autotune
|
|
|
216
234
|
embedded_code += "\n" + source_code
|
|
217
235
|
embedded_code += f"\n\n# Use kernel function directly\nimported_kernel_function = {func_name}"
|
|
218
236
|
|
|
219
|
-
return code.replace(
|
|
237
|
+
return code.replace(self.KERNEL_IMPORT_PLACEHOLDER, embedded_code)
|
|
220
238
|
elif kernel_import == KernelImportMode.OVERRIDE_TTIR:
|
|
221
239
|
comment = "# Kernel import skipped - using IR override mode with TTIR"
|
|
222
|
-
return code.replace(
|
|
240
|
+
return code.replace(self.KERNEL_IMPORT_PLACEHOLDER, comment)
|
|
223
241
|
else:
|
|
224
242
|
raise ValueError(f"Unknown kernel_import mode: {kernel_import}")
|
|
225
243
|
|
|
@@ -228,7 +246,7 @@ triton.autotune = _patched_autotune
|
|
|
228
246
|
) -> str:
|
|
229
247
|
"""Replace the utility functions placeholder with extracted functions."""
|
|
230
248
|
utility_code = extract_utility_functions()
|
|
231
|
-
return code.replace(
|
|
249
|
+
return code.replace(self.UTILITY_FUNCTIONS_PLACEHOLDER, utility_code)
|
|
232
250
|
|
|
233
251
|
def _replace_kernel_invocation(
|
|
234
252
|
self, code: str, context_bundle: ContextBundle, **kwargs
|
|
@@ -237,4 +255,4 @@ triton.autotune = _patched_autotune
|
|
|
237
255
|
source_code = context_bundle.kernel_info.source_code
|
|
238
256
|
pos_args, kw_args = _parse_kernel_signature(source_code)
|
|
239
257
|
invocation_snippet = _generate_invocation_snippet(pos_args, kw_args)
|
|
240
|
-
return code.replace(
|
|
258
|
+
return code.replace(self.KERNEL_INVOCATION_PLACEHOLDER, invocation_snippet)
|
|
@@ -14,7 +14,7 @@ import torch
|
|
|
14
14
|
# {{UTILITY_FUNCTIONS_PLACEHOLDER}}
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
def launch_kernel():
|
|
18
18
|
script_dir = Path(__file__).resolve().parent # noqa: F821
|
|
19
19
|
json_file = script_dir / "{{JSON_FILE_NAME_PLACEHOLDER}}"
|
|
20
20
|
grid, args_dict = create_args_from_json_file(str(json_file)) # noqa: F821
|
|
@@ -28,3 +28,7 @@ if __name__ == "__main__":
|
|
|
28
28
|
|
|
29
29
|
torch.cuda.synchronize()
|
|
30
30
|
print("Kernel execution finished.")
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
if __name__ == "__main__":
|
|
34
|
+
launch_kernel()
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary.
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Any, Callable, Dict, Optional, Tuple
|
|
5
|
+
|
|
6
|
+
import torch
|
|
7
|
+
from tritonbench.utils.triton_op import (
|
|
8
|
+
BenchmarkOperator,
|
|
9
|
+
register_benchmark,
|
|
10
|
+
REGISTERED_X_VALS,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
imported_kernel_function: Optional[Callable[[Tuple[int], Dict[str, Any]], None]] = None
|
|
15
|
+
|
|
16
|
+
# {{IR_OVERRIDE_SETUP_PLACEHOLDER}}
|
|
17
|
+
|
|
18
|
+
# {{KERNEL_SYSPATH_PLACEHOLDER}}
|
|
19
|
+
|
|
20
|
+
# {{KERNEL_IMPORT_PLACEHOLDER}}
|
|
21
|
+
|
|
22
|
+
# {{UTILITY_FUNCTIONS_PLACEHOLDER}}
|
|
23
|
+
|
|
24
|
+
assert imported_kernel_function is not None, "imported_kernel_function is missing"
|
|
25
|
+
|
|
26
|
+
KERNEL_NAME = "{{KERNEL_NAME_PLACEHOLDER}}"
|
|
27
|
+
REPRO_CONTEXT_FILE_NAME = "{{JSON_FILE_NAME_PLACEHOLDER}}"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _get_launch_kernel_args() -> Tuple[Tuple[int], Dict[str, Any]]:
|
|
31
|
+
script_dir = Path(__file__).resolve().parent # noqa: F821
|
|
32
|
+
json_file = script_dir / REPRO_CONTEXT_FILE_NAME
|
|
33
|
+
|
|
34
|
+
grid, args_dict = create_args_from_json_file(json_file) # noqa: F821, F841
|
|
35
|
+
|
|
36
|
+
print("Recorded kernel arguments dictionary:")
|
|
37
|
+
for name, arg in args_dict.items():
|
|
38
|
+
if isinstance(arg, torch.Tensor):
|
|
39
|
+
print(
|
|
40
|
+
f" {name}: Tensor: {arg.shape} {arg.dtype} stride: {arg.stride()}, is_contiguous: {arg.is_contiguous()}"
|
|
41
|
+
)
|
|
42
|
+
else:
|
|
43
|
+
print(f" {name}: {arg}")
|
|
44
|
+
print(f"Grid: {grid}")
|
|
45
|
+
|
|
46
|
+
return tuple(grid), args_dict
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
grid, args_dict = _get_launch_kernel_args()
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _launch_kernel(grid: tuple[int], args_dict: dict[str, Any]):
|
|
53
|
+
try:
|
|
54
|
+
assert grid is not None
|
|
55
|
+
assert args_dict is not None
|
|
56
|
+
|
|
57
|
+
# {{KERNEL_INVOCATION_PLACEHOLDER}}
|
|
58
|
+
|
|
59
|
+
except Exception as e:
|
|
60
|
+
print(f"Error: {e}")
|
|
61
|
+
print("Failed to launch kernel!")
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
# HACK: @register_x_val doesn't allow us to pass `operator_name`` as a parameter
|
|
65
|
+
tensor_args = {k: v for k, v in args_dict.items() if isinstance(v, torch.Tensor)}
|
|
66
|
+
x_vals_label = ", ".join(tensor_args.keys())
|
|
67
|
+
REGISTERED_X_VALS[KERNEL_NAME] = x_vals_label
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class Operator(BenchmarkOperator):
|
|
71
|
+
@register_benchmark(operator_name=KERNEL_NAME)
|
|
72
|
+
def run_kernel(self, grid, args_dict):
|
|
73
|
+
return lambda: _launch_kernel(grid, args_dict)
|
|
74
|
+
|
|
75
|
+
def get_input_iter(self):
|
|
76
|
+
yield {"grid": grid, "args_dict": args_dict}
|
|
77
|
+
|
|
78
|
+
def get_x_val(self, example_inputs):
|
|
79
|
+
tensors_shapes = [
|
|
80
|
+
tuple(v.shape)
|
|
81
|
+
for v in example_inputs["args_dict"].values()
|
|
82
|
+
if isinstance(v, torch.Tensor)
|
|
83
|
+
]
|
|
84
|
+
return tuple(tensors_shapes)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
if __name__ == "__main__":
|
|
88
|
+
print("do_benchmark...")
|
|
89
|
+
|
|
90
|
+
args = [
|
|
91
|
+
"--benchmark-name",
|
|
92
|
+
KERNEL_NAME,
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
from tritonbench.utils.parser import get_parser
|
|
96
|
+
|
|
97
|
+
parser = get_parser(args)
|
|
98
|
+
tb_args, extra_args = parser.parse_known_args(args)
|
|
99
|
+
bench = Operator(tb_args, extra_args)
|
|
100
|
+
bench.run()
|
|
101
|
+
|
|
102
|
+
print(bench.output)
|
|
103
|
+
print("Benchmark completed successfully!")
|
tritonparse/reproducer/utils.py
CHANGED
|
@@ -327,7 +327,7 @@ def _create_arg_from_info(arg_info):
|
|
|
327
327
|
return None
|
|
328
328
|
|
|
329
329
|
|
|
330
|
-
def determine_output_paths(out_dir: str, kernel_name: str):
|
|
330
|
+
def determine_output_paths(out_dir: str, kernel_name: str, template: str):
|
|
331
331
|
"""
|
|
332
332
|
Determine output file paths for reproducer script and context data.
|
|
333
333
|
|
|
@@ -342,7 +342,12 @@ def determine_output_paths(out_dir: str, kernel_name: str):
|
|
|
342
342
|
output_directory = Path(out_dir) / kernel_name
|
|
343
343
|
output_directory.mkdir(parents=True, exist_ok=True)
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
filename_parts = ["repro"]
|
|
346
|
+
if template != "example":
|
|
347
|
+
filename_parts.append(template.replace(".", "_"))
|
|
348
|
+
filename_parts.append(timestamp)
|
|
349
|
+
filename = "_".join(filename_parts) + ".py"
|
|
350
|
+
out_py_path = output_directory / filename
|
|
346
351
|
temp_json_path = output_directory / f"repro_context_{timestamp}.json"
|
|
347
352
|
|
|
348
353
|
return out_py_path, temp_json_path
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tritonparse
|
|
3
|
-
Version: 0.3.1.
|
|
3
|
+
Version: 0.3.1.dev20251029071541
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
tritonparse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
tritonparse/__main__.py,sha256=RXbkALBewcb1xlJBnsQl9IaBRUNln7U8NuRZKT8UdIk,117
|
|
3
|
-
tritonparse/cli.py,sha256=
|
|
3
|
+
tritonparse/cli.py,sha256=JqBwzpxiFKb0TFdhovDXnz3gwkjeASYgIe311GRBy0o,2876
|
|
4
4
|
tritonparse/common.py,sha256=MJo9bVCgSKkwXpEoUkUczPo_5jOYpJgXLq4UsWYqN3c,13924
|
|
5
5
|
tritonparse/context_manager.py,sha256=OdMn11qbApYL2c9IlbUpcT27r04ZSa4DfvrY2mLA958,2243
|
|
6
6
|
tritonparse/event_diff.py,sha256=USCjfjYr-7Ie-EfZgtCFMZMA1KRzFRDe7yDFy98zYI4,4962
|
|
@@ -16,16 +16,17 @@ tritonparse/tp_logger.py,sha256=vXzY7hMDmVnRBGBhIjFZe3nHZzG5NKKPONGUszJhGgU,242
|
|
|
16
16
|
tritonparse/trace_processor.py,sha256=aQPqlnpTtWoGzHYv4BXWUH4nCeUQGSK3o-fj0LD9I0c,14147
|
|
17
17
|
tritonparse/utils.py,sha256=Jnlptcd79llSDev-_1XyyOnv2izUqv0PEL74A8GF2tc,4565
|
|
18
18
|
tritonparse/reproducer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
-
tritonparse/reproducer/cli.py,sha256=
|
|
19
|
+
tritonparse/reproducer/cli.py,sha256=95AgH9QOlSFpkC5iR89XV9wubv_5vfD1MKl2IxpAIzs,1718
|
|
20
20
|
tritonparse/reproducer/function_extractor.py,sha256=kQr10JKHy8EvAN7ic4Azjz6TYe-udBW2DVmbQ--c1pc,6643
|
|
21
|
-
tritonparse/reproducer/orchestrator.py,sha256=
|
|
22
|
-
tritonparse/reproducer/placeholder_replacer.py,sha256=
|
|
21
|
+
tritonparse/reproducer/orchestrator.py,sha256=OO-eeT4iN-QcB6uXMfH-VoMmiYHJUtrQDQnfneWkuAM,3268
|
|
22
|
+
tritonparse/reproducer/placeholder_replacer.py,sha256=_ehcve5V8_TwemE0NftoO97gZpf4i-n626juAIrixOE,10515
|
|
23
23
|
tritonparse/reproducer/types.py,sha256=86wql3NaGgpkOzx0gDFb5qexNjKExzhL0uIwGU7grrw,564
|
|
24
|
-
tritonparse/reproducer/utils.py,sha256=
|
|
24
|
+
tritonparse/reproducer/utils.py,sha256=DsO7695AuGaFOp4sRSCmsljBeyKnQud9NOKntaUL_VE,16803
|
|
25
25
|
tritonparse/reproducer/ingestion/ndjson.py,sha256=7amSwpbtG-od1-pW18Nm9AiaFc3Etd0-UETXwiYCmgw,7443
|
|
26
26
|
tritonparse/reproducer/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
tritonparse/reproducer/templates/example.py,sha256=
|
|
27
|
+
tritonparse/reproducer/templates/example.py,sha256=mTK_H4BfHntFdk9bybMEYSx8TyKXzQDwMxZok0Urw5s,828
|
|
28
28
|
tritonparse/reproducer/templates/loader.py,sha256=x14KHXkovOIcXFKii3Jx4XjpEhXqUMqp575qAffi370,1975
|
|
29
|
+
tritonparse/reproducer/templates/tritonbench.py,sha256=vRQ9xvIF3pgPHN2nGVBay6ngXScVdicU3agCV3f9Ao0,2875
|
|
29
30
|
tritonparse/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
31
|
tritonparse/tools/decompress_bin_ndjson.py,sha256=Gn5foDIlxBN5D5wmcdrEmwvxo3_wRlH8ih2U2Ys3RdM,4199
|
|
31
32
|
tritonparse/tools/disasm.py,sha256=c4HmNNoPPeXPQBQkPVcMaHwDHbHNZNxuqXn4UIIs1Z0,2434
|
|
@@ -33,9 +34,9 @@ tritonparse/tools/format_fix.py,sha256=ISalg_N_L7Xktag3mLr-G9T6Opxv793s1WG6A9wUt
|
|
|
33
34
|
tritonparse/tools/load_tensor.py,sha256=7-LbpboKDNJFBLNhiKS3enoqRlVAb55OjPc70PwHXAw,2789
|
|
34
35
|
tritonparse/tools/prettify_ndjson.py,sha256=kR8hmBCv-iJeuzpi2_6CZv9T4_edRQbBOSOPpMm6wrw,11117
|
|
35
36
|
tritonparse/tools/readme.md,sha256=w6PWYfYnRgoPArLjxG9rVrpcLUkoVMGuRlbpF-o0IQM,110
|
|
36
|
-
tritonparse-0.3.1.
|
|
37
|
-
tritonparse-0.3.1.
|
|
38
|
-
tritonparse-0.3.1.
|
|
39
|
-
tritonparse-0.3.1.
|
|
40
|
-
tritonparse-0.3.1.
|
|
41
|
-
tritonparse-0.3.1.
|
|
37
|
+
tritonparse-0.3.1.dev20251029071541.dist-info/licenses/LICENSE,sha256=4ZciugpyN7wcM4L-9pyDh_etvMUeIfBhDTyH1zeZlQM,1515
|
|
38
|
+
tritonparse-0.3.1.dev20251029071541.dist-info/METADATA,sha256=IX0-TFnQLPgqNePCfPvAn87E9HbfQWXH7mns7P2UBp0,8282
|
|
39
|
+
tritonparse-0.3.1.dev20251029071541.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
40
|
+
tritonparse-0.3.1.dev20251029071541.dist-info/entry_points.txt,sha256=wEXdaieDoRRCCdhEv2p_C68iytnaXU_2pwt5CqjfbWY,56
|
|
41
|
+
tritonparse-0.3.1.dev20251029071541.dist-info/top_level.txt,sha256=ITcTKgp3vf_bXV9vixuQU9IrZa3L1EfDSZwvRzRaoJU,12
|
|
42
|
+
tritonparse-0.3.1.dev20251029071541.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|