Skip to content

Tutorials

These hands-on tutorials walk through running the three PLENA evaluation backends end-to-end. They assume you have already followed Getting Started and can enter the relevant dev shell (Nix + direnv, or the provided Docker image).

# Tutorial Repository What you will run
1 Running the Transactional Emulator PLENA_Simulator Compile a Linear layer to PLENA ISA and execute it on the Rust cycle-approximate emulator.
2 Running the Analytic Model PLENA_Simulator Estimate TTFT / TPS for a real LLM (Llama-3.1-8B) from a closed-form cost model.
3 Running an RTL Simulation PLENA_RTL Drive the SystemVerilog design with cocotb + Verilator on a Linear workload and verify against a golden reference.

The three tutorials are independent — pick whichever evaluation layer matches your task. Tutorial 1 → Tutorial 3 also forms a useful progression from fastest / least detailed (analytic) to slowest / most detailed (RTL):

       Analytic Model            Transactional Emulator              RTL Simulation
       (closed-form)              (cycle-approximate)                (cycle-accurate)
   ┌───────────────────┐       ┌─────────────────────────┐       ┌────────────────────┐
   │ seconds           │  →    │ seconds–minutes         │  →    │ minutes–hours      │
   │ no memory model   │       │ Ramulator / DRAMSys     │       │ full RTL + cocotb  │
   │ DSE-friendly      │       │ trade-off studies       │       │ pre-silicon sign-off│
   └───────────────────┘       └─────────────────────────┘       └────────────────────┘

See the Toolchain Overview for how these three fit together inside the broader PLENA compile → evaluate flow.