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.