Top 1,000 Features Creators Resources Blog Explore Download
GitHub icon

Spatial

< >

Spatial, aka Specify Parameterized Accelerators Through Inordinately Abstract Language, is an open source programming language created in 2018 by David Koeplinger.

Source code:
git clone https://github.com/stanford-ppl/spatial
#633on PLDB 6Years Old

Spatial: "Specify Parameterized Accelerators Through Inordinately Abstract Language"


Example from the web:
import spatial.dsl._ @spatial object HelloSpatial extends SpatialApp { def main(args: Array[String]): Void = { // Create ArgIn val x = ArgIn[Int] // Set `x` to the value of the first command line argument setArg(x, args(0).to[Int]) Accel { // Create 16x32 SRAM and a Register val s = SRAM[Int](16,32) val r = Reg[Int] // Loop over each element in SRAM Foreach(16 by 1, 32 by 1){(i,j) => s(i,j) = i + j } // Store element into the register, based on the input arg r := s(x,x) // Print value of register (only shows in Scala simulation) println(r"Value of SRAM at (${x.value},${x.value}) is ${r.value}") } } }

Language features

Feature Supported Token Example
Comments ✓
// A comment
Line Comments ✓ //
// A comment
Semantic Indentation X

View source

- Build the next great programming language · About · Acknowledgements · Extensions · Day 625 · feedback@pldb.io