These notes might be out of date. Refer to the up to date documentation.
Read some notes about aspects of Seashell’s design:
An introduction to Seashell. We discuss some basic Seashell programs that showcase the capabilities of the language’s type system.
Index types. This is the Seashell type system’s main mechanism for enforcing safe access to banked memories from unrolled loops (i.e., parallelized hardware).
Banking in Hardware. Banking strategies used in hardware and their mathematical implications.
Logical memory access. Seashell supports logical access to multidimensional arrays implemented as banked hardware memories. We discuss the relationship between this logical view and the physical layout in banks.
Views This is a proposal to add two new constructs to make various parallel array iterations safe.
Combine blocks. This is Seashell’s construct for allowing reductions and other imperfectly-parallel patterns in parallel for
loops.
Spatial Notes Some notes about spatial.
Tutorial on hardware programming with Seashell:
Older discussions about Seashell design: