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

用于处理嵌套流事件的方法和系统技术方案

技术编号:9642232 阅读:149 留言:0更新日期:2014-02-07 00:32
本公开的一个实施例阐述用于在诸如图形处理单元的并行处理子系统中强制实行交叉流依赖性的技术。技术涉及对等待事件进行排队以创建交叉流依赖性并且对信令事件进行排队以指示等待事件完成。调度器内核检查来自相应流的任务状况数据结构并且更新用于流内任务和事件的依赖性计数。当用于等待事件的每个任务依赖性被满足时,相关联的任务可以执行。

【技术实现步骤摘要】
用于处理嵌套流事件的方法和系统
本专利技术总地涉及多线程计算机架构,并且更具体地涉及用于处理嵌套(nested)流事件的方法和系统。
技术介绍
在具有中央处理单元(CPU)和图形处理单元(GPU)二者的常规计算系统中,CPU确定哪些具体的计算任务由GPU实施和以什么次序实施。GPU计算任务典型地包括跨并行数据集的高度并行的、高度相似的操作,该并行数据集诸如图像或图像集。在常规的GPU执行模型中,CPU通过选择相应的线程程序并且指导GPU执行线程程序的并行实例集来发起特定的计算任务。在常规的GPU执行模型中,仅CPU可以发起线程程序在GPU上的执行。在所有线程实例完成执行之后,GPU必须通知CPU并且等待另一个计算任务由CPU发出。通知CPU和等待下一个计算任务典型地是使GPU内的某些资源暂时闲置的阻塞型、序列化操作,从而降低整体系统性能。在某些场景下可以通过在入栈缓冲区中对顺序的计算任务进行排队来改善性能,GPU可以从该入栈缓冲区中拉取工作用于执行而不需要等待CPU。当CPU能够足够快地生成用于GPU的工作,使每次GPU能够开始新的任务时工作均在入栈缓冲区内挂起(pending)时,本文档来自技高网...
用于处理嵌套流事件的方法和系统

【技术保护点】
一种用于处理跨一组线程的多个任务的计算机实现的方法,所述方法包括:从队列检索第一项目;确定所述第一项目不包括任务;确定所述第一项目是否包括等待事件或信令事件;作为响应,递减计数;以及从所述队列移除所述第一项目。

【技术特征摘要】
2012.05.09 US 13/467,8041.一种用于处理跨一组线程的多个任务的计算机实现的方法,所述方法包括:从第一队列检索第一项目,所述第一项目包括处理任务、等待事件和信令事件,所述第一队列由第一线程执行;确定所述第一项目包括信令事件并且执行所述信令事件,其中第二队列中的等待事件依赖于所述信令事件,所述第二队列由第二线程执行;响应于执行所述信令事件,递减与所述第二队列中的所述等待事件相关联的依赖性计数;以及从所述第一队列移除所述第一项目,其中,所述第一线程和所述第二线程在图形处理子系统内执行并且所述图形处理子系统的至少一个线程生成存储在所述第一队列中的等待事件和信令事件中的至少一个。2.如权利要求1所述的方法,其中所述依赖性计数代表多个不同的其他任务或事件,所述第二队列中的所述等待事件在所述等待事件完成之前正在等待完成。3.如权利要求2所述的方法,进一步包括递归地遍历指向多个节点的多个指针,其中每个指针指向不同的节点,并且每个节点与所述不同的其他任务或事件之一相关联。4.如权利要求1所述的方法,其中所述第二队列中的所述等待事件进一步依赖于给定任务。5.如权利要求4所述的方法,其中所述第二队列中的所述等待事件起阻塞任何额外任务的执行的作用,直到所述给定任务被完成。6.如权利要求5所述的方法,其中额外任务驻留在所述等待事件后面的所述第二队列中。...

【专利技术属性】
技术研发人员:卢克·杜兰特
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1