1. A method for synchronizing two or more engines in a graphics processing unit (GPU), the method comprising: issuing a command by a central processing unit (CPU) to an engine of the two or more engines within the GPU, wherein the two or more engines are parallel processing structures configured to carry out dedicated functions; writing an event value by the CPU into at least one write element of an event memory associated with the engine that has an event to be traced, the event value corresponding to a command execution status; modifying by the engine a content of the event memory containing the event value upon completing execution of the command by the engine; and reading the modified content of the event memory by the CPU to acquire the command execution status, wherein the CPU coordinates command issuing to all the engines based on the command execution status of each engine.