15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.
Submitting a GPU job may return before execution finishes. Reusing or freeing its buffers too early can corrupt results. Model allocated, uploaded, submitted, completed, and released states. Require completion before reuse. A barrier has a defined scope; a workgroup barrier is not automatically synchronization between every workgroup or with the host.
Practice and evidence: Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.
state="submitted"
def can_release(state): return state=="completed"
assert not can_release(state)
state="completed"
assert can_release(state)
print("Passed")
Expected result: Passed
Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.