Skip to content

urays/lasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

 _        _    ____  __  __
| |      / \  / ___||  \/  |
| |     / _ \ \___ \| |\/| |
| |___ / ___ \ ___) | |  | |
|_____/_/   \_\____/|_|  |_|

🥔 VLIW ASSEMBLY SCHEDULING MACHINE

Paper LASM LAN Platform License

Quick Start · Project Structure · LAN Specification · Potato Guide · Citation

LASM is an extensible symbolic-assembly scheduling framework for complete VLIW programs. Programs are expressed in VLIW Assembly Notation (LAN) as raw ISA instructions with symbolic operands, while physical-register bindings, functional-unit assignments, and bundle formation may remain unspecified. LASM lowers this representation to cycle-assigned instruction bundles with fully resolved resource bindings. Multiple strategies generate candidate schedules for identical code regions, after which two-tier feasibility filtering selects the highest-ranked implementable schedule.

Built on the Stratified Assembly Structure (SAS), LASM maintains mixed scheduling states across complete programs and provides standardized extension interfaces and unified scheduling primitives for strategy integration. The framework incorporates TDLS, IMS, and EMS, and introduces LAEMS and FBBF for cross-boundary scheduling. Across 13 benchmarks on two production VLIW-SIMD processors, LASM achieves 103.6% and 101.6% of expert assembly performance while reducing manually written assembly by 72.6%. An end-to-end YOLOv5 deployment reaches 95.9% of expert performance and delivers a 3× productivity improvement.

Quick Start

The repository includes a prebuilt LASM executable for the Potato target on Linux x86-64. No compilation is required.

git clone https://github.com/urays/lasm.git
cd lasm
chmod +x potato/tools/lasm

./potato/tools/lasm potato/lan4test/gemm_scalar.lan \
  --layout potato/tools/potato.json \
  --dce --licm \
  --fbbfl --tdlsl \
  --output /tmp/lasm-gemm_scalar.s

The command enables FBBF and TDLS for linear regions. LASM evaluates the applicable schedules and writes the selected Potato assembly to /tmp/lasm-gemm_scalar.s.

sed -n '1,40p' /tmp/lasm-gemm_scalar.s
./potato/tools/lasm --help

Potato

Potato is a fictional VLIW-SIMD reference architecture that illustrates target integration and code generation in LASM. The bundled executable is configured for Potato; potato.json supplies its memory map and value-passing convention through --layout.

Project Structure

.
├── docs/
│   ├── article.pdf                # Full paper
│   └── LAN-spec-v2.0.md           # LAN syntax and semantics
├── potato/
│   ├── README.md                  # Potato reference guide
│   ├── lan4test/                  # Example LAN programs
│   └── tools/
│       ├── lasm                   # Prebuilt Potato executable for Linux x86-64
│       └── potato.json            # Memory map and value-passing convention
├── LICENSE
└── README.md

Documentation

Citation

If you use LASM in your research, please cite the accompanying article:

@article{zhong2026lasm,
  author    = {Hongli Zhong and Zhong Liu and Sheng Ma},
  title     = {{LASM}: Extensible Competitive Scheduling Framework for {VLIW} Assembly Optimization},
  journal   = {ACM Trans. Des. Autom. Electron. Syst.},
  year      = {2026},
  address   = {New York, NY, USA},
  issn      = {1084-4309},
  publisher = {Association for Computing Machinery},
  doi       = {10.1145/3810954},
  url       = {https://doi.org/10.1145/3810954}
}

License

The contents of this repository are distributed under the MIT License. Questions and feedback are welcome via GitHub Issues.

About

VLIW ASSEMBLY SCHEDULING MACHINE

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors