CN111161126B - 一种基于gpu的并行进化算法的可靠性评估方法 - Google Patents

一种基于gpu的并行进化算法的可靠性评估方法 Download PDF

Info

Publication number
CN111161126B
CN111161126B CN201911302686.9A CN201911302686A CN111161126B CN 111161126 B CN111161126 B CN 111161126B CN 201911302686 A CN201911302686 A CN 201911302686A CN 111161126 B CN111161126 B CN 111161126B
Authority
CN
China
Prior art keywords
reliability
gpu
algorithm
evolution algorithm
error calibration
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.)
Active
Application number
CN201911302686.9A
Other languages
English (en)
Other versions
CN111161126A (zh
Inventor
金晨
罗喜伶
李云波
罗亨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Innovation Research Institute of Beihang University
Original Assignee
Hangzhou Innovation Research Institute of Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Innovation Research Institute of Beihang University filed Critical Hangzhou Innovation Research Institute of Beihang University
Priority to CN201911302686.9A priority Critical patent/CN111161126B/zh
Publication of CN111161126A publication Critical patent/CN111161126A/zh
Application granted granted Critical
Publication of CN111161126B publication Critical patent/CN111161126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Nonlinear Science (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于GPU的并行进化算法的可靠性评估方法。针对现有可靠性分析和验证方法无法对GPU并行进化算法带来的精度误差进行分析和可靠性进行评估的问题。本发明综合考虑CPU与GPU截然不同的编程方式和代码运行模式,首先设计全面的测试问题集以收集算法在不同场景下的数据;其次对基于GPU的并行进化算法的进行可靠性计算建模以量化分析GPU并行化所带来的精度偏差;最后结合测试集和可靠性计算模型,设计完整的可靠性验证流程对基于GPU的并行进化算法进行可靠性评估。

Description

一种基于GPU的并行进化算法的可靠性评估方法
技术领域
本发明涉及一种基于GPU的并行进化算法的可靠性评估方法,尤其适用于在英伟达GPU上部署基于CUDA的种群式进化算法的场景。
背景技术
进化算法已经被广泛地应用在解决一些不可导、不连续、非线性的优化问题上。但是,随着优化问题逐渐增大的规模和难度,进化算法暴露出其在运算速度上的缺陷--需要大量的运算时间来解决大规模的复杂优化问题。近年来,由于高性能的GPU计算设备和GPU编程环境(主要是CUDA)的普及,基于GPU的并行进化算法已经展现了极高的运行效率并因此受到了越来越多的关注。但是,尽管基于GPU的并行编程能够获得显著加速效果,其同时也会带来一些传统的基于CPU的串行编程所不会遇到的挑战。举例来说,由于GPU编程一般不提供线程锁,当多个GPU核心同时读写一个共享数据时,数据冲突很难避免;由于GPU编程缺乏直观可靠的调试环境,程序员往往无法有效地追踪和监视数千个并发线程的运行状态。因此,尽管在GPU上部署并行进化算法可以获得相比传统的基于CPU的串行算法更快的运行速度,同时也更容易导致误差增大,精度降低甚至错误输出等严重后果。这对一些需求高精度优化结果的实际问题来说是不可接受的,这也制约了基于GPU的并行进化算法在这类问题的应用。
因此,在使用基于GPU的并行进化算法解决实际问题前,对其可靠性进行评估显得非常重要。本发明提出了一种基于GPU的并行进化算法的可靠性评估方法,该发明包括测试问题集的构建,优化结果的误差建模和可靠性评估的流程设计在内的一整套检验方法,可以对基于GPU的并行进化算法的求解精度进行全面的分析和验证,确保其解决实际优化问题的可靠性。
相同算法部署在高性能GPU上往往可以获得显著的加速效果,但必须确保其不会出现显著丢失输出精度的问题,否则即使高达数千倍的加速也是毫无意义的。因此,对基于GPU的并行算法进行可靠性分析和验证就显得尤为重要,特别是将其应用于一些需求高精度数值的问题上。目前,已经有一些工作提出了基于GPU的并行应用的误差校验方案,比如Matlab GPU Coder提供了官方的接口函数为部署在Matlab上的GPU代码进行正确性验证和误差分析。但是相对于一般的GPU应用,进化算法具有更强的随机性并且算法流程也往往更加复杂。因此,即使许多研究者和开发者已经发现基于GPU的并行进化算法会带来不可避免的精度误差,目前仍然缺乏可行的解决方案来对此误差进行分析乃至对其可靠性进行评估。
发明内容
本发明的目的是克服现有技术的不足,提供一种通用的基于GPU的并行进化算法的可靠性计算方法。具体来说,本发明针对常见的进化算法(如遗传算法,蚁群算法等)的随机搜索特性,综合考虑CPU与GPU截然不同的编程方式和代码运行模式,对基于GPU的并行进化算法的优化求解精度进行分析并评估其可靠性。
本发明公开了一种基于GPU的并行进化算法的可靠性评估方法,其包括如下步骤:
S01:设置测试问题维度和可靠性阈值参数;
S02:在测试问题上独立重复采样并评估可靠性
对测试问题集中的每个问题和维度使用不同的随机数发生种子独立重复运行基于CPU和GPU的进化算法各N次;收集两者最终的最优解;根据可靠性计算模型和可靠性阈值参数,判断基于GPU的进化算法是否可靠;
S03:若计算的可靠性高于可靠性阈值参数则可靠性得到验证;否则进行误差校准操作,若经任何一个误差校准操作后,计算的可靠性高于可靠性阈值参数,则待测的基于GPU的进化算法的可靠性得到验证,结束流程;若所有误差校准操作执行以后仍然无法验证可靠性,则待测的基于GPU的进化算法的可靠性无法得到验证。
作为本发明的优选方案,所述的误差校准操作有多个,按执行优先级先后顺序进行执行。每个误差校准操作执行完毕后均返回步骤S02进行可靠性验证;仅当前一误差校准操作执行后,可靠性验证仍未通过时,再执行下一个误差校准操作。任何一个误差校准操作后,若计算的可靠性高于可靠性阈值参数,则待测的基于GPU的进化算法可靠性得到验证,方法结束。
所述的误差校准操作依据执行的优先顺序分别为:消除随机数引起的误差、消除浮点精度引起的误差和消除NVCC编译器引起的误差。
所述的消除随机数引起的误差具体为:判断并行进化算法是否采用了GPU特有的随机数发生器;若确实使用,则使用CPU标准的随机数发生器生成随机数数组并传输至GPU全局内存,在此之后,基于GPU的进化算法的所有随机数都来自该数组;反之,则跳过该误差校准操作。
所述的消除浮点精度引起的误差具体为:检查GPU代码是否使用了特殊的数值精度如半精度/混合精度浮点的变量,或者一些不符合IEEE-754浮点标准的运算操作符和数学函数如GPU端的sin()/cos()函数等。如存在这两类情况,则使用双精度浮点变量替换其他精度,并使用符合IEEE-754标准或精度更高的函数如sincos()等替换原始函数;反之,则跳过该误差校准操作。
所述的消除NVCC编译器引起的误差具体为:检查GPU代码是否在被NVCC编译时打开了CUDA编译器优化比如FMA开关,快速数学函数等选项。此类编译器优化虽然可以带来一定的运算速度提高,可是同时也会带来不可控的误差。因此,若存在编译器优化,则应关闭以避免可靠性的降低;反之,则跳过该误差校准操作,并结束误差校准。
作为本发明的优选方案,所述的可靠性计算模型为:
Figure BDA0002322262090000031
其中r是待求的可靠性指标,
Figure BDA0002322262090000032
和/>
Figure BDA0002322262090000033
Figure BDA0002322262090000034
分别是基于GPU和CPU在维度为d的测试函数f上进行N次独立重复试验的N个求解结果集合。/>
Figure BDA0002322262090000035
或/>
Figure BDA0002322262090000036
为基于CPU或者GPU算法的第i次的求解结果,D为所有待测的问题维度,F为所有待测问题。card(D)和card(F)分别表示测试的总的维度和问题数目。W(A,B)为基于统计的误差计算方式,其计算公式如下:/>
Figure BDA0002322262090000037
作为本发明的优选方案,使用Wilcoxon非参数检验对A,B进行统计相似性检验。即当p<0.05,A和B统计不相似,即A和B显著不同;否则A和B统计上相似,即A和B没有明显差别。
作为本发明的优选方案,从诸多广泛使用的数学函数中筛选出具有不同特征的5个测试函数并组成测试问题集(具体函数详见表1)。其中D是问题维度,维度越大,函数的包络复杂性越高。5个函数的求解范围内[-100,100],其最小值都是0且全局最优点为坐标零点X={0,0,…,0}。待测的优化算法结束时寻找到的函数最小值是f,其对应的优化解为X={x1,x2,…,xD}。
Figure BDA0002322262090000041
与现有技术相比,本发明具有的有益效果是:可以对基于GPU的并行进化算法的求解精度进行全面的分析和验证,确保其解决实际优化问题的可靠性。弥补了现有技术无法对随机性高和算法流程复杂的进化算法进行基于GPU运算平台的可靠性评估。另一个方面,本发明并不被特定的进化算法所限制,即其是一种通用的可靠性验证方法,可以对绝大部分常见的基于GPU的进化算法进行可靠性评估。
附图说明
图1为本发明的可靠性评估流程示意图。
具体实施方式
下面结合具体实施方式对本发明做进一步阐述和说明。本发明中各个实施方式的技术特征在没有相互冲突的前提下,均可进行相应组合。
以下将结合附图1和实施范例对本发明做进一步的详细说明。
本发明构造基于GPU的实值优化问题测试集。本发明从诸多广泛使用的数学函数中筛选出具有不同特征的5个测试函数并组成测试问题集(具体函数详见表1)。其中D是问题维度,维度越大,函数的包络复杂性越高。5个函数的求解范围内[-100,100],其最小值都是0且全局最优点为坐标零点X={0,0,…,0}。待测的优化算法结束时寻找到的函数最小值是f,其对应的优化解为X={x1,x2,…,xD}。
Figure BDA0002322262090000051
本发明提出了基于GPU的进化算法的可靠性计算模型。
根据测试问题集,本发明提出了相应的可靠性计算模型如下:
Figure BDA0002322262090000052
其中r是待求得可靠性指标,
Figure BDA0002322262090000053
和/>
Figure BDA0002322262090000054
Figure BDA0002322262090000055
分别是基于GPU和CPU在维度为d的测试函数f上进行N次独立重复试验的N个求解结果集合。/>
Figure BDA0002322262090000056
或/>
Figure BDA0002322262090000057
为基于CPU或者GPU算法的第i次的求解结果,由于采用了不同随机数种子,这N次的优化数值往往各不相同。D为所有待测的问题维度,F为所有待测问题。card(D)和card(F)分别表示测试的总的维度和问题数目。W(A,B)为基于统计的误差计算方式,其计算公式如下:/>
Figure BDA0002322262090000058
本发明使用Wilcoxon非参数检验对A,B进行统计相似性检验。即当p<0.05,A和B统计不相似,即A和B显著不同;否则A和B统计上相似,即A和B没有明显差别。
该可靠性模型实质上表征了基于GPU的并行进化算法与基于CPU的常规进化算法在多个测试问题上保持统计相似的比例r。最终,其是否可靠依赖于r与预设的可靠性阈值R的大小。若r>R,则算法的可靠性得到验证,反之则算法无法达到要求的可靠性。可靠性阈值R取决于不同的优化问题和用户需求,当用户需要解决精度要求高的优化问题时,需要设置相对较高的可靠性阈值R,但这会对算法的设计和实现提出更高的要求;反之,较低的R可以满足精度要求低的问题,但是也存在求解精度与CPU常规算法略有偏差的风险。
本发明提出了一整套基于GPU的进化算法的可靠性评估流程
根据测试问题集和可靠性计算模型,本发明提出了一种针对实值优化的基于GPU的进化算法可靠性评估流程。图1为其操作流程,其主要包括以下几个步骤
步骤1:设置测试问题维度和可靠性阈值参数:配置测试问题的维度。为确保全面测试优化算法在不同复杂度场景下的性能,维度覆盖应具有较大的范围。可靠性阈值应根据实际问题的需求设置,对高精度场景,应设计较高的可靠性阈值;对精度要求不高的场景,可考虑设置较低的阈值。
步骤2:在测试问题上独立重复采样并评估可靠性:对上述测试问题集中的每个问题和维度使用不同的随机数发生种子独立重复运行基于CPU和GPU的进化算法各N次。收集两者最终的最优解。根据可靠性计算模型和可靠性阈值参数,判断基于GPU的进化算法是否可靠。
步骤3:若步骤2无法验证可靠性,则对基于GPU的进化算法进行三个误差校准操作以排除系统误差的干扰。具体来说,在完成每个校准操作后,进行步骤2的可靠性验证。若其中任何一个操作后可靠性得到验证,则结束流程,反之若所有误差校准操作执行以后仍然无法验证可靠性,则待测的基于GPU的进化算法的可靠性无法得到验证,即其输出存在较大的误差。三个误差校准操作根据其对可靠性(从大到小)和加速性能(从小到大)的影响排序如下:
1)消除随机数引起的误差。作为随机搜索算法,进化算法的优化结果与随机数有关。因此,校准工作需要消除随机数对可靠性验证的影响。首先判断并行进化算法是否采用了GPU特有的随机数发生器。若确实使用,则使用CPU标准的随机数发生器生成随机数数组并传输至GPU全局内存。在此之后,基于GPU的进化算法的所有随机数都来自该数组。
2)消除浮点精度引起的误差。检查GPU代码是否使用了特殊的数值精度如半精度/混合精度浮点的变量,或者一些不符合IEEE-754浮点标准的运算操作符和数学函数如GPU端的sin()/cos()函数等。如存在这两类情况,则使用双精度浮点变量替换其他精度,并使用符合IEEE-754标准或精度更高的函数如sincos()等替换原始函数。
3)消除NVCC编译器引起的误差。检查GPU代码是否在被NVCC编译时打开了CUDA编译器优化比如FMA开关,快速数学函数等选项。此类编译器优化虽然可以带来一定的运算速度提高,可是同时也会带来不可控的误差。因此,若存在编译器优化,则应关闭以避免可靠性的降低。
以下为一组具体的应用实例,本范例对一种基于GPU的差分进化算法进行可靠性评估,具体步骤如下:
步骤一:设置测试问题维度和可靠性阈值参数。待测问题共设置有15个维度涵盖2到1000的范围,分别为D={2,4,6,8,10,20,40,60,80,100,200,400,600,800,1000},独立重复测试次数设置为30次。可靠性阈值设置为95%。
步骤二:在测试问题上进行独立重复采样并评估可靠性。算法首先展现了强劲的加速能力,以维度100的Sphere函数为例,其运算速度达到CPU串行差分进化算法的186.58倍。但是进行可靠性评估后结果表明基于CPU和GPU的差分进化算法在55个测试样例上保持统计相似,在剩余20个样例上出现统计显著不同。计算得可靠性指标为73.33%,远低于阈值95%。因此在进行校准前,该基于GPU的差分进化算法的可靠性验证失败,即当前算法无法提供满足精度要求的可靠性。
步骤三:检查基于GPU的差分进化算法使用的随机数发生器。经过对代码的检查可以确定其随机数发生器为CUDA随机函数库cuRAND的device API,其为GPU特有的随机数发生器,通过XORWOW算法并行生成随机数。
步骤四:统一随机数发生器并重复步骤二。调整GPU算法和代码,即在算法开始阶段调用CPU的rand()标准随机数发生器生成大量的随机数并以数组形式储存在系统RAM中,然后将该数组传输至GPU的全局内存中。所有基于GPU的差分进化算法所需的随机数都从该数组中读取。重复步骤二,统计相似的样例数目上升至68个,计算其可靠性为90.67%,虽然已经明显高于之前,但是距离阈值还有一定差距。
步骤五:检查基于GPU的差分进化算法所使用的数值精度。代码显示其变量皆采用单精度浮点以提高运算速度而非CPU代码常用的双精度浮点。其次还发现该代码使用了一些快速数学函数如__fdividef()等来加速数值计算的速度。
步骤六:提高数值计算的浮点精度并重复步骤二。将代码中所有的单精度浮点变量替换为双精度浮点变量。除此之外。将所有的快速数学函数替换为支持IEEE-754标准的普通数学函数。重复步骤二,统计相似的样例数目上升至71个,计算得到的可靠性为94.67%仍然小于95%。
步骤七:关闭编译器优化并重复步骤二。关闭编译器优化,--use_fast_math=false,--opt-level=0。重复步骤二后计算其可靠性发现其74个测试样例上获得统计相似,可靠性指标上升至98.67%。满足可靠性的阈值指标,因此该算法的可靠性得到验证。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (6)

