发明名称 Allocation and control unit for controlling parallel execution of threads on auxiliary processing units
摘要 An allocation and control unit for allocating execution threads for a task to a plurality of auxiliary processing units and for controlling the parallel execution of said execution threads by said auxiliary processing units, the task being executed in a sequential manner by a main processing unit. The allocation and control unit includes means for managing auxiliary logical processing units, means for managing auxiliary physical processing units each corresponding to an auxiliary processing unit, and means for managing the auxiliary processing units. The means for managing the auxiliary processing units include means for allocating an auxiliary logical processing unit to an execution thread to be executed, and means for managing the correspondence between the auxiliary logical processing units and the auxiliary physical processing units. The auxiliary processing units execute in parallel the execution threads for the task by way of the auxiliary logical processing units, which are allocated as late as possible and freed as early as possible.
申请公布号 US8973009(B2) 申请公布日期 2015.03.03
申请号 US201013202945 申请日期 2010.02.22
申请人 Commissariat a l'Energie Atomique et aux Energies Alternatives 发明人 Louise Stéphane;David Vincent;David Raphael
分类号 G06F9/46;G06F9/50;G06F9/38;G06F9/52;G06F9/30 主分类号 G06F9/46
代理机构 Baker & Hostetler LLP 代理人 Baker & Hostetler LLP
主权项 1. A processor comprising a main processing unit, a plurality of auxiliary processing units, and an allocation and control unit for allocating execution threads for a task to the plurality of auxiliary processing units, wherein the task is associated with an executable code having a predetermined data dependency graph, said executable code being previously separated, at compilation time, into processing code to be executed on the auxiliary processing units and control code to be executed by the main processing unit, said control code comprising instructions for execution on the auxiliary processing units based on the data dependency graph, the control code of the task being executed in a sequential manner by the main processing unit, wherein each auxiliary processing units corresponds to one of a plurality of physical auxiliary processing units, and each physical auxiliary processing units being associated with one or more of logical auxiliary processing units, wherein the allocation and control unit controls parallel execution of said execution threads by said physical auxiliary processing units via the logical auxiliary processing units, the allocation and control unit comprising: an auxiliary processing units manager for managing the plurality of auxiliary processing units, said auxiliary processing units manager being configured to allocate one or more of the logical auxiliary processing units to an execution context identifying an execution thread to be executed from said instructions and to associate each of the plurality of physical auxiliary processing units with said one or more of the logical auxiliary processing units in response to a request for execution of said execution thread on said one or more of the logical auxiliary processing units such that the associated physical auxiliary processing units executes said execution thread for the task, said auxiliary processing units manager being further configured to free said one or more of the logical auxiliary processing units for said execution context as early as possible in response a freeing request and completion of the execution of the execution thread by said associated physical auxiliary processing units based on the instructions in the control code, and allocate said one or more of the logical auxiliary processing units as late as possible by freeing said one or more of the logical auxiliary processing units in response to a synchronization request and completion of the execution of the execution thread by all of the logical auxiliary processing units specified in said execution context.
地址 Paris FR