There are multiple types of Control Flow clauses.
These can run in parallel as long as there exists wavefronts that need to execute these clauses and the hardware units that execute these clause instructions are not busy.
Originally posted by: Marius505 The context is Chapter 2.3 "Control Flow and Clauses" from the R600_Instruction_Set_Architecture document.
I would like to understand the phrase "Multiple clauses of a program can execute in parallel if they contain instructions of different types and the clauses are independent of one another" from the point of view of the processors in a SIMD array running ALU clauses. Considering that all 16 units follow the same code it is unclear what exactly is parallelized. I am missing somethig.. please provide an example.
I think it means they run parallel across the SIMDs, not across the Threads Processors in a SIMD. Each SIMD is capable of running different code at one time.
Also, sometimes the docs say "clause" and mean bundle/instruction group and sometimes the docs say "clause" and mean "Control Flow clause", just FYI.