Examples
The docs/source/user_guide/examples/ directory in this repository contains self-contained scripts demonstrating common Torch-Spyre use cases.
Available Examples
Script |
Description |
|---|---|
|
Creating and allocating tensors on the Spyre device |
|
Computing softmax on Spyre |
|
Computing GELU activation on Spyre |
|
Computing mean reduction on Spyre |
|
Element-wise multiplication on Spyre |
|
Computing softplus activation on Spyre |
|
Using Spyre compiler hints to control tiling |
|
Measuring one operation’s device time with the PyTorch profiler (see the cost model) |
|
Re-measuring every configuration in the cost-model database |
Distributed Examples
Script |
Description |
|---|---|
|
AllGather collective on Spyre |
|
AllReduce collective on Spyre |
|
Barrier synchronization on Spyre |
|
Broadcast collective on Spyre |
|
Gather collective on Spyre |
|
Reduce collective on Spyre |
|
Multi-rank broadcast walkthrough with pre- and post-broadcast computation |
|
Multi-rank all-gather walkthrough |
|
Multi-rank allreduce via |
|
Multi-rank allreduce with multiple compiled calls sharing one plan |
Scratchpad Planning Examples
These scripts model the LX scratchpad layout solver in isolation and plot the
resulting buffer layouts. They require matplotlib and numpy.
Script |
Description |
|---|---|
|
Plot the layout for a fixed ordering of four buffers, with no annealing |
|
Compare first-fit against simulated-annealing quality on a set of random buffers |
|
Convergence study on an 18-buffer workload with in-place reuse |
|
Paired A/B benchmark of the C++ packer against the Python one, with dispersion statistics (needs neither |
Provenance Audit
A multi-stage audit that traces a model through the compilation pipeline and
records, at each stage, which source-to-kernel provenance fields are carried or
dropped (issue #2574).
The README explains how to run the audit; the example is one generated
artifact from auditing SimpleMLP.
Running an Example
python docs/source/user_guide/examples/tensor_allocate.py
python docs/source/user_guide/examples/softmax.py
Writing Your Own Example
A minimal Torch-Spyre script follows this pattern:
import torch
DEVICE = torch.device("spyre")
# Move data to device
x = torch.rand(512, 1024, dtype=torch.float16).to(DEVICE)
# Run computation (optionally with torch.compile)
output = torch.some_op(x)
# Move result back to CPU for inspection
print(output.cpu())