All projects

High Performance Processors and Systems · Politecnico di Milano · 2025

FSA Computations on a RISC-V Soft-GPU

Lightweight OpenCL kernels that accelerate finite-state-automata processing on the Vortex RISC-V soft-GPU, reaching up to 1.7 IPC.

  • OpenCL
  • RISC-V
  • Soft-GPU
  • C++
  • Parallel computing
Block diagram of the Vortex GPU microarchitecture.

Finite-state automata are “embarrassingly sequential”: each step depends on the previous state, which makes them a poor fit for GPUs on paper. This project looked for the parallelism that is still there, accelerating automata processing on Vortex, an open-source RISC-V GPU that runs on FPGAs.

Implementation

I designed and implemented lightweight custom kernels in OpenCL, tuned for the Vortex architecture. That required a close look at:

  • RISC-V instruction set extensions used by Vortex
  • the GPU memory hierarchy and how the kernels access it
  • the OpenCL programming model and kernel optimization
  • pattern-matching algorithms and why they are hard to parallelize

Results

The optimized kernels reach up to 1.7 instructions per cycle (IPC), a clear improvement in pattern-matching throughput over naive sequential implementations.

Stack

C++ · OpenCL · Vortex RISC-V soft-GPU · Vivado · Make

Vortex architecture diagram from the Vortex repository (Georgia Tech).