掌桥专利:专业的专利平台
掌桥专利
首页

一种用于解决大规模多任务优化问题的GPU并行计算框架

文献发布时间:2023-06-19 18:32:25


一种用于解决大规模多任务优化问题的GPU并行计算框架

技术领域

本发明涉及优化算法以及并行计算领域,具体涉及一种用于解决大规模多任务优化问题的GPU并行计算框架。

背景技术

近年来,研究人员提出了一种多任务优化的范式,称为进化多任务知识迁移优化。进化多任务知识迁移优化主要是通过基于种群的隐性并行搜索,触发优化任务之间的知识迁移,使得求解优化问题有用的知识能够在不同任务之间进行传递,从而有效利用任务之间的潜在协同作用,最终在巨大的搜索空间中找到一组解(变量),以同时满足不同任务在一系列有关限制条件下达到最优值。

近十年来,GPU并行计算得到了计算机、大数据计算和通信等领域的密切关注。GPU并行计算是一种在GPU上执行通用计算的技术。与CPU相比,GPU的运算资源相当丰富,相对而言控制单元资源相对较小,GPU内存(显存)的带宽较大。目前,市面上主流的独立显卡的内存带宽可以达到CPU的数十倍。与此同时,相比于传统包含几个复杂核心的CPU,一个典型的GPU有数千个结构更为简单的流处理单元,也可以作为并行计算单元核数量。各类研究数据都表明GPU对于大规模计算,特别是并行计算和浮点运算方面,有着极大的优势。

在英伟达GPU中,GPU内核一般称之为CUDA core,GPU内部一般集成了成千上万个CUDA core。为了方便对这么多的内核进行管理调度,GPU将按照一定数量的内核组成一个流式多处理器。具体来说,GPU可以在单指令多线程(single-instruction multiple-thread,SIMT)模式下启动大量线程,在一定数量的内核上执行相同的指令,因此能够在数据并行应用中实现显著的速度提升。

在大规模多任务优化问题中,由于大量的个体经历了相同的进化操作,如选择、交叉、变异和替换,它很适合CUDA的单指令多线程并行计算模型。考虑到这一点,为了实现大规模的多任务连续优化,即同时有效地优化成百上千个任务,设计一个基于GPU并行计算的多任务知识迁移优化范式,它与GPU的并行计算模式非常匹配。

发明内容

为了在一定程度上克服目前大规模多任务优化中存在的问题,本发明申请提供一种用于解决大规模多任务优化问题的GPU并行计算框架,利用GPU并行计算单元核数量远大于CPU的特点,在优化过程中使用GPU并行计算处理单元进行并行计算来加速优化,解决了传统CPU在优化过程中计算大量个体适应度评估、排序、交叉变异引起的性能瓶颈,突破了现有多任务算法面对较大规模问题存在的限制,提升了多任务问题解决的效率。

本发明的目的可以通过以下技术方案来实现:

步骤S1:确定需要优化处理的优化任务并进行任务环境初始化;

步骤S2:通过GPU并行计算进行适应度评估,得到任务的精英个体;

步骤S3:满足迁移条件时,进行跨任务的知识迁移;

步骤S4:通过GPU并行计算生成子代个体;

步骤S5:重复步骤S2、步骤S3和步骤S4,直至满足优化终止条件。

进一步的,步骤S1包括:

步骤S11:确定多任务环境的任务数量

步骤S12:在GPU中规划初始化内核,每个内核包含

步骤S13:用CUDA高效随机数生成库,在任务的搜索空间进行随机采样,对于每个任务,得到任务的初始种群

步骤S14:将初始化内核生成的种群写入内存。

进一步的,步骤S2中,通过GPU并行计算进行适应度评估的方法包括以下步骤:

步骤S211:在GPU中规划函数适应度评估内核,每个内核包含

步骤S212:对于每个任务,通过线程把任务的个体由内存加载到适应度评估内核;

步骤S213:适应度评估内核根据不同的任务目标函数,评估每个任务个体的适应度;

步骤S214:适应度值可以表示为:

步骤S215:将个体和其对应的适应度值作为一个数据结构写入共享内存。

进一步的,步骤S2中,通过GPU并行计算得到任务的精英个体的方法包括以下步骤:

步骤S221:在GPU中规划排序内核,每个内核包含

步骤S222:对于每个个体,通过线程把任务的个体和其对应的适应度值由共享内存加载到排序内核;

步骤S223:GPU排序内核对个体进行并行排序,将排序结果写入内存。

进一步的,步骤S3中,跨任务知识迁移的方法包括以下步骤:

步骤S31:从内存中读取任务

其中,

步骤S32:映射到统一搜索空间

其中,

步骤S33:将迁移的个体根据映射规则映射到任务的特定搜索空间,并将映射后的个体写入内存。

进一步的,步骤S4中,通过GPU并行计算生成子代个体的方法包括以下步骤:

步骤S41:在GPU中规划子代生成内核,每个内核包含

步骤S42:对于每个任务,通过线程把任务的个体由内存加载到子代生成内核;

步骤S43:子代生成内核随机挑选同一任务的父代个体,由一个线程进行交叉变异,并将生成的子代个体写入内存。

本发明实施例提供的技术方案带来的有益效果是:

本发明克服了传统多任务进化算法在面对较大规模的优化任务时,CPU计算能力的限制,解决了现有多任务知识迁移进化优化的方法对于个体的进化操作计算效率低、信息可复用性低的问题,利用GPU内核数量多,并行计算能力强的特性,在演化进化过程中通过GPU单指令多线程的方式并行计算个体的进化操作,极大地提高了多任务问题优化的效率。

附图说明

图1为基于GPU并行计算的多任务知识迁移优化方法流程示意图。

图2为GPU单指令多线程架构图。

图3为CPU-GPU通信方式图。

图4为跨任务知识迁移过程示意图。

图5为基于GPU并行计算的多任务知识迁移优化方法效果图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,以下将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例一:

本实施例公开的用于解决大规模多任务知识迁移优化的GPU并行计算框架,具体流程示意图如图1所示。图1具体展示了CPU调用GPU内核的时刻以及个体数据交互的流程。

本实施例公开的用于解决大规模多任务优化问题的GPU并行计算框架,用以高效处理大规模的连续复杂优化任务包括以下步骤。

步骤S1:确定需要优化处理的优化任务并进行任务环境初始化。

其中,步骤S1具体包括:

步骤S11:确定多任务环境的任务数量为6,任务的目标函数为CEC进化大赛的NI-HS、PI-HS以及CI-HS的三组任务,进化算法的种群大小为128;

步骤S12:设置GPU为单指令多架构模式,如图2所示,在GPU中规划

步骤S13:用CUDA高效随机数生成库,在任务的搜索空间进行随机采样,对于每个任务,得到任务的初始种群

步骤S14:将初始化内核生成的种群写入内存,数据交互方式如图3所示。

步骤S2: 通过GPU并行计算进行适应度评估,得到任务的精英个体。

其中,步骤S2中 通过GPU并行计算进行适应度评估的方法具体包括:

步骤S211:在GPU中规划函数适应度评估内核,每个内核包含

步骤S212:对于每个任务,通过线程把任务的个体由内存加载到适应度评估内核;

步骤S213:适应度评估内核根据不同的任务目标函数,评估每个任务个体的适应度;

步骤S214:适应度值可以表示为:

步骤S215:将个体和其对应的适应度值作为一个数据结构写入共享内存。

其中,步骤S2中通过GPU并行计算得到任务的精英个体的方法具体包括:

步骤S221:在GPU中规划排序内核,每个内核包含

步骤S222:对于每个个体,通过线程把任务的个体和其对应的适应度值由共享内存加载到排序内核;

步骤S223:GPU排序内核对个体进行并行排序,将排序结果写入内存。

步骤S3:设置迁移条件为每20次迭代进行一次跨任务知识迁移,迁移过程如图4所示。

其中,步骤S3中的跨任务知识迁移的方法具体包括:

步骤S31:从内存中读取任务

其中,

步骤S32:映射到统一搜索空间

其中,

步骤S33:将迁移的个体根据映射规则映射到任务的特定搜索空间,并将映射后的个体写入内存。

步骤S4:通过GPU并行计算生成子代个体。

其中,步骤S4中,通过GPU并行计算生成子代个体的方法具体包括:

步骤S41:在GPU中规划子代生成内核,每个内核包含

步骤S42:对于每个任务,通过线程把任务的个体由内存加载到子代生成内核;

步骤S43:子代生成内核随机挑选同一任务的父代个体,由一个线程进行交叉变异,并将生成的子代个体写入内存。

步骤S5:重复步骤S2、步骤S3和步骤S4,直至满足优化终止条件。

图5展示了当前实施例配置在完成100次迭代、500次迭代和1000次迭代的总用时长、适应度评估用时、排序用时、知识迁移用时、生成子代用时、其他用时和加速倍数。

由以上技术方案可以看出,本发明具有以下优点:利用GPU并行计算单元核数量远大于CPU的特点,在优化过程中使用GPU并行计算处理单元进行并行计算来加速优化,解决了基于传统CPU类多任务知识迁移优化过程中计算大量个体适应度评估、排序、交叉变异引起的性能瓶颈,突破了现有多任务算法面对较大规模问题存在的限制,提升了多任务问题解决的效率。

对于本领域技术人员而言,本发明并不限制于上述实施例的示范性细节。本发明的保护范围应当由所附权利要求的范围而并非上述实施例说明限定,依据本发明的技术方案及其所做的任何等效变换,均应属于本发明的保护范围。

相关技术
  • 一种基于GPU的大规模电力系统潮流并行计算的系统及其方法
  • 一种基于GPU的大规模电力系统潮流并行计算系统及其方法
技术分类

06120115600978