Skip to content

Releases: openxla/xprof

XProf v2.22.0

12 Mar 17:51

Choose a tag to compare

Known Issues

  • Due to a libtpu regression, tools depending on HLO Modules are not working as intended for libtpu versions 0.0.35 and 0.0.37. This currently affects all versions of XProf. For a temporary workaround, we advise using libtpu 0.0.36 while we resolve this issue. This impacts HLO Op Profile, Trace Viewer, and Graph Viewer.

What's Changed

  • Update XProf version to 2.22.0 by @subhamsoni-google in #2345
  • Implement the Trace Viewer V2 by Profiler Team in #2279
  • Add unit tests to megascale_perfetto directory. by @bbadawi1 in #2340
  • [XProf: trace viewer] Update consstants by Profiler Team in #2338
  • [XProf: trace viewer] Integrate ruler into the timeline table. by Profiler Team in #2331
  • Defer smart suggestions view rendering in overview page by @xiongbolu-mineral in #2326
  • Preserve session_path and run_path query parameters in Trace Viewer links. by Profiler Team in #2337
  • Add support for reading XSpace protos from Google Cloud Storage in xprof. by Profiler Team in #2325
  • Disables the smart suggestions feature in the XProf frontend. by Profiler Team in #2336
  • Add timing logs to TraceViewerProcessors. by @subhamsoni-google in #2335
  • Combine program ID map and source stats in OpStats, and generate HLO protos from XPlanes if needed. by @Pani122 in #2334
  • Refactor: Add detailed logging for XProf by @subhamsoni-google in #2333
  • Update Copybara configurations to support Google Cloud C++ and JSON third-party mappings, and add corresponding external dependencies to the OSS Bazel WORKSPACE. Add transform rules for TSL and Storage Client include paths. by Profiler Team in #2321
  • Optimize step alignment computation. by @subhamsoni-google in #2322
  • [XProf: trace viewer] Always show delete button for selected time ranges by Profiler Team in #2317
  • Create Input Bound Rule for Smart Suggestion to Cover High Infeed Op Ratio by Profiler Team in #2308
  • Fix timeline link in memory viewer by @muditgokhale2 in #2328
  • Extract file I/O operations into profile_io.py by Profiler Team in #2323
  • Display disaggregated serving avg decoding step time on TPU in the XProf overview page by Profiler Team in #2195
  • Skip redundant xspace preprocessing in streaming trace viewer by @muditgokhale2 in #2306
  • [Code cleanup] Reformat timeline.cc and timeline_test.cc. by Profiler Team in #2318
  • Improve handling of DMA events and clean up the code. by @bbadawi1 in #2311
  • Refactor: Optimize StepIntersection by pre-calculating step timespans by @subhamsoni-google in #2284
  • Add a Jax Profiler Test by @Becker-ZH in #2298
  • Register separate smart suggestion rules for 3P by Profiler Team in #2297
  • Add mandatory device and resource regexes to TraceFilterConfig by Profiler Team in #2300
  • Fix HLO Stats UI misalignment by @muditgokhale2 in #2305
  • Fix CSV export filename to be human-readable in XProf by @muditgokhale2 in #2294
  • Fix metadata collection issue for HLO. by @cliveverghese in #2303
  • Fix redundant double data requests on page reload in hlo_stats, input_pipeline, memory_profile, op_profile and roofline_model by @muditgokhale2 in #2261
  • Remove duplicate description push in performance summary. by @bmass02 in #2296
  • Fix XStat retrieval issues in DutyCycle calculations that resulted in off-duty ops being considered on-duty. by @bmass02 in #2295
  • Refactor: Improve error propagation for ConvertXSpaceToOpStats by @subhamsoni-google in #2283
  • Fix SVG export in XProf Graph Viewer by removing invalid .outerHTML access. by @muditgokhale2 in #2293
  • Implement graph viewer crosslinks in the Trace Viewer V2 by Profiler Team in #2278
  • Support Helical MPMD Pipelining in Trace Viewer. by Profiler Team in #2201

Full Changelog: xprof-v2.21.6...xprof-v2.22.0

XProf v2.21.6

12 Mar 17:49

Choose a tag to compare

