当前位置: 首页 > 专利查询>辉达公司专利>正文

计算任务状态封装制造技术

技术编号:8934437 阅读:137 留言:0更新日期:2013-07-18 03:01
本发明专利技术的一个实施例阐述了一种用于封装计算任务状态的技术,其实现计算任务的无序调度和执行。调度电路基于优先级把计算任务组织成组。然后可使用不同的调度方案来选择计算任务用于执行。每个组被维持作为指向计算任务的指针的链表,所述计算任务被编码为存储在存储器中的任务元数据(TMD)。TMD封装那些为初始化、调度和执行计算任务所需要的状态和参数。

【技术实现步骤摘要】

本专利技术总地涉及计算任务的执行,并且更具体地涉及对计算任务状态的封装。
技术介绍
在多处理器系统中计算任务的传统执行从命令流接收处理任务,其对状态信息进行编码以配置与将要处理的数据交织的多个处理器。按照数据出现在流中的顺序处理所述数据。当流中后面的数据的处理与完成对流中早先的数据的处理无关时,与数据出现在流中的顺序相比所述数据可被无序地处理。好处在于当充足的处理资源可用于多个处理任务时可并发地执行非相关处理任务。因此,本领域所需要的是一种用于封装计算任务状态以实现计算任务的无序(out-of-order)调度和执行的系统和方法。
技术实现思路
一种用于封装计算任务状态的系统和方法实现了计算任务的无序调度和执行。调度电路基于优先级把计算任务组织成组。然后可使用不同的调度方案来选择计算任务用于执行。每个组被维持作为指向计算任务的指针的链表,所述计算任务被编码为存储在存储器中的任务元数据(TMD)。TMD封装那些为初始化、调度和执行计算任务所需的状态和参数。用于封装计算任务的本专利技术的方法的多个实施例包括分配用于存储任务元数据结构的存储器。所述方法还包括:在所述任务元数据结构中存储初始化参数,所述初始化参数配置流多处理器以执行计算任务;在所述任务元数据结构中存储调度参数,所述调度参数控制所述计算任务的调度;在所述任务元数据结构中存储执行参数,所述执行参数控制流多处理器对所述计算任务的执行;以及执行所述计算任务。本专利技术的多个实施例包括一种用于封装计算任务的系统,所述系统包括:存储器,被配置成存储对应于所述计算任务的任务元数据结构;以及多线程处理器。多线程处理器被配置成:分配所述存储器的一部分来存储所述任务元数据结构;在所述任务元数据结构中存储初始化参数,所述初始化参数配置流多处理器以执行计算任务;在所述任务元数据结构中存储调度参数,所述调度参数控制所述计算任务的调度;以及在所述任务元数据结构中存储执行参数,所述执行参数控制多线程处理器对所述计算任务的执行。多线程处理器还被配置成执行所述计算任务。计算任务到TMD中的封装实现了计算任务的调度以无序执行。另外,计算任务可并发地执行,并且控制计算任务的执行的参数可被编码在TMD中。初始化和执行调度参数被用来配置流多处理器和存储器资源以执行每个TMD。附图说明因此,可以详细地理解上述列举的本专利技术的特征,并且可以参考实施例得到对如上面所概括的本专利技术更具体的描述,其中一些实施例在附图中示出。然而,应该注意的是,附图仅示出了本专利技术的典型实施例,因此不应被认为是对其范围的限制,因为本专利技术可以承认其他等效的实施例。图1是示出了经配置以实现本专利技术一个或多个方面的计算机系统的框图;图2是根据本专利技术一个实施例的用于图1的计算机系统的并行处理子系统的框图;图3是根据本专利技术一个实施例的图2的任务/工作单元的框图;图4A是根据本专利技术的一个实施例的图3的任务/工作单元的另一个框图;图4B示出了根据本专利技术的一个实施例的用于在图4A的任务元数据(TMD)缓存中加载条目的方法的流程图;图5A是根据本专利技术的一个实施例的图3和4A的TMD的内容的示意图;图5B示出了根据本专利技术的一个实施例的指向图5A的队列的条目的指针;图6不出了根据本专利技术的一个实施例的用于在图3、4A和5的栅格(grid) TMD中封装计算任务状态的方法;以及图7示出了根据本专利技术的一个实施例的用于在图3、4A和5的队列TMD中封装计算任务状态的方法。具体实施例方式在下面的描述中,将阐述大量的具体细节以提供对本专利技术更透彻的理解。然而,对本领域的技术人员显而易见的是本专利技术可以在没有一个或多个这些具体细节的情况下得以实施。在其他例子中,没有描述公知的特征以避免对本专利技术造成混淆。系统概述图1是示出了经配置以实现本专利技术的一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU) 102和经由可以包括存储器桥105的互连路径通信的系统存储器104。存储器桥105可以是例如北桥芯片,经由总线或其他通信路径106(例如超传输(HyperTransport)链路)连接至Ij I/O (输入/输出)桥107。I/O桥107,其可以是例如南桥芯片,从一个或多个用户输入设备108 (例如键盘、鼠标)接收用户输入并且经由路径106和存储器桥105将所述输入转发到CPU 102。并行处理子系统112经由总线或其他通信路径113 (例如PCI Express、加速图形端口或超传输链路)耦合到存储器桥105 ;在一个实施例中,并行处理子系统112是将像素传递到显示设备110 (例如传统的基于CRT或IXD的监视器)的图形子系统。系统盘114也连接到I/O桥107。开关116提供I/O桥107与诸如网络适配器118以及各种外插卡120和121的其他组件之间的连接。其他组件(未明确示出),包括USB或其他端口连接、CD驱动器、DVD驱动器、胶片录制设备及类似组件,也可以连接到I/O桥107。使图1中各种组件互连的通信路径可以使用任何适合的协议实现,诸如PCI (外围组件互连)、PC1-Express、AGP (加速图形端口)、超传输或者任何其他总线或点到点通信协议,并且不同设备间的连接可使用本领域已知的不同协议。在一个实施例中,并行处理子系统112包含经优化用于图形和视频处理的电路,包括例如视频输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,并行处理子系统112包含经优化用于通用处理的电路,同时保留底层(underlying)的计算架构,本文将更详细地进行描述。在又一个实施例中,可以将并行处理子系统112与一个或多个其他系统元件集成起来,诸如存储器桥105、CPU 102以及I/O桥107,以形成片上系统(SoC)。应该理解,本文所示系统是示例性的,并且变化和修改都是可能的。连接拓扑,包括桥的数量和布置、CPU 102的数量以及并行处理子系统112的数量,可根据需要修改。例如,在一些实施例中,系统存储器104直接连接到CPU 102而不是通过桥,并且其他设备经由存储器桥105和CPU 102与系统存储器104通信。在其他替代性拓扑中,并行处理子系统112连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。而在其他实施例中,I/O桥107和存储器桥105可能被集成到单个芯片上。大量实施例可以包括两个或两个以上的CPU 102以及两个或两个以上的并行处理系统112。本文所示的特定组件是可选的;例如,任意数量的外插卡或外围设备都可能得到支持。在一些实施例中,开关116被去掉,网络适配器118和外插卡120、121直接连接到I/O桥107。图2示出了根据本专利技术一个实施例的并行处理子系统112。如图所示,并行处理子系统112包括一个或多个并行处理单元(PI3U) 202,每个并行处理单元202都耦合到本地并行处理(PP)存储器204。通常,并行处理子系统包括U个PPU,其中U彡I。(本文中,类似对象的多个实体以标识该对象的参考数字和需要时标识所述实体的括号中的数字来表示。)PPU 202和并行处理存储器204可使用一个或多个集成电路设备来实现,诸如可编程处理器、专用集成电路(ASIC)或存储器设备,或者以任何其他本文档来自技高网...

【技术保护点】
一种封装计算任务的方法,所述方法包括:分配存储器来存储任务元数据结构;在所述任务元数据结构中存储初始化参数,所述初始化参数配置流多处理器以执行计算任务;在所述任务元数据结构中存储调度参数,所述调度参数控制所述计算任务的调度;在所述任务元数据结构中存储执行参数,所述执行参数控制流多处理器对所述计算任务的执行;以及执行所述计算任务。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:杰尔姆·F·小杜鲁克兰基·V·姗肖恩·J·特赖希勒
申请(专利权)人:辉达公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1