Projects

Embarrassingly Sequential FSA Computations on RISC-V SoftGPU

Soft-GPU Programming
OpenCL
RISC-V
Parallel Computing

Designed and implemented a lightweight custom kernel in OpenCL to accelerate automata processing on the Vortex soft-GPU, achieving up to 1.7 IPC performance improvement.

Computer architecture and GPU programming visualization

Project Overview

This project focused on accelerating Finite State Automata (FSA) computations using the Vortex RISC-V soft-GPU. Despite FSAs being embarrassingly sequential by nature, we explored parallelization opportunities at the hardware level.

Technical Implementation

I designed and implemented lightweight custom kernels in OpenCL specifically optimized for the Vortex soft-GPU architecture. The implementation required deep understanding of:

  • RISC-V instruction set architecture extensions
  • GPU memory hierarchies and optimization techniques
  • OpenCL programming model and kernel optimization
  • Pattern-matching algorithms and their parallelization challenges

Results

The optimized implementation achieved up to 1.7 Instructions Per Cycle (IPC), significantly improving pattern-matching performance compared to naive sequential implementations.

Tools & Technologies

  • Languages: C++, OpenCL
  • Hardware: Vortex RISC-V Soft-GPU
  • Tools: Vivado, Make
  • Concepts: GPU programming, hardware optimization, parallel computing

License

You can find the Vortex architecture and images on GeorgiaTech Vortex GitHub Repository.