发明名称 Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction
摘要 Embodiments of the present invention provide systems, methods, and computer program products for improving divergent conditional branches in code being executed by a processor. For example, in an embodiment, a method comprises detecting a conditional statement of a program being simultaneously executed by a plurality of threads, determining which threads evaluate a condition of the conditional statement as true and which threads evaluate the condition as false, pushing an identifier associated with the larger set of the threads onto a stack, executing code associated with a smaller set of the threads, and executing code associated with the larger set of the threads.
申请公布号 US8959319(B2) 申请公布日期 2015.02.17
申请号 US201113310221 申请日期 2011.12.02
申请人 Advanced Micro Devices, Inc. 发明人 Leather Mark;Rubin Norman;Emberling Brian D.;Mantor Michael
分类号 G06F15/80;G06F9/30;G06F9/38 主分类号 G06F15/80
代理机构 Volpe and Koenig, P.C. 代理人 Volpe and Koenig, P.C.
主权项 1. A method comprising: responsive to a determination that a first set of threads evaluate a conditional statement in program code as true and, concurrently, that a second set of threads evaluate the conditional statement as false: executing first code associated with the conditional statement in a smaller set of threads, wherein the smaller set of threads is the smaller of the first set of threads and the second set of threads, andexecuting second code associated with the conditional statement in a larger set of threads upon the smaller set of threads finishing execution of the first code, wherein the larger set of threads is the larger of the first set of threads and the second set of threads.
地址 Sunnyvale CA US