Back to all projects
GPU Compute & Kernel EngineeringActive Repository

CUDA Parallel Video Processor

Every frame, a parallel problem.

High-throughput CUDA-accelerated video filtering pipeline executing custom 2D convolution and spatial kernels.

ArchitectureNVIDIA CUDA
OptimizationShared Memory Tiling
ExecutionAsynchronous Streams

The Problem Space

Sequential CPU-bound video processing fails to sustain real-time frame rates for high-resolution video streams when applying multi-pass spatial filters and edge-preserving smoothing across consecutive frames.

The Architecture & System

Engineered custom CUDA device kernels utilizing 2D shared-memory tiling, coalesced memory access patterns, and asynchronous host-to-device memory transfers via CUDA streams to process video frames in parallel.

Written in modern C++17 and CUDA with CMake build automation. Incorporates pinned host memory buffers, 2D thread block hierarchies, and Dockerized build containers for reproducible compilation against NVIDIA GPU architectures.

Key Technical Decisions

  • Implemented 2D shared memory halo exchange to eliminate redundant global memory reads in convolution operations.
  • Employed multiple CUDA streams to overlap PCIe memory transfers with active GPU kernel computation.
  • Designed modular kernel dispatchers allowing dynamic chaining of Gaussian, Sobel, and custom spatial passes.