What's Changed

  • Add view_start/end to shareable Trace Viewer V2 deeplink, allowing for sharing viewport by Profiler Team in #2257
  • Add unit tests and refactor trace_events_to_json to use absl::btree_map. by Profiler Team in #2246
  • Preserve session parameters in Memory Viewer timeline URL. by Profiler Team in #2236
  • Remove trace_viewer_container files from copybara excludes. by Profiler Team in #2269
  • Make Emscripten/WASM build support compatible with the trace viewer v2 by Profiler Team in #2256
  • Add group preview drawing and separators in Timeline. by Profiler Team in #2264
  • Preserve session parameters in Graph Viewer and Overview Page URLs. by Profiler Team in #2238
  • Ensure session and run parameters are preserved across tool navigations and link generation. by Profiler Team in #2233
  • Fix redundant double data requests on page reload in Overview Page by @muditgokhale2 in #2260
  • Refactor ProfileWorkerServiceImpl and improve logging. by @subhamsoni-google in #2244
  • Project import generated by Copybara by @h-joo in #2254
  • [XProf: trace viewer] Add collapse/expand feature to timeline groups. by Profiler Team in #2251
  • Add Emscripten/WASM build support for open-source xprof. by Profiler Team in #2253
  • Create docs for Utilization Viewer and Perf Counters tools by @Matt-Hurd in #2248
  • Reset tool context on navigation. by Profiler Team in #2235
  • Re-enable counter events visibility criteria per zoom level. by Profiler Team in #2234
  • Fix multi-host selection persistence in Trace Viewer shared URLs by @muditgokhale2 in #2247
  • Implement EventTimeFractionAnalyzerProcessor for Suggestion processing by Profiler Team in #2242
  • Add ArrayRecord to Tf.Data's file read categorization. by @bmass02 in #2232
  • Stop showing recv-done stats and debug tracks at start-up in megascale perfetto. by @bbadawi1 in #2241
  • Implement deep search in trace_viewer v2 UI by Profiler Team in #2218
  • Patch the modified Z-Score straggler detection with Minimum Variance Threshold by Profiler Team in #2220
  • Fix potential null dereference. by @cliveverghese in #2230
  • Add utilization viewer by @cliveverghese in #2229
  • Add convert to utilization viewer function from xplane by @cliveverghese in #2228
  • Add tpuv7 Utilization Viewer logic by @cliveverghese in #2225
  • UI plumbing to add a new button to hlo op profile for viewing reg utilization by Profiler Team in #2108
  • Add "Perf Counters" tool to xprof. by @zzzaries in #2219
  • Add TPU v7 counter IDs to xprof. by @cliveverghese in #2217
  • Update XLA dependency in xprof WORKSPACE.bazel to include xplane_schema changes for perf counter stat. by @zzzaries in #2221
  • Implement GetMemoryProfile in ToolDataProviderImpl for smart suggestion by Profiler Team in #2208
  • Use the new RBE pool in ml-oss-rbe-general for Windows RBE builds by @nitins17 in #2215
  • Add log to time the xplane_to_tools_data_with_profile_processor method by @muditgokhale2 in #2216
  • [XProf: trace viewer] Refactor magic numbers in timeline/. by Profiler Team in #2210
  • Add event search bar to Trace Viewer v2 by Profiler Team in #2026
  • Add Tpu Counter Utility class by @cliveverghese in #2200
  • Update benchy test to include larger xplanes by @muditgokhale2 in #2213

Full Changelog: xprof-v2.21.5...xprof-v2.21.6

XProf v2.21.5

12 Mar 17:44

Choose a tag to compare

