High level software execution mask override
AssigneeAdvanced Micro Devices, Inc.
InventorsTimothy G. Rogers, Bradford M. Beckmann, James M. O'Connor
Life of this patent
Estimating the term…
Abstract
Methods, and media, and computer systems are provided. The method includes, the media includes control logic for, and the computer system includes a processor with control logic for overriding an execution mask of SIMD hardware to enable at least one of a plurality of lanes of the SIMD hardware. Overriding the execution mask is responsive to a data parallel computation and a diverged control flow of a workgroup.
Claims28
A method for operating a computing system, the method comprising:
- determining that control flow for a work group in program code is divergent, the work group comprising multiple threads of the program code, each thread executing on a corresponding one of a plurality of lanes in single instruction multiple data (SIMD) hardware;
- and
- inserting, into the program code, overriding program code configured to override an execution mask of the SIMD hardware to enable at least one of the plurality of lanes to process a corresponding thread.
A method for operating a computing system, the method comprising:
- receiving program code that includes overriding program code, the overriding program code inserted into the program code based on determining that control flow for a work group in the program code is divergent, the work group comprising multiple threads of the program code, each thread executing on a corresponding one of a plurality of lanes in single instruction multiple data (SIMD) hardware;
- executing the overriding program code to determine a number of lanes of the plurality of lanes of the SIMD hardware that are to be overridden in an execution mask;
- based on the determined number of lanes, overriding the execution mask to enable at least one of the plurality of lanes of the SIMD hardware;
- and
- instructing the SIMD hardware to resume diverged execution of the program code.
A non-transitory computer readable medium storing control logic for operating a computing system, the control logic including control logic instructions to:
- determine that control flow for a work group in program code is divergent, the work group comprising multiple threads of the program code, each thread executing on a corresponding one of a plurality of lanes in single instruction multiple data (SIMD) hardware;
- and
- insert, into the program code, overriding program code configured to override an execution mask of the SIMD hardware to enable at least one of the plurality of lanes to process a corresponding thread.
A computer system comprising a processor including control logic configured to:
- determine that control flow for a work group in program code is divergent, the work group comprising multiple threads of the program code, each thread executing on a corresponding one of a plurality of lanes in single instruction multiple data (SIMD) hardware;
- and
- insert, into the program code, overriding program code configured to override an execution mask of the SIMD hardware to enable at least one of the plurality of lanes to process a corresponding thread.
Dependencies are inferred from the claim text.