1. 一种工作窃取器设备,包括:
确定模块,用于确定从第一类型的第一硬件计算单元窃取工作用于不同于所述第一类型的第二类型的第二硬件计算单元,其中所述工作在第一工作队列中排队,所述第一工作队列对应于所述第一硬件计算单元并且被存储在由所述第一和第二硬件计算单元共享的共享存储器中;以及
同步工作窃取器模块,其通过对所述第一工作队列的同步存储器存取来窃取所述工作,所述同步存储器存取相对于对来自所述第一硬件计算单元的所述第一工作队列的存储器存取同步。
2.如权利要求1所述的设备,其中所述同步工作窃取器模块将所述工作添加到第二工作队列,所述第二工作队列对应于所述第二硬件计算单元并且被存储在所述共享存储器中,并且其中所述第二类型比所述第一类型更专用。
3.如权利要求1所述的设备,其中所述同步工作窃取器模块通过包含对所述第一工作队列执行的原子操作的所述同步存储器存取来窃取所述工作。
4.如权利要求3所述的设备,其中所述原子操作包括读-修改-写操作、比较并互换操作、比较并交换操作、测试并设置操作、比较并设置操作以及加载链路/有条件存储操作之一。
5.如权利要求3所述的设备,其中所述原子操作包括开放计算语言(OpenCL)原子操作。
6.如权利要求3所述的设备,其中所述同步工作窃取器模块通过CUDA同步存储器存取来窃取所述工作。
7.如权利要求1所述的设备,进一步包括:第二确定模块,用于确定从所述第二硬件计算单元窃取第二工作用于所述第一硬件计算单元,其中所述第二工作在第二工作队列中排队,所述第二工作队列对应于第二硬件计算单元并且被存储在所述共享存储器中。
8.如权利要求7所述的设备,进一步包括:第二同步工作窃取器模块,其通过对来自所述第一硬件计算单元的所述第二工作队列的第二同步存储器存取来窃取所述第二工作,所述第二同步存储器存取相对于对来自所述第二硬件计算单元的所述第二工作队列的存储器存取同步。
9.如权利要求1-8中任一项所述的设备,其中当第二工作队列为空和填充在阈值等级以下中的一项时,所述确定模块确定窃取所述工作,所述第二工作队列对应于第二硬件计算单元并且被存储在所述共享存储器中。
10.如权利要求1-8中任一项所述的设备,其中所述第一硬件计算单元包括从通用处理器和中央处理单元(CPU)中选择的一个,并且其中所述第二硬件计算单元包括从图形处理器、硬件加速器装置、密码处理器、通信处理器、工作处理器、专用处理器、专用核、高度并行专用硬件、数字信号处理器(DSP)和现场可编程门阵列(FPGA)中选择的一个。
11.如权利要求10所述的设备,其中所述第一硬件计算单元包括所述CPU,并且其中所述第二硬件计算单元包括从图形处理单元(GPU)和集成图形核中选择的所述图形处理器。
12. 一种在异构计算系统中的方法,包括:
确定从第一类型的第一硬件计算单元窃取工作用于比所述第一类型更专用的第二不同类型的第二硬件计算单元,其中所述工作在第一工作队列中排队,所述第一工作队列对应于所述第一硬件计算单元并且被存储在由所述第一和第二硬件计算单元共享的共享存储器中;以及
窃取所述工作包含执行对存储在所述共享存储器中的所述第一工作队列的同步存储器存取,所述同步存储器存取相对于对来自所述第一硬件计算单元的所述第一工作队列的存储器存取同步。
13.如权利要求12所述的方法,进一步包括:将所述工作添加到第二工作队列,所述第二工作队列对应于所述第二硬件计算单元并且也存储在所述共享存储器中。
14.如权利要求12所述的方法,其中执行所述同步存储器存取包括执行原子操作。
15.如权利要求14所述的方法,其中执行所述原子操作包括执行从读-修改-写操作、比较并互换操作、比较并交换操作、测试并设置操作、比较并设置操作以及加载链路/有条件存储操作中选择的原子操作。
16.如权利要求14所述的方法,其中执行所述原子操作包括执行开放计算语言(OpenCL)原子操作。
17.如权利要求12所述的方法,进一步包括:确定窃取第二工作以及从所述第二硬件计算单元窃取所述第二工作用于所述第一硬件计算单元,其中所述第二工作在第二工作队列中排队,所述第二工作队列对应于所述第二硬件计算单元并且被存储在所述共享存储器中。
18.如权利要求13所述的方法,其中确定包括响应于所述第二工作队列为空和填充在阈值等级以下中的一项而确定窃取所述工作,所述第二工作队列对应于所述第二硬件计算单元并且被存储在所述共享存储器中。
19.如权利要求13所述的方法,其中所述第一硬件计算单元是从通用处理器、中央处理单元(CPU)以及具有多个通用核的片上系统中选择的一个,并且其中所述第二硬件计算单元是从图形处理器、硬件加速器装置、密码处理器、通信处理器、网络处理器、专用处理器、专用核、片上系统上的专用核、高度并行专用硬件、数字信号处理器(DSP)和现场可编程门阵列(FPGA)中选择的一个。
20.如权利要求19所述的方法,其中所述第一硬件计算单元包括所述CPU,并且其中所述第二硬件计算单元包括从图形处理单元(GPU)和集成图形核中选择的所述图形处理器。
21.一种异构计算机系统,包括:
互连;
与所述互连耦合的第一类型的第一硬件计算单元;
与所述互连耦合的第二不同类型的第二硬件计算单元,所述第二类型比所述第一类型更专用;
与所述互连耦合的动态随机存取存储器(DRAM),所述DRAM包含由所述第一和第二硬件计算单元共享的共享存储器,所述共享存储器包含将所述第一硬件计算单元的工作排队的第一工作队列和将所述第二硬件计算单元的工作排队的第二工作队列;以及
工作窃取器设备,用于确定窃取并通过对所述第一工作队列的同步存储器存取从所述第一队列窃取所述工作并将它添加到所述第二队列,所述同步存储器存取相对于对来自所述第一硬件计算单元的所述第一工作队列的存储器存取同步。
22.如权利要求21所述的系统,其中所述工作窃取器设备通过包含所述第一工作队列上的原子操作的所述同步存储器存取来窃取所述工作。
23.如权利要求21-22中任一项所述的系统,进一步包括:第二工作窃取器设备,其确定窃取并通过对所述第二工作队列的第二同步存储器存取从所述第二工作队列窃取第二工作并将它添加到所述第一工作队列,所述第二同步存储器存取相对于对来自所述第二硬件计算单元的所述第二工作队列的存储器存取同步。
24.一种存储指令的机器可读存储介质,所述指令如果由机器执行则使所述机器执行如权利要求12-20中任一项所述的方法。
25.一种设备,包括用于执行如权利要求12-20中任一项所述的方法的部件。