What's Changed

  • Update XProf version to 2.21.5 by @subhamsoni-google in #2212
  • Use xspace from CNS for the benchy test by @muditgokhale2 in #2209
  • Change flow line colors to be based on flow category in Trace Viewer 2.0 by Profiler Team in #2160
  • Refactor ProfileProcessor-based tool data conversion by Profiler Team in #2199
  • Make Megascale Perfetto tool available in OSS xprof. by Profiler Team in #2177
  • This change introduces multi-selection for flow event categories in Trace Viewer v2, replacing the single-select dropdown with a multi-select menu. Users can now toggle visibility for multiple flow categories at once. Flow event lines are now colored based on their category for easier identification. by Profiler Team in #2197
  • [XProf: trace viewer] Replace polling CanvasState::Update with ResizeObserver. by Profiler Team in #2190
  • Implement GetEventTimeFractionAnalyzerResult() in tool_data_provider_impl.h for smart suggestion by Profiler Team in #2187
  • Implement cross link functionality with roofline model and stack trace. by Profiler Team in #2014
  • Add Tpu Performance Counters for SparseCore and HBM by @cliveverghese in #2192
  • [XProf: trace viewer] Clean up Emscripten related code. by Profiler Team in #2193
  • [XProf: trace viewer] Support canceling selection with Escape key. by Profiler Team in #2191
  • [XProf: trace viewer] Defer data fetching until active interactions (keyboard/mouse) is done. by Profiler Team in #2189
  • [XProf: trace viewer] Improve trackpad scrolling and add Shift-key modifier. by Profiler Team in #2188
  • [DOCS] Update docker build command by @copybara-github in #2081
  • Initial proto for Disaggregared Serving Latency by Profiler Team in #2183
  • Refactor ProfilePlugin to support dependency injection. by @subhamsoni-google in #2170
  • Remove the disable wrong arg types linter exception by @muditgokhale2 in #2186
  • Remove Python 3.9 support from xprof. by @subhamsoni-google in #2181
  • Fix text overlap issues in memory_viewer tool by @muditgokhale2 in #2185
  • Fix graph viewer loading issue while retain trace viewer loading efficiency with multi-host session. by @zzzaries in #2178
  • [Code cleanup] Reorder function definitions in timeline.cc. by Profiler Team in #2180
  • [XProf: trace viewer] Switch to Google Sans Code font. by Profiler Team in #2179
  • Retrieve and display extra event data by Profiler Team in #2012
  • Add build configs for linux aarch64 by @Matt-Hurd in #2175
  • Implement GetOpStats() in tool_data_provider_impl.h for smart suggestion by Profiler Team in #2172
  • [XProf: trace viewer] Implement Zoom-to-Cursor in v2 by Profiler Team in #2174
  • [XProf: trace viewer] Refine fetch resolution and suppression logic. by Profiler Team in #2168
  • [XProf: trace viewer] Optimize MaybeRequestData with early exit and zoom fix. by Profiler Team in #2167
  • [XProf: trace viewer] Add tolerance to TimeRange::Contains to handle floating point inaccuracies. by Profiler Team in #2161
  • Fix the version route API by @muditgokhale2 in #2173
  • prioritize the legacy source info now for correctness. by @zzzaries in #2131
  • Add SparseCore offload rule to Smart Suggestion. by Profiler Team in #2124
  • Add flow category filtering UI to Trace Viewer v2. by Profiler Team in #2147
  • Avoid repetitive onPlot call in Graph Viewer. by @zzzaries in #2148
  • Improve Graph Viewer functionality with graph type change - should be no-op now as hlo graph is the only graph type. by @zzzaries in #2138
  • Added timing logs while saving leveldb files. by Profiler Team in #2149
  • [XProf: trace viewer] Change selected time range text color to black. by Profiler Team in #2146
  • Refactor SourceCodeService.isAvailable to return an Observable to rely on profiler configuration. by @zzzaries in #2137
  • Enable circular buffer tracing for TPU by @sannidhyachauhan in #2105
  • Add flow event visualization to Trace Viewer v2. by Profiler Team in #2083

Full Changelog: xprof-v2.21.4...xprof-v2.21.5

XProf v2.21.4

09 Jan 21:31

Choose a tag to compare

