【技术实现步骤摘要】
用于处理嵌套流事件的方法和系统
本专利技术总地涉及多线程计算机架构,并且更具体地涉及用于处理嵌套(nested)流事件的方法和系统。
技术介绍
在具有中央处理单元(CPU)和图形处理单元(GPU)二者的常规计算系统中,CPU确定哪些具体的计算任务由GPU实施和以什么次序实施。GPU计算任务典型地包括跨并行数据集的高度并行的、高度相似的操作,该并行数据集诸如图像或图像集。在常规的GPU执行模型中,CPU通过选择相应的线程程序并且指导GPU执行线程程序的并行实例集来发起特定的计算任务。在常规的GPU执行模型中,仅CPU可以发起线程程序在GPU上的执行。在所有线程实例完成执行之后,GPU必须通知CPU并且等待另一个计算任务由CPU发出。通知CPU和等待下一个计算任务典型地是使GPU内的某些资源暂时闲置的阻塞型、序列化操作,从而降低整体系统性能。在某些场景下可以通过在入栈缓冲区中对顺序的计算任务进行排队来改善性能,GPU可以从该入栈缓冲区中拉取工作用于执行而不需要等待CPU。当CPU能够足够快地生成用于GPU的工作,使每次GPU能够开始新的任务时工作均在入栈缓冲区内挂起( ...
【技术保护点】
一种用于处理跨一组线程的多个任务的计算机实现的方法,所述方法包括:从队列检索第一项目;确定所述第一项目不包括任务;确定所述第一项目是否包括等待事件或信令事件;作为响应,递减计数;以及从所述队列移除所述第一项目。
【技术特征摘要】
2012.05.09 US 13/467,8041.一种用于处理跨一组线程的多个任务的计算机实现的方法,所述方法包括:从第一队列检索第一项目,所述第一项目包括处理任务、等待事件和信令事件,所述第一队列由第一线程执行;确定所述第一项目包括信令事件并且执行所述信令事件,其中第二队列中的等待事件依赖于所述信令事件,所述第二队列由第二线程执行;响应于执行所述信令事件,递减与所述第二队列中的所述等待事件相关联的依赖性计数;以及从所述第一队列移除所述第一项目,其中,所述第一线程和所述第二线程在图形处理子系统内执行并且所述图形处理子系统的至少一个线程生成存储在所述第一队列中的等待事件和信令事件中的至少一个。2.如权利要求1所述的方法,其中所述依赖性计数代表多个不同的其他任务或事件,所述第二队列中的所述等待事件在所述等待事件完成之前正在等待完成。3.如权利要求2所述的方法,进一步包括递归地遍历指向多个节点的多个指针,其中每个指针指向不同的节点,并且每个节点与所述不同的其他任务或事件之一相关联。4.如权利要求1所述的方法,其中所述第二队列中的所述等待事件进一步依赖于给定任务。5.如权利要求4所述的方法,其中所述第二队列中的所述等待事件起阻塞任何额外任务的执行的作用,直到所述给定任务被完成。6.如权利要求5所述的方法,其中额外任务驻留在所述等待事件后面的所述第二队列中。...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。