- Upload and Analyze Logs: Supports TornadoVM profiler logs in JSON, log, or CSV format.
- Automatic Conversion: Raw logs are automatically converted to CSV for analysis.
- Interactive Visualizations:
- Task Time Distribution (color-coded by task graph)
- Memory Usage
- Power Usage
- Copy-In/Copy-Out Analysis
- Total Execution Time Analysis (table, stacked bar, and sunburst chart)
- Task Graph Analysis (per-task breakdown for a selected task graph)
- Sidebar Configuration: Select which metrics to display and the time unit (ns, ms, sec).
- Downloadable Results: Download generated CSVs after processing.
- Modern UI: Custom logo, collapsible info panels, and beautiful charts.
-
Install dependencies:
pip install -r requirements.txt
-
Run the dashboard:
streamlit run src/app.py
-
Upload a profiling log file:
- Drag and drop a raw JSON/log or CSV file into the uploader.
- If a raw file is uploaded, it will be converted to CSV and available for download.
-
Explore the dashboard:
- Use the sidebar to select which metrics to display and the time unit.
- Review the visualizations and download the generated CSV if needed.
- Bar chart showing the sum of kernel execution times for each task, color-coded by task graph.
- Pie chart for overall distribution.
Example: Task Time Distribution as a Pie Chart (proportion of total kernel time per task):
Example: Task Time Distribution as a Bar Chart (kernel time per task, color-coded by task graph):
- Bar chart of total and average memory usage (copy-in bytes) for each task graph.
- Bar chart of average power usage for each task graph.
- Table and bar chart showing time and number of data transfer operations, and their contribution to total execution time.
- Table breaking down total execution time by task graph and action (kernel, dispatch, copy-in, copy-out), with percentages.
- Stacked bar chart for visual comparison.
- Sunburst chart: Hierarchical breakdown of total execution time by task graph and component, with interactive tooltips.
Example Table, Stacked Bar, and Sunburst Chart:
- Dropdown to select a specific task graph.
- Stacked bar chart showing how time is spent (kernel, copy-in, copy-out, dispatch) for each task in the selected graph.
- Memory usage per task (if available).
- Statistical summary of the selected metrics.
- View the raw input data as a DataFrame.
- Metrics Configuration: Select which visualizations to display.
- Select time unit: Choose between nanoseconds, milliseconds, or seconds.
- Status: See CSV generation status and download the generated CSV.
- Official Documentation
- Enable the profiler with
--enableProfiler console
orsilent
or via theExecutionPlan
API. - Profiler output includes kernel, dispatch, copy-in/out, and power metrics.
- Supported power metrics: NVIDIA NVML (OpenCL/PTX) and oneAPI Level Zero SYSMAN (SPIRV).
- Save profiler output with
--dumpProfiler <FILENAME>
.
- The dashboard uses a custom logo (
static/pulse-logo.png
). - You can further customize the UI and add new visualizations as needed.
MIT License