In accordance with various aspects of the present disclosure, more than one address may be associated with a checkpoint register. Setting, or writing to, a different address associated with a checkpoint register may produce a different result. For example, writing a value 3 at address 10 of a particular checkpoint register may set the register to value 3. Writing a value 7 to the next address, e.g. address 20, of the checkpoint register increment the current register value by a value of 7. One of ordinary skill in the art will appreciate that the above addresses and values are merely exemplary and that other addresses and values may be used without departing from the scope of the present disclosure.
In some examples, the checkpoint registers may be global registers. The global checkpoint registers may be accessible to every execution engine. When an execution engine sets a value in a global checkpoint register, the global checkpoint register broadcasts the value (e.g., the state of the execution engine that set the value) to all of the execution engines. In a global checkpoint register implementation, any execution engine may set a value or wait on a condition associated with a value in any checkpoint register.