The invention relates to the field of heterogeneous computing, in particular to a parallel heterogeneous computing scheduling technology. In an embodiment of the present invention, task data in the N-dimensional indexing space NDRange of the same task is allocated to different heterogeneous computing devices for computation by partitioning granularity into work group work group. As a result, the computing data of the same task can run in parallel in many heterogeneous computing devices, and the efficiency of task execution can be improved.
【技术实现步骤摘要】
异构调度方法
本专利技术涉及异构计算领域,具体的,涉及一种异构计算中的调度技术。
技术介绍
异构计算(Heterogeneouscomputing),主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。如图1,在一个异构计算系统中,常见的异构计算设备(也称为异构设备)类别包括CPU、GPU、DSP等,当前典型的异构系统如集成了中央处理器(CentralProcessingUnit,CPU)和图形处理器(GraphicsProcessingUnit,GPU)的通用计算机,或集成CPU、GPU和数字信号处理器(DigitalSignalProcessor,DSP)芯片的手机系统级芯片(SystemonChip,SoC)。由于异构计算设备通常都有独自的指令集及编程模型,在进行异构计算时,必须提供面向异构设备的编程语言和编程框架,用以把计算任务表达成设备程序,并提供面向异构设备的资源调度技术,用以配置、调度这些异构资源。现有的异构计算框架,例如开放计算语言(OpenComputingLanguage,OpenCL)、统一计算设备架构(ComputeUnifi ...
【技术保护点】
1.一种异构调度方法,其特征在于,所述方法包括:指示至少两个异构设备分别创建命令队列,所述命令队列包含所述命令队列对应的异构设备要处理的任务数据的数据索引;将至少一个工作组work‑group分配到所述至少两个异构设备中的第一异构设备的命令队列中,将至少一个工作组work‑group分配到所述至少两个异构设备中的第二异构设备的命令队列中,其中,所述工作组均为同一N维索引空间NDRange中的工作组,分配到第一异构设备的命令队列中的工作组的数量和分配到第二异构设备的命令队列中的工作组的数量均小于所述工作组所在的NDRange中工作组的总数,所述N维索引空间为一个任务的任务数据 ...
【技术特征摘要】
1.一种异构调度方法,其特征在于,所述方法包括:指示至少两个异构设备分别创建命令队列,所述命令队列包含所述命令队列对应的异构设备要处理的任务数据的数据索引;将至少一个工作组work-group分配到所述至少两个异构设备中的第一异构设备的命令队列中,将至少一个工作组work-group分配到所述至少两个异构设备中的第二异构设备的命令队列中,其中,所述工作组均为同一N维索引空间NDRange中的工作组,分配到第一异构设备的命令队列中的工作组的数量和分配到第二异构设备的命令队列中的工作组的数量均小于所述工作组所在的NDRange中工作组的总数,所述N维索引空间为一个任务的任务数据所对应的N维索引空间。2.根据权利要求1所述方法,其特征在于,所述方法还包括:获取所述异构设备的负载状态;将至少一个工作组work-group分配到所述至少两个异构设备中的第一异构设备的命令队列中,具体包括:当所述第一异构设备的负载状态低于第一阈值时,将至少一个工作组work-group分配到所述第一异构设备的命令队列中;将至少一个工作组work-group分配到所述至少两个异构设备中的第二异构设备的命令队列中,具体包括:当所述第二异构设备的负载状态低于第一阈值时,将至少一个工作组work-group分配到所述第二异构设备的命令队列中。3.根据权利要求1或2所述方法,其特征在于,分配到第一异构设备的命令队列中的工作组的数量和分配到第二异构设备的命令队列中的工作组的数量相同,且分配到第一异构设备的命令队列中的工作组的数量或分配到第二异构设备的命令队列中的工作组的数量能够被所述N为索引空间中的工作组的总数整除。4.根据权利要求1或2所述方法,其特征在于,所述将至少一个工作组work-group分配到所述至少两个异构设备中的第一异构设备的命令队列中,将至少一个工作组work-group分配到所述至少两个异构设备中的第二异构设备的命令队列中具体包括:估计所述第一异构设备和所述第二异构设备执行所述工作组的时间;根据所述执行时间,分配工作组到所述第一异构设备和所述第二异构设备的命令队列中,以使得所述第一异构设备执行完所述分配的工作组的时间和所述第一异构设备执行完所述分配的工作组的时间的差值最小。5.根据权利要求1-4所述方法,其特征在于,将至少一个工作组work-group分配到一个所述至少两个异构设备中的第一异构设备的命令队列中具体包括:发送用于指示所述分配到第一异构设备的至少一个工作组的全局坐标和偏移量到所述第一异构设备;将至少一个工作组work-group分配到一个所述至少两个异构设备中的第二异构设备的命令队列中具体包括:发送用于指示所述分配到第二异构设备的至少一个工作组的全局坐标和偏移量到所述第二异构设备;其中,所述全局坐标用于标识所述至少一个工作组中最后一个工作组在所述N维索引空间中的位置,所述偏移量用于标识所述至少一个工作组中第一个工作组在所述N维索引空间中的位置。6.根据权利要求1-5所述方法,其特征在于,所述将至少一个工作组work-group分配到所述至少两个异构设备中的第一异构设备或第二异构设备的命令队列中具体包括:创建第一虚拟设备,并创建所述第一虚拟设备的命令队列,以使得宿主程序将任务的任务数据分配给所述第一虚拟设备,所述宿主程序用于调度所述多个异构设备执行任务;获取宿主程序分配给所述第一虚拟设备的一个任务的任务数据对应的N维索引空间,将所述N维索引空间中的至少一个工作组work-group分配到所述第一异构设备或所述第二异构设备的命令队列中。7.根据权利要求6所述方法,其特征在于,所述方法通过应用程序编程接口钩子APIHook获取宿主程序的指令,并调度可安装客户端驱动程序ICD实现。8.一种异构调度装置,其特征在于,所述装置包括:命令队列创建模块,用于为至少两个异构设备分别创建命令队列,所述命令队列包含所述命令队列对应的异构设备要处理的任务数据的数据索引;数据分配模块,用于将至少一个工作组work-group分配到所述至少两个异构设备中的第一异构设备的命令队列中,将至少一个工作组work-group分配到所述至少两个异构设备中的第二异构设备的命令队列中,其中,所述工作组均为同一N维索引空间NDRange中的工作组,分配到第一异构设备的命令队列中的工作组的数量和分配到第二异构设备的命令队列中的工...
【专利技术属性】
技术研发人员:许春嵘,喻钢,王振江,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。