> ## Documentation Index
> Fetch the complete documentation index at: https://sdk.cerebras.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a GEMV Kernel

> Build CSL programs step by step through a series of GEMV tutorials that progressively introduce language features, multiple PEs, and fabric communication.

Each successive tutorial introduces additional language features, using a general matrix-vector product (GEMV) as its core computation.

<Card title="Basic Syntax" icon="0" horizontal href="/csl/tutorials/gemv-00-basic-syntax">
  Learn preliminaries of CSL syntax.
</Card>

<Card title="A Complete Program" icon="1" horizontal href="/csl/tutorials/gemv-01-complete-program">
  Write a complete CSL program.
</Card>

<Card title="Memory DSDs" icon="2" horizontal href="/csl/tutorials/gemv-02-memory-dsds">
  Use memory data structure descriptors (DSDs) for efficient operations on tensors.
</Card>

<Card title="Memcpy" icon="3" horizontal href="/csl/tutorials/gemv-03-memcpy">
  Copy tensors from device to host, and vice versa.
</Card>

<Card title="Parameters" icon="4" horizontal href="/csl/tutorials/gemv-04-params">
  Use parameters for compile-time specification of your program.
</Card>

<Card title="Multiple PEs" icon="5" horizontal href="/csl/tutorials/gemv-05-multiple-pes">
  Run your program on multiple PEs.
</Card>

<Card title="Routes and Fabric DSDs" icon="6" horizontal href="/csl/tutorials/gemv-06-routes-1">
  Use routes and colors to distribute a single GEMV across multiple PEs.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.