What's Changed

  • Update xprof version to 2.21.4 by @subhamsoni-google in #2143
  • Wrap diagnostic messages in unordered lists and add styling for scrollable lists. by @zzzaries in #2144
  • Update openxla/xla dependency version. by @subhamsoni-google in #2142
  • Project import generated by Copybara by Profiler Team in #2140
  • Add terminology page by @copybara-github in #2080
  • Add GetMemoryProfile to smart suggestion ToolDataProvider interface. by Profiler Team in #2129
  • [DOCS] Overview page by @copybara-github in #2077
  • Enhance HloModuleUtilsTest to cover multi-level stack frames. by @zzzaries in #2125
  • Update EntrySelectedEventDetail to use microsecond-based formatted strings, and remove unnecessary start/end time event detail data by Profiler Team in #2118
  • Add Python binding for continuous profiling and snapshot. by @sannidhyachauhan in #2049
  • Default to showing all hosts when enabling MPMD Pipeline View. by Profiler Team in #2106
  • Revert trace viewer param changes by @muditgokhale2 in #2127
  • Update k8s and Docker deployment by @copybara-github in #2086
  • Allow loading HLO protos by program ID in addition to module name. by @zzzaries in #2084
  • Skip intersecting empty step event sets. by @bmass02 in #2090
  • Add Capturing Profiles and individual library guides by @copybara-github in #2052
  • Enhance Trace Viewer v2 drawer to display event start time and duration. by Profiler Team in #2011
  • [XProf: trace viewer] Add loading status updates to Trace Viewer V2 incremental loading. by Profiler Team in #2111
  • [XProf: trace viewer] Preserve the visible time range by Profiler Team in #2110
  • [XProf: trace viewer] Allow setting the initial visible time range from URL parameters. by Profiler Team in #2107
  • [XProf: trace viewer] Add event listener to handle data re-fetching in Trace Viewer V2. by Profiler Team in #2089
  • [XProf: trace viewer] Rename data_time_range_ to fetched_data_time_range_. by Profiler Team in #2092
  • [XProf: trace viewer] Adjust horizontal separator line start position in Trace Viewer. by Profiler Team in #2113
  • [XProf: trace viewer] Update mouse cursor for delete button in selected time range by Profiler Team in #2095
  • [XProf: trace viewer] Add a close button to selected time ranges in the timeline. by Profiler Team in #2094
  • Add MPMD Pipeline View toggle and process sorting in Trace Viewer V2. by Profiler Team in #2071
  • Propagate session_path and run_path in DataServiceV2 to all API calls by Profiler Team in #2078
  • The BufferDetails component now uses the injected DataServiceV2Interface to generate the graph viewer link. Tests are updated to provide a mock for DATA_SERVICE_INTERFACE_TOKEN. by Profiler Team in #2103
  • Add unit tests for stub_factory. by @subhamsoni-google in #2100
  • Add multi-threading to trace viewer Reduce by @muditgokhale2 in #2096
  • Cost Accumulation Updates For Custom Call by Profiler Team in #2097
  • Fix negative resolution calculation in tf-trace-viewer when clientWidth is 0 by @subhamsoni-google in #2087
  • Removes the ImGui-based loading indicator within the WASM module by Profiler Team in #2037
  • Add OpProfile data fetching to smart suggestion ToolDataProvider interface. by Profiler Team in #2065
  • Add support in trace_viewer to leverage the aggregator-worker setup by @muditgokhale2 in #1963
  • [XProf: trace viewer] Add resolution parameter to trace viewer data requests. by Profiler Team in #2082
  • Add warning tooltip to common for use across modules. by Profiler Team in #2074
  • Implement Straggler detection in barrier-cores rule using Modified Z-Score method. by Profiler Team in #2054
  • Disable MPMD pipeline view button by Profiler Team in #2072
  • Standardize import guards, visibility, imports by @Matt-Hurd in #1980
  • reproduce bug which introduces syntax not present in 3.9 by @subhamsoni-google in #2062
  • Include per-host event fraction for each step in EventTimeFractionAnalyzer proto. by Profiler Team in #2042
  • Remove window.open and use windowOpen directly by @zzzaries in #1967
  • Allow selecting host in Megascale Perfetto tool. by Profiler Team in #2036
  • Add hover tooltip and marker to counter tracks. by Profiler Team in #2043
  • Updates to the run environment data processing in op stats. No-op for now. by @zzzaries in #2050
  • Add support for Counter event in Trace Viewer v2. (2/2) by Profiler Team in #2041
  • Add support for Counter events in Trace Viewer v2. (1/2) by Profiler Team in #2040
  • Add a benchy benchmark for the ConvertXSpaceToOpStats function by @muditgokhale2 in #2030
  • Integrate SparseCore offloading metadata into grouping logic to accurately group SparseCore execution with TensorCore. by @bmass02 in #1981
  • Project import generated by Copybara by @cliveverghese in #2038
  • Added unit test for the type change of OpSourceInfo::source_file from string_view to std::string which was done to avoid dangling references potentially avoiding use-after-free crashes. by Profiler Team in #2029
  • Add scrollbar in the trace viewer timeline tracks. by Profiler Team in #2032
  • Use XLA's ComputeTotalAllocationBytes in xprof. by @zacmustin in #2009
  • Remove unnecessary log statement. by @subhamsoni-google in #2028
  • Deprecate usage of op.metadata.source_file and source_line according to xla changes. by @zzzaries in #2024
  • Move smart suggestion thresholds used by rules to constants.h. by Profiler Team in #1999
  • Implemented SS data shuffle bound rule that checks the average time percentage spent on collective operators. by Profiler Team in #1990
  • Hide capture button from empty page for fully managed by @muditgokhale2 in #1996
  • Refine the logic for selecting off-screen time range drawing. by Profiler Team in #2007
  • Move selected time range drawing to be under 'tooltip' by Profiler Team in #1987
  • Add re2 dependency to WORKSPACE.bazel and update xprof copy.bara.sky to handle re2 for OSS builds. by Profiler Team in #2005
  • Deprecate usage of op.metadata.source_file and source_line according to xla changes. by @zzzaries in #1992
  • Fix unused and missing include in barrier_cores_rule by Profiler Team in #1991
  • Update openxla/xla dependency in WORKSPACE.bazel. by @subhamsoni-google in #1995
  • Use tsl::Stat to calculate average event time fraction. by Profiler Team in #1988
  • Implemented SS collective bound rule that checks the average time percentage spent on collective operators. by Profiler Team in #1985
  • Add the time measurement feature (1/4) by Profiler Team in #1968

