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
- Stepping Kernels in cuda-gdb
- Finding Leaks with memcheck
- Hunting Races with racecheck
- Catching Sync Errors with synccheck