Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Schedule Viewer

The Schedule Viewer supports schedule compilation and makespan comparison between fixed candidates. The viewer shows the static execution plan; it does not validate values or throughput.

The Schedule Viewer loads a schedule JSON file generated by cargo furiosa-opt and displays it as an interactive execution timeline. Quick Start introduces the viewer as part of the development tools; this section explains how to install it and inspect a schedule. Use it to inspect which operations run in parallel, which context or resource each operation occupies, and which operations block pipeline progress.

Review a Schedule

Use schedule makespan, the final scheduled cycle, to compare fixed kernel workloads. Keep release, shapes, data types, and mapping unchanged between candidates. Use the timeline to explain differences in overlap, dependencies, and resource occupancy.

Getting Started

Install and Run the Viewer

Install furiosa-schedule-viewer binary from crates.io:

cargo install furiosa-schedule-viewer

Run the viewer to start the local web UI:

furiosa-schedule-viewer

By default the server binds to 127.0.0.1:9254 and opens the page in your default browser. Use --host and --port to change the address that the server listens on:

furiosa-schedule-viewer --host 127.0.0.1 --port 9254

Generate a Schedule JSON File

--dump-schedule writes the compiled schedule to a JSON file. It is available when compiling a single kernel with cargo furiosa-opt compile:

cargo furiosa-opt compile <device-function> \
  --dump-schedule <path-to-json-file>

Provide the function name as the positional filter. If the function name is ambiguous, use the full Rust path, such as kernel::gemm_kernel::gemm_kernel. The command still emits the normal kernel artifacts. The JSON file is the input for the Schedule Viewer.

Usage

Click the drop zone or drag a schedule JSON file onto the page to visualize it.

Inspect Tensors and Operators

Click any node to inspect it. The left sidebar shows details such as its name, lifetime, context, and connected nodes.

When you hover over or select a node, related nodes are highlighted. For example, selecting an operator highlights its input and output tensors. Selecting a tensor highlights operators connected to that tensor.

Because tensors and operators are based on actual hardware instructions, they may differ from the tensors and operators defined in vISA. Whenever possible, the Schedule Viewer shows the vISA tensor name and shape, and the operator description.

Zoom In on the Schedule

You can zoom in on the schedule to inspect a specific region.

To adjust only the cycle range, drag across the timeline at the top or use the Cycle Range inputs at the top right. To adjust the memory-address range, click Enable Brush, then drag across the schedule view. The brush sets both the cycle range and the memory-address range.

To restore the full schedule view, click the timeline background or click Reset at the top right.