Full Changelog: xprof-v2.21.3...xprof-v2.21.4

XProf v2.21.3

09 Jan 21:29

Choose a tag to compare

What's Changed

Full Changelog: xprof-v2.21.2...xprof-v2.21.3

XProf v2.21.2

09 Jan 21:29

Choose a tag to compare

What's Changed

  • Update xprof version to 2.21.2 by @subhamsoni-google in #1962
  • Add all_hosts information to the session_snapshot and move the device collision logic for trace_viewer to CreateTraceEventsContainer. by @muditgokhale2 in #1974
  • Add all_hosts information to the session_snapshot and move the device collision logic for trace_viewer to CreateTraceEventsContainer. by @muditgokhale2 in #1959
  • Project import generated by Copybara by Profiler Team in #1966
  • Extract SourceInfoFormattedText to a shared utility. by @zzzaries in #1954
  • Project import generated by Copybara by Profiler Team in #1964
  • Project import generated by Copybara by Profiler Team in #1961
  • Project import generated by Copybara by Profiler Team in #1960
  • Use py::isinstance for type checking in ToolOptions conversion. by @Matt-Hurd in #1952
  • Update GPU Kernel Stats Column Name by @Becker-ZH in #1942
  • Switch the stack-trace-snippet element the source-info element in trace viewer and graph viewer. by @zzzaries in #1948
  • Pass session_path to runs, run_tools, hosts and data third party Xprof API requests by Profiler Team in #1934
  • Unregister SparseCoreBoundRule from Smart suggestion rules by Profiler Team in #1951
  • Add dvfs time scale multiplier processing logic for roofline model. by @zzzaries in #1828
  • Add unoptimized hlo processing capability in source mapper. by @zzzaries in #1946
  • Refractor GetCustomCallText function to accept mlir::Context as parameter. by @cliveverghese in #1941
  • Move event_time_fraction_analyzer proto to OSS by Profiler Team in #1937
  • Cache and reuse barrier-cores rule results from MeetsConditions in GenerateSuggestion. by Profiler Team in #1938
  • Change buffer allocation color to white in memory visualization to set the background as white. by @zzzaries in #1935
  • Add worker ID to responses and configure gRPC channels for retries and load balancing. by @subhamsoni-google in #1884
  • Refactor SS rule unit tests with MockToolDataProvider by Profiler Team in #1926
  • Add a graphType parameter to downloadHloProto and related frontend components to support requesting different HLO graphs. by Profiler Team in #1833
  • Re-order tools based on most common usage patterns by @Matt-Hurd in #1921
  • Project import generated by Copybara by Profiler Team in #1924
  • Fix indentation in README.md. by @subhamsoni-google in #1918
  • Add all_hosts information to the session_snapshot and move the device collision logic for trace_viewer to CreateTraceEventsContainer. by @Matt-Hurd in #1922
  • Add documentation for distributed XProf deployment and Kubernetes setup. by @subhamsoni-google in #1910
  • Add all_hosts information to the session_snapshot and move the device collision logic for trace_viewer to CreateTraceEventsContainer. by @muditgokhale2 in #1853
  • Remove the backend button from TraceViewer. by Profiler Team in #1914
  • Remove InputBoundRule and refactor input-bound check into SignalProvider. by Profiler Team in #1917
  • Project import generated by Copybara by Profiler Team in #1916
  • Add multi-threading to conversion of xspaces to inference stats by @muditgokhale2 in #1912
  • Replace deprecated integral type limits with std::numeric_limits. by @majnemer in #1898
  • Project import generated by Copybara by Profiler Team in #1911
  • Project import generated by Copybara by Profiler Team in #1904
  • Bug fixes to enable device loop for step tracking by Profiler Team in #1822