1.一种基于GPU的并行进化算法的可靠性评估方法,其特征在于包括如下步骤:
S01:设置测试问题维度和可靠性阈值参数;
S02:在测试问题上独立重复采样并评估可靠性
对测试问题集中的每个问题和维度使用不同的随机数发生种子独立重复运行基于CPU和GPU的进化算法各N次;收集两者最终的最优解;根据可靠性计算模型和可靠性阈值参数,判断基于GPU的进化算法是否可靠;
所述的可靠性计算模型为:
Figure FDA0004120246080000011
其中r是待求的可靠性指标,
Figure FDA0004120246080000012
和/>
Figure FDA0004120246080000013
Figure FDA0004120246080000014
分别是基于GPU和CPU在维度为d的测试函数f上进行次独立重复试验的N个求解结果集合;/>
Figure FDA0004120246080000015
或/>
Figure FDA0004120246080000016
为基于CPU或者GPU算法的第i次的求解结果,D为所有待测的问题维度,F为所有待测问题;card(D)和card(F)分别表示测试的总的维度和问题数目;W(A,B)为基于统计的误差计算方式,其计算公式如下:/>
Figure FDA0004120246080000017
使用Wilcoxon非参数检验对A,B进行统计相似性检验;当p<0.05,A和B统计不相似,即A和B显著不同;否则A和B统计上相似,即A和B没有明显差别;
若r>R,则算法的可靠性得到验证,反之则算法无法达到要求的可靠性,R为可靠性阈值;
S03:若计算的可靠性高于可靠性阈值参数则可靠性得到验证;否则进行误差校准操作,若经任何一个误差校准操作后,计算的可靠性高于可靠性阈值参数,则可靠性得到验证,结束流程;若所有误差校准操作执行以后仍然无法验证可靠性,则待测的基于GPU的进化算法的可靠性无法得到验证。
2.根据权利要求1所述的基于GPU的并行进化算法的可靠性评估方法,其特征在于,所述的误差校准操作有多个,按优先级先后顺序以此进行执行;且每个误差校准操作执行完毕后均返回步骤S02进行可靠性验证;仅当前一误差校准操作执行后,可靠性验证仍未通过时,再执行下一个误差校准操作;任何一个误差校准操作后,若计算的可靠性高于可靠性阈值参数,则可靠性得到验证,方法结束。
3.根据权利要求1所述的基于GPU的并行进化算法的可靠性评估方法,其特征在于,所述的误差校准操作依据执行的优先顺序分别为:消除随机数引起的误差、消除浮点精度引起的误差和消除NVCC编译器引起的误差。
4.根据权利要求3所述的基于GPU的并行进化算法的可靠性评估方法,其特征在于,所述的消除随机数引起的误差,具体为:判断并行进化算法是否采用了GPU特有的随机数发生器;若确实使用,则使用CPU标准的随机数发生器生成随机数数组并传输至GPU全局内存,在此之后,基于GPU的进化算法的所有随机数都来自该数组。
5.根据权利要求3所述的基于GPU的并行进化算法的可靠性评估方法,其特征在于,所述的消除浮点精度引起的误差,具体为:检查GPU代码是否使用了非双精度浮点的变量,或者不符合IEEE-754浮点标准的运算操作符和数学函数;如存在这两类情况,则使用双精度浮点变量替换原变量,并使用符合IEEE-754标准或精度更高的函数替换原始函数。
6.根据权利要求3所述的基于GPU的并行进化算法的可靠性评估方法,其特征在于,所述的消除NVCC编译器引起的误差,具体为:检查GPU代码是否在被NVCC编译时打开了CUDA编译器优化,若存在编译器优化,则关闭。
CN201911302686.9A 2019-12-17 2019-12-17 一种基于gpu的并行进化算法的可靠性评估方法 Active CN111161126B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911302686.9A CN111161126B (zh) 2019-12-17 2019-12-17 一种基于gpu的并行进化算法的可靠性评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911302686.9A CN111161126B (zh) 2019-12-17 2019-12-17 一种基于gpu的并行进化算法的可靠性评估方法

