0Pricing
CUDA Academy · Lesson

Catching Sync Errors with synccheck

Divergent __syncthreads and hazards.

The Barrier Contract

A __syncthreads barrier only works if every thread in the block reaches it. Skip it for some threads and behavior turns undefined. ⚠️

Divergent Barriers

Calling a barrier inside a branch some threads skip is a divergent sync, the exact hazard the synccheck tool is built to catch.

All lessons in this course

  1. Stepping Kernels in cuda-gdb
  2. Finding Leaks with memcheck
  3. Hunting Races with racecheck
  4. Catching Sync Errors with synccheck
← Back to CUDA Academy