Full Changelog: xprof-v2.21.1...xprof-v2.21.2

XProf v2.21.1

17 Nov 21:11

Choose a tag to compare

What's Changed

  • Update xprof version to 2.21.1. by @Matt-Hurd in #1899
  • Automatically select the single available host when no host is specified. by @Matt-Hurd in #1892
  • Add a new data service interface for getting source info for pallas call, not implemented yet, thus no-op. by @zzzaries in #1878

Full Changelog: xprof-v2.21.0...xprof-v2.21.1

XProf v2.21.0

17 Nov 21:11

Choose a tag to compare

What's Changed

Full Changelog: xprof-v2.20.9...xprof-v2.21.0

XProf v2.20.9

17 Nov 21:09

Choose a tag to compare

What's Changed

  • Update XLA dependency in WORKSPACE.bazel and release new version by @Matt-Hurd in #1873

Full Changelog: xprof-v2.20.8...xprof-v2.20.9

XProf v2.20.8

17 Nov 21:08

Choose a tag to compare

What's Changed

  • Update version to 2.20.8. by @Matt-Hurd in #1865
  • Support lazy fetching for trace_events and functionality to support trace_events searching in streaming_trace_viewer_processor by @muditgokhale2 in #1855
  • Add store management support for session tags. by @zzzaries in #1866
  • Refactored HloProtoMap::contains into ContainsOptimizedModule and ContainsOriginalModule to clearly distinguish between optimized and original HLO module lookups. in #1784
  • Rename "Runs" to "Sessions" in the sidenav in #1858
  • Replaces the use of RemapInstructionIds with HloModule::CreateFromProto without preserving unique id in xprof. in #1856
  • Add MatButtonModule to SideNavModule. by @muditgokhale2 in #1860
  • Extends stack-trace-snippet components to source mapper components. by @zzzaries in #1848
  • This change includes the BSD-style license for plugin/third_party/webcomponentsjs/webcomponents.js within the xprof LICENSE file. by @zzzaries in #1854
  • Add a submit button to the hosts sidenav for trace_viewer by @muditgokhale2 in #1851
  • Refactor original/unoptimized xla::HloModuleProto --> xla::HloProto instances in #1838
  • Add Memory Bound rule in #1852
  • Add multi-threading support to the processing of tensor core planes. by @muditgokhale2 in #1809
  • Add double counter event support trace viewer. in #1842
  • Store trace event args for Cost Model Flop Counter event as part of the main trace events file. in #1845
  • Load highlightjs stylesheets only once in index.html by @zzzaries in #1841
  • Create Utilization Component in xprof frontend. in #1811
  • Created MemoryViewerOption for memory viewer data processing consolidation by @zzzaries in #1770
  • Enable module_name query parameter for Memory Viewer. by @zzzaries in #1823
  • Add Perf Counters tool to Xprof frontend. in #1818
  • Fix input pipeline analysis's device side input wait time chart. by @bmass02 in #1825
  • Filter out pstate events with invalid arguments in trace viewer JSON. in #1832
  • Project import generated by Copybara in #1813

Full Changelog: xprof-v2.20.7...xprof-v2.20.8