Week 17 — Coding Projects

Core

Implement discrete convolution for signals and images.

  • NumPy: 1D convolution for signals. 2D convolution for grayscale images. Implement box blur and Gaussian-like blur.
  • Metal: Image blur compute kernel with separable filter for performance. · Reading: MBT — image processing compute shaders, texture read/write, separable filters.
  • Vulkan: Compute blur over images with image resource layout transitions. · Reading: Vulkan Book — image resources, compute image processing, image barriers/layouts.
  • CUDA: Image blur kernel with shared-memory tiling for neighborhood access. · Reading: CUDA Book — stencil/convolution kernels, shared-memory tiling for neighborhoods.
  • Stretch: Compare direct vs. separable convolution. Add edge handling modes.
  • Verify: Small hand-built convolution tests match exact expected outputs · Separable version is faster for separable kernels.