-
Notifications
You must be signed in to change notification settings - Fork 5
[BE] Update .gitignore and add new test output files #39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary: - Updated `parse_single_trace_content` to only process compilation events, improving efficiency by skipping non-compilation events. - Enhanced the handling of IR file mappings and bidirectional mappings between different IR types. - Improved the organization of output lines for final writing, ensuring accurate grouping of compilation and launch events by kernel hash. - Added new utility functions for flattening and unflattening dictionaries, and for generating launch diffs, enhancing the overall functionality of the module. These changes aim to streamline the parsing process and improve the clarity and maintainability of the codebase.
Summary: - Introduced `ArgumentViewer` to display argument distributions and differences in a structured format. - Added `DiffViewer` to handle and present differing fields, integrating `ArgumentViewer` for extracted arguments. - Created `StackDiffViewer` to visualize stack traces with collapsible sections for better user experience. - Updated `KernelOverview` to incorporate the new components for enhanced launch analysis and metadata display. - Enhanced `dataLoader` to support launch_diff events, improving kernel data processing. These changes aim to improve the visualization and analysis of kernel launch data, enhancing the overall functionality of the application.
Summary: - Added comments for clarity, including a note for the dropdown arrow icon in both `ArgumentViewer` and `StackDiffViewer`. - Updated the `renderSimpleDiff` function in `DiffViewer` to use a more descriptive parameter name. These changes improve code readability and maintainability across the components.
Summary: - Introduced a new test file `test_complex_kernels.py` to validate the functionality of two distinct Triton kernels: an autotuned matrix multiplication kernel and a fused element-wise operation kernel. - Implemented a comprehensive test plan that includes multiple launches with varied parameters for both kernels, ensuring thorough testing of their performance and correctness. - Enhanced logging capabilities during the tests to facilitate debugging and analysis of kernel launches. These changes aim to improve the testing framework for Triton kernels, ensuring robust validation of their functionality and performance.
Summary: - Updated .gitignore to include patterns for `.ndjson`, `.ndjson.gz`, and `.json` files, while ensuring specific test output directories are excluded from being ignored. - Added a new NDJSON log file for complex kernel tests and a corresponding gzipped version for parsed output. - Created a JSON file to list the log files for the complex kernel tests, enhancing the organization of test outputs. These changes improve the management of test output files and enhance the testing framework for Triton kernels.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding tests!
Two requests before you land this:
- Can you make the tests use
unittest
test cases - Can you double check whether the changed logging format affects backward compatibility between logs generated by old versions of tritonparse and new versions of the tritonparse CLI/UI? I think you should ensure that old tritonparse logs are still parse-able by new versions of the tritonparse CLI/UI.
@@ -0,0 +1,256 @@ | |||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to make this use the unittest framework so that these tests can be more easily run in internal CI?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let me move this example to the unit tests file rather than putting it in a separate file.
@@ -928,7 +931,7 @@ def __call__(self, metadata): | |||
) | |||
if launch_metadata_tritonparse is not None: | |||
trace_data["grid"] = launch_metadata_tritonparse[0] | |||
trace_data["metadata"] = launch_metadata_tritonparse[1] | |||
trace_data["compilation_metadata"] = launch_metadata_tritonparse[1] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just to double check: does this have BC considerations (e.g. will an old tritonparse artifact still be able to be parsed by the new tritonparse UI & CLI tool?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
previously, we didn't do anything for launch event. parsing step just ignore launch event, therefore the website also doesn't take launch event as inputs. so, no other usages for launch event before this feature. We are safe to change this name.
Summary:
.ndjson
,.ndjson.gz
, and.json
files, while ensuring specific test output directories are excluded from being ignored.These changes improve the management of test output files and enhance the testing framework for Triton kernels.