发明名称 Compiler-controlled region scheduling for SIMD execution of threads
摘要 A compiler-controlled technique for scheduling threads to execute different regions of a program. A compiler analyzes program code to determine a control flow graph for the program code. The control flow graph contains regions and directed edges between regions. The regions have associated execution priorities. The directed edges indicate the direction of program control flow. Each region has a thread frontier which contains one or more regions. The compiler inserts one or more update predicate mask variable instructions at the end of a region. The compiler also inserts one or more conditional branch instructions at the end of the region. The conditional branch instructions are arranged in order of execution priority of the regions in the thread frontier of the region, to enforce execution priority of the regions at runtime.
申请公布号 US9424038(B2) 申请公布日期 2016.08.23
申请号 US201213710279 申请日期 2012.12.10
申请人 NVIDIA Corporation 发明人 Diamos Gregory;Mehrara Mojtaba
分类号 G06F9/45;G06F9/30 主分类号 G06F9/45
代理机构 Artegis Law Group, LLP 代理人 Artegis Law Group, LLP
主权项 1. A method for scheduling threads to execute different regions of a program, the method comprising: analyzing a control flow graph that is based on program code and includes a plurality of regions, wherein each region represents a different portion of the program code, is assigned an execution priority, and is associated with a thread frontier that includes one or more thread frontier regions, each thread frontier region being a region in the control flow graph; inserting one or more update predicate mask variable instructions at the end of a first region included in the plurality of regions based on the control flow graph and the program code; and inserting one or more conditional branch instructions at the end of the first region that are arranged to reflect execution priority of the one or more thread frontier regions in the thread frontier of the first region.
地址 Santa Clara CA US