Publications (2)

Publication Number Publication Date
CN111161126A CN111161126A (zh) 2020-05-15
CN111161126B true CN111161126B (zh) 2023-06-09

Family

ID=70557561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911302686.9A Active CN111161126B (zh) 2019-12-17 2019-12-17 一种基于gpu的并行进化算法的可靠性评估方法

Country Status (1)

Country Link
CN (1) CN111161126B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779207A (zh) * 2012-06-19 2012-11-14 北京航空航天大学 基于OpenCL的并行差分进化算法的翼型优化设计方法
CN104881848A (zh) * 2015-05-14 2015-09-02 西安电子科技大学 一种基于cuda的低照度图像增强并行优化方法
CN108804220A (zh) * 2018-01-31 2018-11-13 中国地质大学(武汉) 一种基于并行计算的卫星任务规划算法研究的方法
US10379868B1 (en) * 2019-02-04 2019-08-13 Bell Integrator Inc. Optimization method with parallel computations
CN110135584A (zh) * 2019-03-30 2019-08-16 华南理工大学 基于自适应并行遗传算法的大规模符号回归方法及系统
CN110413776A (zh) * 2019-07-01 2019-11-05 武汉大学 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515431B2 (en) * 2017-12-12 2019-12-24 Intel Corporation Global optimal path determination utilizing parallel processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779207A (zh) * 2012-06-19 2012-11-14 北京航空航天大学 基于OpenCL的并行差分进化算法的翼型优化设计方法
CN104881848A (zh) * 2015-05-14 2015-09-02 西安电子科技大学 一种基于cuda的低照度图像增强并行优化方法
CN108804220A (zh) * 2018-01-31 2018-11-13 中国地质大学(武汉) 一种基于并行计算的卫星任务规划算法研究的方法
US10379868B1 (en) * 2019-02-04 2019-08-13 Bell Integrator Inc. Optimization method with parallel computations
CN110135584A (zh) * 2019-03-30 2019-08-16 华南理工大学 基于自适应并行遗传算法的大规模符号回归方法及系统
CN110413776A (zh) * 2019-07-01 2019-11-05 武汉大学 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TEWOLDE G S.Multi-swarm paral-lel PSO:hardware implementation.《Proc of IEEE Swarm Intelli-gence Symposium》.2009,第60-66页. *
蔡勇.基于CUDA的并行粒子群优化算法的设计与实现.计算机应用研究.2013,(第08期),第181-184页. *
蔡勇.差分进化算法的细粒度并行计算方法及其应用.计算机仿真.2016,(第10期),第259-263页. *

