CN105844110A - 一种基于gpu的自适应领域禁忌搜索求解软硬件划分方法 - Google Patents
一种基于gpu的自适应领域禁忌搜索求解软硬件划分方法 Download PDFInfo
- Publication number
- CN105844110A CN105844110A CN201610212930.2A CN201610212930A CN105844110A CN 105844110 A CN105844110 A CN 105844110A CN 201610212930 A CN201610212930 A CN 201610212930A CN 105844110 A CN105844110 A CN 105844110A
- Authority
- CN
- China
- Prior art keywords
- solution
- neighborhood
- gpu
- hardware
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Z—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
- G16Z99/00—Subject matter not provided for in other main groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于GPU的自适应领域禁忌搜索求解软硬件划分方法,首先将软硬件划分领域中常用的禁忌搜索算法进行改造,使其计算过程与GPU的体系结构特征相匹配,从而为将算法移植至GPU进行准备。其次,为进一步提高算法的性能,本发明不仅给出了算法在GPU上的整体框架,而且还对算法在GPU上的具体执行做了优化。对比实验表明,本发明在求解质量和计算速度上都要优于已知工作。
Description
技术领域
本发明涉及软硬件协同设计技术领域,涉及一种软硬件划分方法,特别是涉及一种基于GPU的自适应领域禁忌搜索求解软硬件划分方法。
背景技术
现代嵌入式***通常由硬件和软件组成。硬件主要指是面向特定应用的处理器,具有执行速度快、功耗低等特点,但是成本较高;而软件执行速度慢,功耗高但是成本低。通常将运行在目标嵌入式***上的各计算任务表示成资源需求不一的节点,软硬件划分的目的是在满足特定约束下,将各计算任务合理地映射到软件或硬件上,使得整个***的性能最优化。软硬件划分是软硬件协同设计中的关键步骤。
软硬件划分是个NP完全问题。目前,求解软硬件划分问题的常用算法主要分为两类,即精确求解算法和近似求解算法。精确求解算法主要用来处理小规模的软硬件划分问题。当问题规模增大时,解的规模呈指数级增长,精确求解算法变得不可行,转而使用启发式方法求解。
求解软硬件划分问题的启发式方法分为专用启发式方法和通用启发式方法。专用启发式方法分为硬件约束优先方法或软件约束优先方法。通用启发式方法主要指各类智能搜索算法,如遗传算法、蚁群算法、粒子群优化方法、模拟退火方法、人工免疫算法、禁忌搜索方法等以及这些方法的结合。这些智能优化算法具有以下特点:属于轨迹类或者种群类算法,主要通过多次迭代来逼近求解目标;另外,在每次迭代时初始化一定数量的候选解,通过对候选解的选择决定下次迭代的质量好坏。然而,当候选解数量过多时,会造成算法在运行时间上的增加。当问题规模很大时,时间上的开销尤为明显。
这类算法的执行过程本身具有内在并行的特点。因此,很自然地对这些算法进行并行化以加速问题的求解。但是,关于并行智能优化算法求解软硬件划分问题的工作很少,已知的公开发表的相关工作仅包括并行遗传算法和并行混合粒子群优化算法来求解软硬件划分问题。所用平台为多台个人PC组成的小规模集群。
近年来,有很多的工作描述GPU加速的智能优化算法求解组合优化问题。受这些文献的启发,本发明首次探索了在软硬件划分领域使用GPU来加速禁忌 搜索求解划分的过程。
发明内容
本发明的目的是为了克服上述背景技术的不足之处,提供一种基于GPU的自适应领域禁忌搜索求解软硬件划分方法。
本发明所采用的技术方案是:一种基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于,包括以下步骤:
步骤1:在主机端,获取软硬件划分的初始解以及相关信息;将初始解分别设置为当前解和全局最优解;
步骤2:在主机端将软硬件划分的任务图的数据表达方式进行转换;
步骤3:设置参数;初始化主机端所需的存储空间;初始化GPU端所需的存储空间;
步骤4:在主机端,将数据传输至GPU端,启动GPU端内核;
步骤5:在设备端,通过内核计算出最优候选邻域并将结果传回主机端;
步骤6:在主机端,更新禁忌表以及禁忌标示符;
步骤7:在主机端,更新当前解以及全局最优解;
步骤8:在主机端,判断是否满足停止准则;
若否,则返回步骤4;
若是,则结束流程。
作为优选,步骤1中所述初始解是指通过启发式方法或随机方法求得的待划分任务图的硬件耗费;所述相关信息主要包括解向量、解向量的映射向量和初始解的软件耗费以及通信耗费;所述解向量是和硬件耗费对应的由0或者1组成的数组;所述解向量的映射向量是由0或者1组成的数组;主要保存任务图各节点被排序前的状态,用于后续的通信耗费的计算。
作为优选,步骤2中所述任务图的数据表达方式进行转换是指将任务图传输给GPU前,需要将邻接表的表示方式转换为适合在GPU端进行运算的压缩的稀疏行格式(Compressed Sparse Row:CSR)的表达方式。
作为优选,步骤3中所述参数主要包括最大迭代周期数、连续未改进周期数、禁忌表的长度、邻域的规模、候选邻域解集合中被选为当前解的邻域索引标识符、以及启动GPU内核所需的线程块大小以及线程块的个数;
所述主机端所需的存储空间包括禁忌表的存储空间,各个邻域候选解的禁忌状态的存储空间,保存当前解生成的全部2翻转邻域候选解的索引、软件耗费、硬件耗费、通信耗费的存储空间,最佳候选邻域的编号,软件耗费、硬件耗费、通信耗费的存储空间;
所述GPU端所需的存储空间包括当前解向量和当前解的映射向量的存储空间,各个邻域候选解的禁忌状态的存储空间,各个邻域候选解是否满足约束的状态标识符数组,任务图的压缩的稀疏行格式的存储空间,当前解生成的全部2翻转邻域候选解的索引、软件耗费、硬件耗费、通信耗费的存储空间,保存满足约束的可行邻域候选解的存储空间,最佳候选邻域的编号、软件耗费、硬件耗费、通信耗费的存储空间。
作为优选,步骤4中所述将数据传输至GPU端,传输的数据包括当前解的解向量、当前解向量的映射、当前解的软件耗费、硬件耗费和通信耗费、全局最优解的硬件耗费、软硬件划分的任务图、禁忌表;所述GPU端内核主要包括对2翻转邻域解的耗费计算内核、对满足约束的可行邻域解的进行挑选内核,以及对可行的邻域解进行禁忌评价的内核。
作为优选,步骤5中所述计算出最优候选邻域的过程包括以下子步骤:
步骤5.1:在GPU端,每个2翻转邻域为一个候选解;GPU并行地对每个候选解计算软件耗费、硬件耗费和通信耗费;计算完成后,根据软件耗费与通信耗费之和是否满足约束评价,将0或者1写入状态标识符数组的对应位置中;其中,0表示不满足约束;1表示满足约束;同时将邻域的标示符、软件耗费、硬件耗费和通信耗费写入GPU端申请的存储空间中;
步骤5.2:在GPU端,根据邻域状态标识符数组,通过并行Compaction算法,将状态标示符数组中标号为1的邻域存入GPU端满足约束的可行邻域候选解的存储空间中;
步骤5.3:在GPU端,通过禁忌表,并行地判断每个可行解是否在禁忌表里,若可行解不在禁忌表中并且在所有2翻转可行解中具有最小硬件耗费,则为最佳邻域候选解;如果可行邻域解在禁忌表中,但是其硬件耗费低于全局最优值,同样也被选择为最佳候选邻域。
作为优选,步骤5中所述传回主机端的结果主要为最佳候选邻域的编号、软 件耗费、硬件耗费以及通信耗费。
作为优选,步骤6中所述在主机端更新禁忌表的过程是基于循环队列的先进先出,禁忌对象是当前解在上次迭代中的邻域标示符;更新禁忌标示符时,出队列的索引标号为0,同时进队列的索引标号为1。
作为优选,步骤7中所述更新当前解以及全局最优解,是用本次迭代选出的最佳邻域替代当前解,主要包括替换当前解的解向量、解向量的映射、硬件耗费、软件耗费、通信耗费、当前解的标示符;如果最佳邻域的耗费优于全局最佳硬件耗费,同样更新全局硬件耗费;当更新全局硬件耗费时,连续未改进周期数被清0。
作为优选,步骤8中所述停止准则主要是指执行步骤4至步骤8的循环次数或者达到了最大次数或者连续未改进周期数后,停止运算。
本发明与已有技术相比较,效果是积极且明显的:首先,本发明在算法的执行时间上要低于目前已知的工作;其次,在求解质量上,也要优于已知的工作。
附图说明
图1为本发明实施例的整体框架示意图;
图2为本发明实施例的待划分任务图模型以及对应的压缩的稀疏行格式表达示意图;
图3为本发明实施例的候选解生成规则示意图;
图4为本发明实施例的compaction算法流程示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
附图1为本发明的主要框架。整个框架分为主机端和客户端,主机端包括CPU和内存;客户端指GPU。主机端的任务是产生初始解;将初始解作为当前解传输给客户端;接受客户端的最佳候选解;更新禁忌表和禁忌状态表;通过最佳候选解更新当前解和全局最优解;对停止条件进行判断决定是否进行下一次运算过程。在客户端,通过当前解产生所有的2-翻转候选解,逻辑上,GPU并行地对所有的候选解计算硬件耗费、软件耗费和通信耗费;根据约束条件排除不满 足约束的候选解;根据禁忌状态表选择未禁忌的可行解,将其传输回主机端。
本实施例将待划分的任务图表示成无向图G(V,E)。其中,V={v1,v2,...,vn},代表待划分的任务节点集合。每个节点包含两个耗费,即节点划分为硬件时的耗费h(vi)和划分为软件时的耗费s(vi)。E代表节点之间的边集合,边上的权值表示当两个相邻节点属于不同的划分时,节点之间会产生相应的通信耗费c(vi,vj)。因此,P={VH,VS}称为一个软硬件划分,VH和VS满足VH∪VS=V。相应地,划分P的边集合定义为Ep={(vi,vj):vi∈VH,vj∈VS或者vi∈VS,vj∈VH}。附图2中的右上图为一个简单的待划分任务图。图中节点包含任务分别被划分为硬件或者软件时的执行耗费。边上的权值表示当连接的两个任务被划分为硬件和软件或者软件和硬件时产生的通信耗费。
划分P主要由3个耗费度量,即硬件耗费HP、软件耗费SP以及通信耗费CP。这3个耗费定义如下:
其中:hi表示节点i的硬件耗费(i=1,2...,n);vi表示表示任务图中划分为硬件的节点;vj表示任务图中划分为软件的节点;VH表示任务中的节点子集,该集合中的节点由硬件执行;VS表示任务中的节点子集,该集合中的节点由软件执行;EP表示任务图中连接处于两个不同划分集合的边集合;HP表示处于硬件节点集合中所有节点的硬件耗费的总和;SP表示处于软件节点集合中所有节点的硬件耗费的总和;CP表示任务图中连接处于两个不同划分集合的边集合的所权值之和,即被划分任务图的总的通信耗费。
通过上式,划分问题P定义如下:
问题P:给定图G和耗费函数s,h,c和R≥0。求在满足约束SP+CP≤R下,使得硬件耗费HP最小的一个软硬件划分P。
将划分P的解表示成n维向量X={x1,x2,...,xn}。分量xi=1时,表示节点由软件执行;xi=0时,表示节点由硬件执行。C(X)表示整个***的通信耗费。因此,问题P可以形式化为如下最小化问题:
其中,hi表示节点的硬件耗费,si表示节点的软件耗费。问题P的硬件耗费、软件耗费、以及通信耗费的计算公式如下:
问题P中,评价解是否满足约束的计算公式如下所示:
本实施的***平台为windows7,开发环境中串行部分实现的开发工具为VisualStudio2012,编程语言为C++;并行部分实现的开发工具为CUDA C 7.0版本。本发明的主要框架请见图1,以下为本发明实施例的具体步骤:
(1)为简化问题的讨论,假定软件划分的初始解通过某个算法产生,该算法在求解过程中没有对任务节点进行排序,那么初始解可以为图3中的当前解向量0101,解向量的映射向量同样为0101。解的软件耗费,硬件耗费和通信耗费分别为33,8,15。另外,假定任务节点是贪心启发式算法生成的,那么任务节点会按照硬件耗费与软件耗费的比率进行降序排序,那么初始解向量就为1001,而解向量的映射保持不变。
(2)将任务图进行转换,使得其能够适应GPU算法的执行。转换结果如图2中的左下图,其中,data数组表示任务图上边的通信耗费;row_ptr数组中下标 表示节点编号,下标中的元素表示该节点邻接的第一条通信边在data数组中的下标。比如,row_ptr数组中第0个元素代表任务图节点v1,那么v1与v2、v3具有邻接关系。邻接表的通信耗费分别为9和3,至于哪个节点是第一与v1邻接取决于具体编程实现,在本例中节点v2是第一个与v1邻接的节点,因此在row_ptr数组中第0个元素的值为0,表示第一个邻接节点上的通信耗费在data数组中的下标为0。同样的,节点v2、v3、v4的一个邻接节点在data数组中的下标为2,4,6,8。row_ptr数组的大小为节点的个数加1,最后一个元素表示data数组最后一个元素的下标,因此data数组的大小为任务图边数量的2倍。col_index数组表示data数组中的通信耗费对应的节点编号。
(3)算法的最大迭代周期数设置为2000,连续未改进周期数设置为200,禁忌表的长度设置为节点个数的开方。本实施中有4个节点,则禁忌表长度为√4,即为2。邻域规模为n*(n-1)/2,n为节点个数。因此,邻域规模为6。
(4)在GPU端开辟存储空间,包括当前解向量,大小为4的int类型数组;解向量的映射,大小为4的int类型;任务图的存储空间,包括大小为4+1即5的int类型的row_ptr数组、4*2+1即9的float类型的data数组、4*2即8的int类型的col_index数组;大小为2的int类型的禁忌表;int类型的邻域标示符数组、float类型的邻域软件耗费数组、float类型的邻域硬件耗费数组、float类型的邻域通信耗费数组以及int类型的邻域可行标识符数组的大小都为6;由于事先不知道可行解的数目,因此可行解数组的大小等于邻域规模,同样包括int类型的邻域标示符数组、float类型的邻域软件耗费数组、float类型的邻域硬件耗费数组以及float类型的邻域通信耗费数组。
(5)启动GPU端的内核需要配置线程规模。CUDA的线程组织包括线程网格和线程块;一个GPU内核对应一个线程网格,而一个线程网格至少由一个线程块组成,线程网格的规模代表启动该内核所需的线程块数量。一个线程块又至少由一个线程组成。所以启动一个GPU内核所需的线程总数=线程网格的大小*线程块的大小。本发明在GPU端运行的内核包括所有2翻转邻域的耗费计算以及约束评价、可行解的挑选以及可行解的禁忌评价共3个内核。其中,前两个内核的线程配置统一为邻域规模的大小。在本实施中领域规模为6,因此前两个内核的线程总数都设置为6即可。关于可行解的禁忌评价,在本实施中设置为3, 使用一个线程块,即线程网格大小为1。
(6)在计算邻域的耗费时,每个线程对应一个邻域,因此邻域编号由线程号以及线程块号,线程网格的大小共同决定,具体计算公式如下所示:
neibIdx=blockIdx.x×blockDim.x+threadIdx.x
上式中,neibIdx表示候选邻域的编号,blockIdx.x表示线程块的编号,blockDim.x表示线程块的大小,threadIdx.x表示线程块内每个线程的编号。值得注意的是,获取线程块和线程编号本身是CUDA C提供的内置变量,只需在实现时直接使用即可。
知道邻域编号后,还需要知道生成该编号对应的邻域所需要翻转的当前解向量的两个位置。为此,用pos1和pos2表示翻转当前解向量的2个下标,则具体通过下面两个式子求得:
其中,n表示带划分任务图的节点数量,neibIndex表示该邻域候选解的编号。因此可得生成该邻域候选解所需的第一个翻转位置pos1。继而可得生成邻域候选解所需的第二个翻转位置pos2。
如本实施为例,将编号0~5代入上式后,生成的邻域候选解即为附图3表示。
求得每个邻域的2个翻转位置后,根据翻转位置可以求得该邻域的软件耗费、硬件耗费、和通信耗费。以附图2为例子,已知当前解的软件耗费,硬件耗费和通信耗费在(1)求得分别为33,8,15。现在求候选邻域解向量为1001的3个耗费。该候选解是通过翻转位置0和位置1产生的。在位置0,分量从0到1,表示软件耗费增加,硬件耗费减少。在当前解软硬件耗费基础上,分别加上V1的软件耗费6,减去V1的硬件耗费3后,软硬耗费分别更新为39和5;同理,在位置1,分量从1到0,表示减去该点的软件耗费,增加该节点的硬件耗费,那么需要减去V2的软件耗费20,加上V2的硬件耗费14,该邻域的软硬耗费最终分别更新为19和19。该方法的优势在于利用当前解的已知信息,避免了按照 实施过程(1)中的公式重头开始造成的低效。
关于编号为0、解向量为1001的邻域通信耗费的计算,同样是利用已知当前解的通信耗费求得。具体为,翻转为位置0时,解向量变为1101,由于与节点V1邻接的节点中,节点V3处于不同的划分中,表示该边会产生通信耗费;相反,如果节点V2此时与V1处于同样的划分当中,则不会产生通信耗费。根据此条件,需要将通信耗费更新为15-9+3=9;同样地,翻转位置1时,解向量变为1001,与节点V2邻接的节点中,节点V1与节点V3都处于不同的划分中,因此这两条边都会产生通信耗费。将通信耗费更新为9+9+7=25,即为候选邻域解1001的实际通信耗费。
根据以上的方法即可求得其余候选邻域解的软件耗费、硬件耗费、通信耗费。最后,将每个候选邻域解的编号、软件耗费、硬件耗费和通信耗费写入对应的开辟的全局内存数组当中即可。结果如下表1所示:
表1.候选邻域的解及耗费
编号 | 解向量 | 软件耗费 | 硬件耗费 | 通信耗费 |
0 | 1001 | 19 | 19 | 25 |
1 | 1111 | 48 | 0 | 0 |
2 | 1100 | 26 | 10 | 10 |
3 | 0011 | 22 | 17 | 10 |
4 | 0000 | 0 | 27 | 0 |
5 | 0110 | 29 | 8 | 25 |
(7)由于本发明的软硬件划分算法的求解目标是带约束的,因此并非所有的候选邻域解都满足给定的约束条件,需要排除软件耗费和通信耗费之和不满足约束的解,保留满足约束的解。
假定问题P的约束为40,根据优化目标P,对候选邻域进行标示,满足约束为1;否则,为0。表2为邻域可行标识符数组中的结果。
表2.邻域可行标识结果
0 | 0 | 1 | 1 | 1 | 0 |
根据标示结果,通过在compaction算法保留满足约束的可行解。该算法通过附图4的过程实现。上式中,邻域编号为2,3,4的解的邻域编号,软件耗费, 硬件耗费和通信耗费被保留至GPU端可行解的对应数组中。表3为保存至可行解数组中的表示
表3.通过compaction被保留的邻域候选解
编号 | 2 | 3 | 4 | X | X | X |
软件耗费 | 26 | 10 | 10 | X | X | X |
硬件耗费 | 22 | 17 | 10 | X | X | X |
通信耗费 | 0 | 27 | 0 | X | X | X |
(8)根据表3、禁忌表、以及优化目标P,选择没有被禁忌的,且硬件耗费最小的邻域解。在本例中,由于是第1次迭代,禁忌表为空,所有可行解都可以被选择。在GPU端,执行此选择过程的算法为带禁忌状态表的reduction操作。标准reduction操作主要是指输入数组的求和,求最大值或者求最小值过程。最后,邻域编号为3的可行解的硬件耗费最小,因此选择该邻域解为下次迭代的当前解。
(9)将非禁忌的可行解的编号、软件耗费、硬件耗费和通信耗费传回CPU端。
(10)更新禁忌表。将生成当前解的邻域编号保存至禁忌表中。在本例中,由于是第一次迭代,所以当前解由初始解生成,没有索引进入禁忌表中。但在第二次迭代时,编号为3的可行邻域变为当前解,所以在更新禁忌表时,需要将此编号入禁忌表。同时,将禁忌状态表中的对应位置更新为1,表示该邻域被禁忌。
另外,当禁忌表满时,先解禁一个邻域标识符,同时将禁忌状态表的对应标识符位置的值更新为0。之后,再将当前解的邻域编号入禁忌表。
禁忌表是一个循环队列,入队和出队分别在表头和表尾进行。
(11)通过最佳未禁忌邻域标识符,将当前解向量进行转换,使之成为新的当前解向量,同时需要转换的还包括解向量的映射向量。用最佳未禁忌邻域的软件耗费、硬件耗费以及通信耗费更新当前解的对应耗费。值得一提地是,即使最佳未禁忌邻域的硬件耗费大于当前解的硬件耗费,仍然进行更新。
(12)更新解的全局耗费,具体为如果新的当前解的硬件耗费低于已有的全局耗费,则对全局耗费进行更新。在更新时,对参数连续未改进周期数清0;否则,该参数增1。当大于值大于200时,算法终止。
(13)将新的当前解向量解、向量的映射、软件耗费、硬件耗费、通信耗费、邻域禁忌状态表传输至GPU端。最大迭代周期数设置增1,如果大于2000,算法终止;否则,算法退出。
为验证本发明在基准测试集上的结果,表4给出所每个任务图的节点数n、边数m以及相应的问题规模size=2×n+3×m的大小:
表4.测试数据集
每个节点的软件耗费为[1,100]之间的均匀分布的随机数,硬件耗费为对应节点软件耗费的服从正态分布随机数;节点之间的通信耗费为区间[0,2·ρ·smax]之间的服从均匀分布的随机数。其中,smax为任务图中单个节点的软件耗费的最大值;ρ为通信-计算比(CCR),当ρ取值为0.1,1,10时,分别对应计算密集任务,中间型任务,以及通信密集型任务。约束R的取值分为两种情况:1)严格实时约束,取值为[0,1/2×∑si]之间的均匀分布的随机数;2)弱实时约束,取值为[1/2×∑si,∑si]之间均匀分布的随机数。因此,通信-计算比和约束R的组合一共有六种情况。
接下来,就CCR=1,R=high来说明本发明的优势,表5为该情况下与已有 的TABU方法的运行速度和质量的比较。其中,alg-ANTS表示本发明的串行实现,GANTS表示在GPU上的并行实现。在绝大多数情况下,本发明的运行时间都低于已有的alg-ANTS方法。
表5.CCR=1,R=high下ANTS和GANTS发明对解的改进程度和运行时间
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (10)
1.一种基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于,包括以下步骤:
步骤1:在主机端,获取软硬件划分的初始解以及相关信息;将初始解分别设置为当前解和全局最优解;
步骤2:在主机端将软硬件划分的任务图的数据表达方式进行转换;
步骤3:设置参数;初始化主机端所需的存储空间;初始化GPU端所需的存储空间;
步骤4:在主机端,将数据传输至GPU端,启动GPU端内核;
步骤5:在设备端,通过内核计算出最优候选邻域并将结果传回主机端;
步骤6:在主机端,更新禁忌表以及禁忌标示符;
步骤7:在主机端,更新当前解以及全局最优解;
步骤8:在主机端,判断是否满足停止准则;
若否,则返回至步骤4;
若是,则结束流程。
2.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤1中所述初始解是指通过启发式方法或随机方法求得的待划分任务图的硬件耗费;所述相关信息主要包括解向量、解向量的映射向量和初始解的软件耗费以及通信耗费;所述解向量是和硬件耗费对应的由0或者1组成的数组;所述解向量的映射向量是由0或者1组成的数组;主要保存任务图各节点被排序前的状态,用于后续的通信耗费的计算。
3.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤2中所述任务图的数据表达方式进行转换是指将任务图传输给GPU前,需要将邻接表的表示方式转换为适合在GPU端进行运算的压缩的稀疏行格式的表达方式。
4.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤3中所述参数主要包括最大迭代周期数、连续未改进周期数、禁忌表的长度、邻域的规模、候选邻域解集合中被选为当前解的邻域索引标识符、以及启动GPU内核所需的线程块大小以及线程块的个数;
所述主机端所需的存储空间包括禁忌表的存储空间,各个邻域候选解的禁忌状态的存储空间,保存当前解生成的全部2翻转邻域候选解的索引、软件耗费、硬件耗费、通信耗费的存储空间,最佳候选邻域的编号,软件耗费、硬件耗费、通信耗费的存储空间;
所述GPU端所需的存储空间包括当前解向量和当前解的映射向量的存储空间,各个邻域候选解的禁忌状态的存储空间,各个邻域候选解是否满足约束的状态标识符数组,任务图的压缩的稀疏行格式的存储空间,当前解生成的全部2翻转邻域候选解的索引、软件耗费、硬件耗费、通信耗费的存储空间,保存满足约束的可行邻域候选解的存储空间,最佳候选邻域的编号、软件耗费、硬件耗费、通信耗费的存储空间。
5.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤4中所述将数据传输至GPU端,传输的数据包括当前解的解向量、当前解向量的映射、当前解的软件耗费、硬件耗费和通信耗费、全局最优解的硬件耗费、软硬件划分的任务图、禁忌表;所述GPU端内核主要包括对2翻转邻域解的耗费计算内核、对满足约束的可行邻域解的进行挑选内核,以及对可行的邻域解进行禁忌评价的内核。
6.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于,步骤5中所述计算出最优候选邻域的过程包括以下子步骤:
步骤5.1:在GPU端,每个2翻转邻域为一个候选解;GPU并行地对每个候选解计算软件耗费、硬件耗费和通信耗费;计算完成后,根据软件耗费与通信耗费之和是否满足约束评价,将0或者1写入状态标识符数组的对应位置中;其中,0表示不满足约束;1表示满足约束;同时将邻域的标示符、软件耗费、硬件耗费和通信耗费写入GPU端申请的存储空间中;
步骤5.2:在GPU端,根据邻域状态标识符数组,通过并行Compaction算法,将状态标示符数组中标号为1的邻域存入GPU端满足约束的可行邻域候选解的存储空间中;
步骤5.3:在GPU端,通过禁忌表,并行地判断每个可行解是否在禁忌表里,若可行解不在禁忌表中并且在所有2翻转可行解中具有最小硬件耗费,则为最佳邻域候选解;如果可行邻域解在禁忌表中,但是其硬件耗费低于全局最优值,同样也被选择为最佳候选邻域。
7.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤5中所述传回主机端的结果主要为最佳候选邻域的编号、软件耗费、硬件耗费以及通信耗费。
8.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤6中所述在主机端更新禁忌表的过程是基于循环队列的先进先出,禁忌对象是当前解在上次迭代中的邻域标示符;更新禁忌标示符时,出队列的索引标号为0,同时进队列的索引标号为1。
9.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤7中所述更新当前解以及全局最优解,是用本次迭代选出的最佳邻域替代当前解,主要包括替换当前解的解向量、解向量的映射、硬件耗费、软件耗费、通信耗费、当前解的标示符;如果最佳邻域的耗费优于全局最佳硬件耗费,同样更新全局硬件耗费;当更新全局硬件耗费时,连续未改进周期数被清0。
10.根据权利要求1所述的基于GPU的自适应领域禁忌搜索求解软硬件划分方法,其特征在于:步骤8中所述停止准则主要是指执行步骤4至步骤8的循环次数或者达到了最大次数或者连续未改进周期数后,停止运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610212930.2A CN105844110B (zh) | 2016-04-07 | 2016-04-07 | 一种基于gpu的自适应邻域禁忌搜索求解软硬件划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610212930.2A CN105844110B (zh) | 2016-04-07 | 2016-04-07 | 一种基于gpu的自适应邻域禁忌搜索求解软硬件划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105844110A true CN105844110A (zh) | 2016-08-10 |
CN105844110B CN105844110B (zh) | 2018-07-06 |
Family
ID=56596844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610212930.2A Expired - Fee Related CN105844110B (zh) | 2016-04-07 | 2016-04-07 | 一种基于gpu的自适应邻域禁忌搜索求解软硬件划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105844110B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009013A (zh) * | 2017-12-25 | 2018-05-08 | 湖南大学 | 针对分离约束背包问题的一种协同的并行邻域搜索方法 |
CN112489501A (zh) * | 2020-11-26 | 2021-03-12 | 山东师范大学 | 一种禁忌搜索算法的教学演示***及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101017508A (zh) * | 2006-12-21 | 2007-08-15 | 四川大学 | 一种基于离散Hopfield神经网络的SoC软/硬件划分方法 |
US20150160715A1 (en) * | 2012-06-20 | 2015-06-11 | Intel Corporation | Power gating functional units of a processor |
-
2016
- 2016-04-07 CN CN201610212930.2A patent/CN105844110B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101017508A (zh) * | 2006-12-21 | 2007-08-15 | 四川大学 | 一种基于离散Hopfield神经网络的SoC软/硬件划分方法 |
US20150160715A1 (en) * | 2012-06-20 | 2015-06-11 | Intel Corporation | Power gating functional units of a processor |
Non-Patent Citations (2)
Title |
---|
UNMESH D. BORDOLOI: "GPU-based Accerleration of System-Level Design Tasks", 《INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING》 * |
杜敏 等: "并行K均值聚类和贪婪算法融合的软硬件划分", 《信息技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009013A (zh) * | 2017-12-25 | 2018-05-08 | 湖南大学 | 针对分离约束背包问题的一种协同的并行邻域搜索方法 |
CN112489501A (zh) * | 2020-11-26 | 2021-03-12 | 山东师范大学 | 一种禁忌搜索算法的教学演示***及方法 |
CN112489501B (zh) * | 2020-11-26 | 2022-06-24 | 山东师范大学 | 一种禁忌搜索算法的教学演示***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105844110B (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mansouri et al. | Hybrid task scheduling strategy for cloud computing by modified particle swarm optimization and fuzzy theory | |
Wu et al. | Ensemble strategies for population-based optimization algorithms–A survey | |
Sun et al. | A hybrid co-evolutionary cultural algorithm based on particle swarm optimization for solving global optimization problems | |
Cui et al. | Bat algorithm with principal component analysis | |
Ewees et al. | Enhanced salp swarm algorithm based on firefly algorithm for unrelated parallel machine scheduling with setup times | |
Li et al. | Hybrid optimization algorithm based on chaos, cloud and particle swarm optimization algorithm | |
Wu et al. | Ensemble of metaheuristic and exact algorithm based on the divide-and-conquer framework for multisatellite observation scheduling | |
CN107798423A (zh) | 基于多种智能算法的车辆路径规划仿真实验平台 | |
Li et al. | An adaptive whale optimization algorithm using Gaussian distribution strategies and its application in heterogeneous UCAVs task allocation | |
CN105929690A (zh) | 一种基于分解多目标进化算法的柔性车间鲁棒调度方法 | |
Li et al. | A hybrid algorithm based on particle swarm and chemical reaction optimization for multi-object problems | |
Jawarneh et al. | Sequential insertion heuristic with adaptive bee colony optimisation algorithm for vehicle routing problem with time windows | |
CN113807714B (zh) | 资源分配的方法、装置、设备、存储介质及程序产品 | |
Fahmy | A fuzzy algorithm for scheduling non-periodic jobs on soft real-time single processor system | |
Meng et al. | PaDE-NPC: Parameter adaptive differential evolution with novel parameter control for single-objective optimization | |
Jiang et al. | Dual-population artificial bee colony algorithm for joint observation satellite mission planning problem | |
Rawson et al. | Old or heavy? Decaying gracefully with age/weight shapes | |
CN105844110A (zh) | 一种基于gpu的自适应领域禁忌搜索求解软硬件划分方法 | |
Pavlov-Kagadejev et al. | Optimizing long-short-term memory models via metaheuristics for decomposition aided wind energy generation forecasting | |
Li et al. | Task scheduling of computational grid based on particle swarm algorithm | |
Xu et al. | An improved crow search algorithm based on oppositional forgetting learning | |
Zhou et al. | A novel mission planning method for UAVs’ course of action | |
Wu et al. | Historical information-based differential evolution for dynamic optimization problem | |
Wu et al. | Enhanced harmony search algorithm with circular region perturbation for global optimization problems | |
CN109901929A (zh) | 服务器等级约束下的云计算任务份额公平分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180706 Termination date: 20200407 |