Week 7 — Coding Projects

Core

Compute covariance matrices and study floating-point stability.

  • NumPy: Generate correlated data. Compute covariance manually. Compare one-pass vs. two-pass variance formulas. Show catastrophic cancellation example.
  • Metal: Mean reduction kernel then covariance accumulation. Compare float32 and float16 where available. · Reading: MBT — reductions, parallel accumulation, synchronization concepts in compute chapters.
  • Vulkan: Compute shader for mean and covariance with workgroup shared memory. · Reading: Vulkan Book — workgroup shared memory, barriers, reduction patterns.
  • CUDA: Parallel reduction for means then a covariance kernel. · Reading: CUDA Book — reductions, numeric stability, accumulation strategies.
  • Stretch: Add Kahan summation on CPU reference. Compare float16/float32 effects.
  • Verify: Covariance is symmetric within tolerance · Two-pass formulas are more stable on adversarial data · GPU and CPU results are close.