Skip to content

Version 1.6.8

Latest
Compare
Choose a tag to compare
@phschaad phschaad released this 03 Nov 13:06
24367a2

New Features

Vertical SDFG Layout

Large SDFGs with complex state machines are hard to navigate and understand. A new vertical layout now helps with this. The new layout aims to vertically lay out an SDFG's state machine similar to the vertical structure of source code, which we're familiar with reading. Doing so more naturally exposes program order and control flow constructs such as branching or loops. The layout can be turned on or off through the SDFG editor settings.

image

Improved SDFG Navigation

Together with the new vertical layout, SDFGs can now be (optionally) navigated more akin to how PDF documents are navigated, with a scroll navigation rather than the traditional pan-and-zoom navigation. With this option turned on, SDFGs can be scrolled vertically with the scroll wheel, and zooming is performed via Ctrl. + scroll wheel. This allows for much easier navigation of tall, vertical SDFGs. The option can be toggled in the SDFG editor settings.

Additionally, long edges have traditionally been hard to navigate, especially in the legacy layout. To address this, we have added an option to navigate directly to an edge's start/source or destination/sink position with the click of a button.

image

Step-Wise SDFG Collapse / Expand

Hierarchical elements in SDFGs, such as Maps, States, and Nested SDFGs can be expanded and collapsed to show / hide details as needed. However, the default behavior of the 'collapse all' or 'expand all' buttons in the editor has now changed to only expand / collapse one level at a time. Each subsequent click collapses / expands the next level. This offers much more flexibility in navigating the SDFG and saves a user from having to manually collapse / expand dozens of elements. A shift + click on the respective buttons still collapses / expands all elements.

Editing Compressed SDFGs

Compressed SDFG files (.sdfgz) can now be edited, analyzed, and optimized similar to regular SDFG files. Their reduced filesize and binary file representation immensly speeds up the optimization and editing workflow, making them the new filetype of choice for working with larger programs and SDFGs. DaCe supports saving and loading of these files out of the box, or they can be obtained / read through the use of gzip.

Work / Depth Analysis (@hodelcl)

A new work / depth analysis has been made available together with the latest version of DaCe (v0.15). The analysis provides overlays that visualize the work, depth, and average parallelism, as well as the operational intensity for each SDFG element individually.

SDFG Visualization Improvements

Basic Tasklet Code Highlighting

Tasklet code is now highlighted to clearly show the use of symbols inside tasklets in red. The tasklet code now also shows where other variable names are being used, by highlighting the code variables corresponding to input and output connectors when hovering over said connectors.

276257247-9343e4d4-26a7-44fe-b215-23cbece96944

Dependency Edges

Dependency edges (also known as empty memlets) are now clearly distinguishable from the rest of the data movement edges in an SDFG by having them represented as simple lines rather than arrows. This more clearly indicates that there is no data movement happening across them.

State Machine

The state machine often contains complex control flow which can only be understood by examining what interstate edges carry which conditions or assignments across them. This information has only been accessible by hovering over edges or clicking them to view them in the details panel. There is now a setting that can be turned on in the viewer settings (see 'Improved SDFG Editor Settings UI' below), with which interstate edges can be toggled to always show their labels:

279724878-b695711a-43f0-4fe1-a74f-ca4e739473f3

Preview Features

  • The SDFG editor is now capable of showing experimental, hierarchical Control Flow Graph-SDFGs that are currently being experimented with in DaCe. This feature is a preview and is likely to change.
  • Support for external nested SDFGs has been added as an experimental preview feature to both DaCe and the viewer.

Engineering

Performance Enhancements

A slew of re-engineering changes bring a roughly 2x speedup in most editing and SDFG navigation workflows

Improvements and Bugfixes

Improved SDFG Editor Settings UI

SDFG editor settings have been extended to allow for more customizeability. They are now also persisted across sessions in the VSCode user setttings.

image

DaCe Backend Panel

A new status panel allows for better control and management of the DaCe optimization backend. The panel allows re-starting or stopping the backend, reading and changing the port the backend runs on, or connecting to a different backend that is launched externally or remotely.

image

Other Improvements and Fixes

  • Various smaller UI improvements and bugfixes related to the info tray and the minimap
  • Improve display for unknown, unregistered map schedules
  • Allow symbols to be modified similar to data containers and list them separately in the info tray
  • Update data container attributes when changing data container types (from scalar to array etc.)
  • Provide a troubleshooting link if the DaCe backend does not start
  • Always first try to query the DaCe backend for up-to-date metadata when editing an SDFG before loading static dictionaries (web and built-in)
  • Connects the DaCe backend through IPv6 for better future proofing (@philip-paul-mueller)

Get the latest version in the VSCode marketplace!