Also Published As

Publication number Publication date
CN111161126A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
US9158514B2 (en) Method and apparatus for providing change-related information
EP2485149A1 (en) Symbolic execution and test generation for programs to be run on a graphic processor
US7315973B1 (en) Method and apparatus for choosing tests for simulation and associated algorithms and hierarchical bipartite graph data structure
US9223685B2 (en) Validating a specification associated with a software application and/or a hardware
US7076776B2 (en) Parallel loop transformation methods for race detection during an execution of parallel programs
Emmer et al. Encoding industrial hardware verification problems into effectively propositional logic
CN112380046A (zh) 计算结果校验方法、系统、装置、设备及存储介质
US20220197764A1 (en) Quantum diagnostic circuit and quantum characteristic diagnostic method
US8996922B2 (en) Mixed numeric and string constraint analysis
CN111161126B (zh) 一种基于gpu的并行进化算法的可靠性评估方法
Guerrero Balaguera et al. Understanding the Effects of Permanent Faults in GPU's Parallelism Management and Control Units
CN112948193A (zh) 一种基于差异测试的fpga综合工具缺陷检测方法
CN112685316A (zh) 代码执行路径的获取方法、装置、计算机设备及存储介质
US7231619B1 (en) Extended model checking hardware verification
Almadi et al. New methods and tools for design of tests memory
CN104317706B (zh) 一种基于预运算的程序变异软件错误定位方法
CN109933948B (zh) 一种形式验证方法、装置、形式验证平台及可读存储介质
CN114064489A (zh) 一种自动化测试方法、装置、设备及可读存储介质
JP2022124240A (ja) 診断パターン生成方法及び計算機
Dudka et al. Predator: A Verification Tool for Programs with Dynamic Linked Data Structures: (Competition Contribution)
CN111881055A (zh) 军用软件评测规范的Simulink模型设计方法
Jain et al. Contextual Predictive Mutation Testing
Beckert et al. Heuristically creating test cases for program verification systems
Dong A sound abstract memory model for static analysis of C programs
Bulej et al. SPL: Unit testing performance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant