Compute work distribution reference counters
    1.
    发明授权
    Compute work distribution reference counters 有权
    计算工作分配参考计数器

    公开(公告)号:US09507638B2

    公开(公告)日:2016-11-29

    申请号:US13291369

    申请日:2011-11-08

    IPC分类号: G06F9/455 G06F9/50

    CPC分类号: G06F9/5022

    摘要: One embodiment of the present invention sets forth a technique for managing the allocation and release of resources during multi-threaded program execution. Programmable reference counters are initialized to values that limit the amount of resources for allocation to tasks that share the same reference counter. Resource parameters are specified for each task to define the amount of resources allocated for consumption by each array of execution threads that is launched to execute the task. The resource parameters also specify the behavior of the array for acquiring and releasing resources. Finally, during execution of each thread in the array, an exit instruction may be configured to override the release of the resources that were allocated to the array. The resources may then be retained for use by a child task that is generated during execution of a thread.

    摘要翻译: 本发明的一个实施例提出了一种用于在多线程程序执行期间管理资源的分配和释放的技术。 可编程参考计数器被初始化为限制用于分配给共享相同引用计数器的任务的资源量的值。 为每个任务指定资源参数,以定义为执行任务启动的每个执行线程数组分配的消耗资源量。 资源参数还指定数组用于获取和释放资源的行为。 最后,在执行阵列中的每个线程时,可以将退出指令配置为覆盖分配给阵列的资源的释放。 然后可以保留资源以供执行线程期间生成的子任务使用。

    COMPUTE WORK DISTRIBUTION REFERENCE COUNTERS
    2.
    发明申请
    COMPUTE WORK DISTRIBUTION REFERENCE COUNTERS 有权
    计算机工作分配参考计数器

    公开(公告)号:US20130117758A1

    公开(公告)日:2013-05-09

    申请号:US13291369

    申请日:2011-11-08

    IPC分类号: G06F9/46

    CPC分类号: G06F9/5022

    摘要: One embodiment of the present invention sets forth a technique for managing the allocation and release of resources during multi-threaded program execution. Programmable reference counters are initialized to values that limit the amount of resources for allocation to tasks that share the same reference counter. Resource parameters are specified for each task to define the amount of resources allocated for consumption by each array of execution threads that is launched to execute the task. The resource parameters also specify the behavior of the array for acquiring and releasing resources. Finally, during execution of each thread in the array, an exit instruction may be configured to override the release of the resources that were allocated to the array. The resources may then be retained for use by a child task that is generated during execution of a thread.

    摘要翻译: 本发明的一个实施例提出了一种用于在多线程程序执行期间管理资源的分配和释放的技术。 可编程参考计数器被初始化为限制用于分配给共享相同引用计数器的任务的资源量的值。 为每个任务指定资源参数,以定义为执行任务启动的每个执行线程数组分配给消耗的资源量。 资源参数还指定数组用于获取和释放资源的行为。 最后,在执行阵列中的每个线程时,可以将退出指令配置为覆盖分配给阵列的资源的释放。 然后可以保留资源以供执行线程期间生成的子任务使用。

    SIGNALING, ORDERING, AND EXECUTION OF DYNAMICALLY GENERATED TASKS IN A PROCESSING SYSTEM
    4.
    发明申请
    SIGNALING, ORDERING, AND EXECUTION OF DYNAMICALLY GENERATED TASKS IN A PROCESSING SYSTEM 有权
    在处理系统中的动态生成任务的信号,订购和执行

    公开(公告)号:US20130160021A1

    公开(公告)日:2013-06-20

    申请号:US13329169

    申请日:2011-12-16

    IPC分类号: G06F9/46

    CPC分类号: G06F9/4843

    摘要: One embodiment of the present invention sets forth a technique for enabling the insertion of generated tasks into a scheduling pipeline of a multiple processor system allows a compute task that is being executed to dynamically generate a dynamic task and notify a scheduling unit of the multiple processor system without intervention by a CPU. A reflected notification signal is generated in response to a write request when data for the dynamic task is written to a queue. Additional reflected notification signals are generated for other events that occur during execution of a compute task, e.g., to invalidate cache entries storing data for the compute task and to enable scheduling of another compute task.

    摘要翻译: 本发明的一个实施例提出了一种用于使所生成的任务能够插入到多处理器系统的调度流水线中的技术,允许正在执行的计算任务动态生成动态任务并通知多处理器系统的调度单元 没有CPU的干预。 当将动态任务的数据写入队列时,响应于写入请求产生反映的通知信号。 为在执行计算任务期间发生的其他事件生成附加的反映的通知信号,例如,使存储用于计算任务的数据的高速缓存条目无效并启用其他计算任务的调度。

    AUTOMATIC DEPENDENT TASK LAUNCH
    5.
    发明申请
    AUTOMATIC DEPENDENT TASK LAUNCH 审中-公开
    自动相关任务启动

    公开(公告)号:US20130198760A1

    公开(公告)日:2013-08-01

    申请号:US13360581

    申请日:2012-01-27

    IPC分类号: G06F9/46

    摘要: One embodiment of the present invention sets forth a technique for automatic launching of a dependent task when execution of a first task completes. Automatically launching the dependent task reduces the latency incurred during the transition from the first task to the dependent task. Information associated with the dependent task is encoded as part of the metadata for the first task. When execution of the first task completes a task scheduling unit is notified and the dependent task is launched without requiring any release or acquisition of a semaphore. The information associated with the dependent task includes an enable flag and a pointer to the dependent task. Once the dependent task is launched, the first task is marked as complete so that memory storing the metadata for the first task may be reused to store metadata for a new task.

    摘要翻译: 本发明的一个实施例提出了当执行第一任务完成时自动启动依赖任务的技术。 自动启动从属任务可以减少在从第一个任务到从属任务的转换过程中产生的延迟。 与依赖任务相关联的信息被编码为第一任务的元数据的一部分。 当执行第一任务完成任务调度单元被通知并且从属任务被启动而不需要任何释放或获取信号量时。 与从属任务相关联的信息包括使能标志和指向依赖任务的指针。 一旦启动依赖任务,第一个任务被标记为完整的,以便存储第一个任务的元数据的内存可以被重新用于存储新任务的元数据。

    Scheduling and execution of compute tasks
    6.
    发明授权
    Scheduling and execution of compute tasks 有权
    计划任务的计划和执行

    公开(公告)号:US09069609B2

    公开(公告)日:2015-06-30

    申请号:US13353150

    申请日:2012-01-18

    IPC分类号: G06F9/46 G06F9/48 G06F9/50

    摘要: One embodiment of the present invention sets forth a technique for assigning a compute task to a first processor included in a plurality of processors. The technique involves analyzing each compute task in a plurality of compute tasks to identify one or more compute tasks that are eligible for assignment to the first processor, where each compute task is listed in a first table and is associated with a priority value and an allocation order that indicates relative time at which the compute task was added to the first table. The technique further involves selecting a first task compute from the identified one or more compute tasks based on at least one of the priority value and the allocation order, and assigning the first compute task to the first processor for execution.

    摘要翻译: 本发明的一个实施例提出了一种用于将计算任务分配给包括在多个处理器中的第一处理器的技术。 该技术涉及分析多个计算任务中的每个计算任务以识别符合分配给第一处理器的一个或多个计算任务,其中每个计算任务在第一表中列出并且与优先级值和分配 指示将计算任务添加到第一个表的相对时间的顺序。 该技术还包括基于优先级值和分配顺序中的至少一个从所识别的一个或多个计算任务中选择第一任务计算,以及将第一计算任务分配给第一处理器以供执行。

    SCHEDULING AND EXECUTION OF COMPUTE TASKS
    8.
    发明申请
    SCHEDULING AND EXECUTION OF COMPUTE TASKS 有权
    计划任务的安排和执行

    公开(公告)号:US20130185728A1

    公开(公告)日:2013-07-18

    申请号:US13353150

    申请日:2012-01-18

    IPC分类号: G06F9/46

    摘要: One embodiment of the present invention sets forth a technique for assigning a compute task to a first processor included in a plurality of processors. The technique involves analyzing each compute task in a plurality of compute tasks to identify one or more compute tasks that are eligible for assignment to the first processor, where each compute task is listed in a first table and is associated with a priority value and an allocation order that indicates relative time at which the compute task was added to the first table. The technique further involves selecting a first task compute from the identified one or more compute tasks based on at least one of the priority value and the allocation order, and assigning the first compute task to the first processor for execution.

    摘要翻译: 本发明的一个实施例提出了一种用于将计算任务分配给包括在多个处理器中的第一处理器的技术。 该技术涉及分析多个计算任务中的每个计算任务以识别符合分配给第一处理器的一个或多个计算任务,其中每个计算任务在第一表中列出并且与优先级值和分配 指示将计算任务添加到第一个表的相对时间的顺序。 该技术还包括基于优先级值和分配顺序中的至少一个从所识别的一个或多个计算任务中选择第一任务计算,以及将第一计算任务分配给第一处理器以供执行。

    SCHEDULING AND EXECUTION OF COMPUTE TASKS
    9.
    发明申请
    SCHEDULING AND EXECUTION OF COMPUTE TASKS 有权
    计划任务的安排和执行

    公开(公告)号:US20130185725A1

    公开(公告)日:2013-07-18

    申请号:US13353155

    申请日:2012-01-18

    IPC分类号: G06F9/46

    CPC分类号: G06F9/505 G06F2209/503

    摘要: One embodiment of the present invention sets forth a technique for selecting a first processor included in a plurality of processors to receive work related to a compute task. The technique involves analyzing state data of each processor in the plurality of processors to identify one or more processors that have already been assigned one compute task and are eligible to receive work related to the one compute task, receiving, from each of the one or more processors identified as eligible, an availability value that indicates the capacity of the processor to receive new work, selecting a first processor to receive work related to the one compute task based on the availability values received from the one or more processors, and issuing, to the first processor via a cooperative thread array (CTA), the work related to the one compute task.

    摘要翻译: 本发明的一个实施例提出了一种用于选择包括在多个处理器中的第一处理器以接收与计算任务相关的工作的技术。 该技术涉及分析多个处理器中的每个处理器的状态数据,以识别已经被分配了一个计算任务并且有资格接收与一个计算任务有关的工作的一个或多个处理器,从一个或多个处理器 被识别为合格的处理器,指示处理器接收新工作的容量的可用性值,基于从一个或多个处理器接收的可用性值,选择第一处理器以接收与一个计算任务相关的工作,并发布到 通过协作线程数组(CTA)的第一个处理器,与一个计算任务相关的工作。

    TECHNIQUE FOR COMPUTATIONAL NESTED PARALLELISM
    10.
    发明申请
    TECHNIQUE FOR COMPUTATIONAL NESTED PARALLELISM 有权
    计算并行平行技术

    公开(公告)号:US20130298133A1

    公开(公告)日:2013-11-07

    申请号:US13462649

    申请日:2012-05-02

    IPC分类号: G06F9/50

    摘要: One embodiment of the present invention sets forth a technique for performing nested kernel execution within a parallel processing subsystem. The technique involves enabling a parent thread to launch a nested child grid on the parallel processing subsystem, and enabling the parent thread to perform a thread synchronization barrier on the child grid for proper execution semantics between the parent thread and the child grid. This technique advantageously enables the parallel processing subsystem to perform a richer set of programming constructs, such as conditionally executed and nested operations and externally defined library functions without the additional complexity of CPU involvement.

    摘要翻译: 本发明的一个实施例提出了一种用于在并行处理子系统内执行嵌套的内核执行的技术。 该技术涉及使父线程启动并行处理子系统上的嵌套子网格,并使父线程能够在子网格上执行线程同步屏障,以在父线程和子网格之间实现正确的执行语义。 该技术有利地使得并行处理子系统能够执行更丰富的编程结构集合,诸如条件执行和嵌套操作以及外部定义的库函数,而不会增加CPU参与的复杂性。