CN113835984B - 一种基于国产超算微架构的众核应用性能评估方法 - Google Patents

一种基于国产超算微架构的众核应用性能评估方法 Download PDF

Info

Publication number
CN113835984B
CN113835984B CN202111135266.3A CN202111135266A CN113835984B CN 113835984 B CN113835984 B CN 113835984B CN 202111135266 A CN202111135266 A CN 202111135266A CN 113835984 B CN113835984 B CN 113835984B
Authority
CN
China
Prior art keywords
time
core
data
size
cpe
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
CN202111135266.3A
Other languages
English (en)
Other versions
CN113835984A (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.)
Shandong Computer Science Center National Super Computing Center in Jinan
Original Assignee
Shandong Computer Science Center National Super Computing Center in Jinan
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 Shandong Computer Science Center National Super Computing Center in Jinan filed Critical Shandong Computer Science Center National Super Computing Center in Jinan
Priority to CN202111135266.3A priority Critical patent/CN113835984B/zh
Publication of CN113835984A publication Critical patent/CN113835984A/zh
Application granted granted Critical
Publication of CN113835984B publication Critical patent/CN113835984B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于国产超算微架构的众核应用性能评估方法。本发明针对神威国产超级计算机系统Athread并行编程模式中,线程组任务分发和结束、数据传输、数据计算、从核同步与通信等主要流程,根据大量不同规模的实际算例运行数据,拟合出对应的时间运行模型,且误差在10%以内,能有效的评估众核应用程序的运行性能。

Description

一种基于国产超算微架构的众核应用性能评估方法
技术领域
本发明具体涉及一种基于国产超算微架构的众核应用性能评估方法,属于超级计算机性能评估的技术领域。
背景技术
随着国产超级计算机的发展,“应用”在国产超级计算机平台上的性能越来越受到重视,因而急需有效的众核性能评估方法来辅助开发人员进行超级计算机性能的优化。
国产神威系列超级计算机的CPU芯片上每个核组包含1个运算控制核心(主核)和1个运算核心阵列(从核阵列),运算核心阵列由64个运算核心(从核)、阵列控制器、二级指令Cache构成,所有核组的物理空间统一编址,工作频率为1.45GHZ。运算控制核心和运算核心均可以访问芯片上所有的主存空间,但运算核心通过DMA通道访问从核局存空间更高效。基于国产CPU微型架构的特点,为了更好的发挥众核的计算能力,必须建立能有效评估从核性能的方法。
针对上述问题,现有技术中的一些规范可以实现对程序的部分代码性能进行准确、有效的评估,但缺乏系统、全面,且对一般众核代码都有效的性能评估模型;尤其是在众核优化过程中,优化方式多种多样,有时需要具体场景具体分析,对性能评估模型的建立带来巨大挑战。
例如,在清华大学薛巍、黄晓猛等人在《Taming the Monster_OvercomingProgram Optimization Challenges on SW26010》论文中提出一种基于SW26010的模型;该模型是根据内存带宽、置换页面大小以及访存时延等机器参数得到的一种理论上精确的性能模型。
发明内容
针对现有技术的不足,本发明提供了一种基于国产超算微架构的众核应用性能评估方法。
发明概述:本发明针对神威国产超级计算机系统Athread并行编程模式中,线程组任务分发(spawn)和结束(join)、数据传输(athread_get/athread_put)、数据计算、从核同步与通信等主要流程,根据大量不同规模的实际算例运行数据,拟合出对应的时间运行模型,且误差在10%以内,能有效的评估众核应用程序的运行性能。本发明默认用户众核程序能正常运行且运行结果正确。
术语解释:
Athread:神威国产超级计算机系统中的加速线程库接口。
athread_get/athread_put:加速线程库中读入/写回数据接口。
spawn/join:加速线程库的启动/结束接口。
DMA:从核的局存和主存之间的快速数据传输通道。
RMA/RLD:从核之间的通信方式。
本发明的技术方案为:
一种基于国产超算微架构的众核应用性能评估方法,具体方法如下:
1)模型输入包括Lat_SPM、n_v、n_scalar_i、n_scalar、n_arr_i_get、n_arr_ge、n_arr_i_put、n_arr_put、d_size、n_iasm、n_iasmi、n_dasm、n_ddiv、n_cmp、n_1d、n_2d、n_3d、n_i_siz、n_size、n_cpe、n_mb、n_syn、n_cpe_comm、T_cpe、n_cmp、n_gsize、n_psize、T_g1、T_p1、n_core;
其中,Lat_SPM为从核局存访问的时延,单位是cycles;n_v为数组变量的个数;n_scalar_i为整型标量个数;n_scalar为浮点型标量个数;n_arr_i_get为读入的整型数组的个数;n_arr_get为读入的浮点型数组的个数;n_arr_i_put为输出的整型数组的个数;n_arr_put为输出的浮点型数组的个数;d_size为单个数组的大小;n_iasm为循环外,整数加、减、乘指令的次数;n_iasmi为循环内,整数加、减、乘指令的次数;n_dasm为浮点加、减、乘指令的次数;n_ddiv为浮点除法指令的次数;n_cmp为比较与跳转指令的次数;n_1d为第一维及以上的维数大小;n_2d为第二维及以上的维数大小;n_3d为第三维及以上的维数大小;n_i_size为单次dma的整型数据量;n_size为单次dma的浮点型数据量;n_cpe为使用的从核数;n_mb为从核局存更新的次数;n_syn为从核间同步的次数;n_cpe_comm为从核间通信的次数;T_cpe为从核通信时间;n_cmp为比较与跳转指令的次数;n_gsize为读入数据单次传输量;n_psize为写入数据单次传输量;T_g1为单次读入固定数据量下的时间;T_p1为单次写入固定数据量下的时间;n_core为从核通信次数;
2)模型输出变量包括T_tran、T_comp、T_spawjoin、T_syn、T_overlap、T_total;输出变量的单位均为cycle;
其中,T_tran为数据传输的时间;T_comp为计算的拍数;T_spawjoin为从核启动与结束的时间;T_syn为同步的时间;T_overlap为计算与通信重叠的时间;T_total为总运行时间;
3)T_tran的计算
T_tran=T_get+T_put+T_gld (1)
在公式1中,T_get为读入数据athread_get时间,T_put为写入数据athread_put时间,T_gld为从核数据访问主存时间;
3.1)读入数据时间T_get
D_gsize=min(d_size/n_cpe,n_size) (2)
公式(2)求出每个从核读入的数据总量与n_size的最小值,即为每个数组单次读入的数据量D_gsize;
每个数组读入数据的次数:
则,T_get=T_g1*n_get*n_arr_get (4)
其中,T_g1为经验值;
T_get等于每个数组单次读入时间乘以每个数组读入数据的次数,再乘以读入数组的个数;T_g1为单次读入某个数据量下的经验值,此值大小通过大量不同规模的算例运行出的数据拟合而成;
3.2)写入数据时间T_put
D_psize=min(d_size/n_cpe,n_size) (5)
n_cpe,n_size这两个参数一般是常数定值,d_size由具体程序确定,一般也为常数;D_gsize与D_pgsize一个读入一个写入,其计算方式相同,得到的数值大小也相同;
每个数组写入数据的次数:
则,T_put=T_p1*n_put*n_arr_Put (7)
其中,T_p1为经验值;
T_p1为单次写入某个数据量下的经验值,此值大小通过大量不同规模的算例运行数据拟合成。T_put等于每个数组单次写入时间乘以每个数组写入次数乘以写入数组的个数。
4)T_comp的计算
T_comp=n_iasm*tia+(n_iasmi*tia+n_dasm*tda+n_ddiv*tdd)/2+n_cmp*tcm+T_cpe(8)
其中,tia、tda、tdd和tcm为每条指令周期的经验值;tia为整数加、减、乘运算的指令周期,tda为浮点数据加、减、乘运算的指令周期,tdd为浮点数据除法、幂运算的指令周期,tcm为跳转、比较运算的指令周期。
在公式(8)中:
◆计算的耗时=指令次数*单次指令的周期;
◆计算指令的次数是基于从核函数模板的统计方法;
◆输入的整型变量,在循环外记作单次,在循环内记作多次;
◆输入的浮点型变量,在循环外记作单次,在循环内记作多次;
◆在数据计算中,存在循环展开优化,每次迭代计算两个元素;
◆计算耗时主要统计四则运算、跳转,比较、数学函数等指令周期。
5)T_spawnjoin的计算
其中,3MB为程序中所需分配的内存空间,根据当前程序中分配的内存空间大小,计算出对应从核下的时间。公式中的常数(7000、9000等)通过大量不同规模的算例运行数据拟合得到。
6)T_syn的计算
T_syn=n_mb*3+n_syn*14 (10)
在公式(10)中,n_mb*3为数据传输同步指令asm volatile(“memb”)所花费的时间,n_syn*14为从核间同步函数athread_syn(ARRAY_SCOPE,-1)所花费的时间;
其中,asm volatile、athread_syn是函数,asm volatile(“memb”)、athread_syn(ARRAY_SCOPE,-1)分别是一个整体,括号内是参数;因而需要保留“()”。
7)T_overlap的计算
T_overlap=(n_iasm+n_dasm+n_ddiv+n_cmp)*Lat_SPM (11)
计算重叠时间是指,在计算之前把没有依赖关系的数据先从局存中预取出来。
8)众核程序运行的总时间
T_total=T_tran+T_comp+T_spawnjoin+T_syn-T_overlap (12)
众核性能总时间等于数据传输时间、数据计算时间、线程组任务分发与结束时间和从核同步时间总和,再减去计算的重叠时间。
优选的,公式(8)中tia=3cycles,tda=9cycles,tdd=34cycles,tcm=4cycles;公式(10)中n_mb*3=3cycles,n_syn*14=14cycles。
优选的,T_gld=0。访问主存的指令包括gld、gst等中的一个或多个,每条指令的访问时间约为278cycle;当程序优化到一定程度后,从核将完全通过DMA通道进行数据访问,就不存在gld、gst等指令访问主存时间,此时T_gld默认为0。
优选的,公式(8)中如果没有从核通信,则T_cpe=0,如果从核通信数据量≥8个double,则从核通信方式选择RMA,RMA每次通信的时间为100cycles,此时T_cpe=100*n_core;如果从核通信数据量<8个double,则从核通信方式选择RLD,RLD每次通信时间为20cycles,此时T_cpe=20*n_core。其中,double指的是双精度浮点型数据,双精度浮点型数据占8个字节的内存空间,属于实型变量的一种变量类型。
优选的,D_gsize与T_g1的对应关系如下:
当D_gsize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_g1分别为820、950、1350、2300、4100、6200、11200、23700;其中,T_g1的单位为cycle;
D_psize与T_p1的对应关系如下:
当D_psize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_p1分别为2800、3000、3400、4000、5600、10700、17700、35500;T_p1的单位为cycle。
本发明的有益效果为:
1.本发明在超算环境下通过对大量不同规模的实际算例运行的数据进行分析和总结,得到经验值,在经验值的基础上建立模型,并在数据计算中考虑了循环展开对于计算性能模型的影响,拟合出的程序运行时间模型精确度高,通用性好;
2.本发明是一种基于国产超算微架构的众核应用性能评估方法,该方法预估时间与实际众核程序运行时间误差在10%以内,能提前、准确预估出众核应用的性能情况,为众核优化人员提供重要的性能参考数据,提高众核应用的移植优化效率;
3.本发明的方法为在国产超算环境上程序优化方法的选择上提供了理论依据,降低了神威国产超级计算机的使用难度。
附图说明
图1为众核应用性能评估方法的结构图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
一种基于国产超算微架构的众核应用性能评估方法,具体方法如下:
1)模型输入包括Lat_SPM、n_v、n_scalar_i、n_scalar、n_arr_i_get、n_arr_ge、n_arr_i_put、n_arr_put、d_size、n_iasm、n_iasmi、n_dasm、n_ddiv、n_cmp、n_1d、n_2d、n_3d、n_i_siz、n_size、n_cpe、n_mb、n_syn、n_cpe_comm、T_cpe、n_cmp、n_gsize、n_psize、T_g1、T_p1、n_core;
其中,Lat_SPM为从核局存访问的时延,单位是cycles;n_v为数组变量的个数;n_scalar_i为整型标量个数;n_scalar为浮点型标量个数;n_arr_i_get为读入的整型数组的个数;n_arr_get为读入的浮点型数组的个数;n_arr_i_put为输出的整型数组的个数;n_arr_put为输出的浮点型数组的个数;d_size为单个数组的大小;n_iasm为循环外,整数加、减、乘指令的次数;n_iasmi为循环内,整数加、减、乘指令的次数;n_dasm为浮点加、减、乘指令的次数;n_ddiv为浮点除法指令的次数;n_cmp为比较与跳转指令的次数;n_1d为第一维的维数大小;n_2d为第二维的维数大小;n_3d为第三维及以上的维数大小;n_i_size为单次dma的整型数据量;n_size为单次dma的浮点型数据量;n_cpe为使用的从核数;n_mb为从核局存更新的次数;n_syn为从核间同步的次数;n_cpe_comm为从核间通信的次数;T_cpe为从核通信时间;n_cmp为比较与跳转指令的次数;n_gsize为读入数据单次传输量;n_psize为写入数据单次传输量;T_g1为单次读入固定数据量下的时间;T_p1为单次写入固定数据量下的时间;n_core为从核通信次数;
2)模型输出变量包括T_tran、T_comp、T_spawjoin、T_syn、T_overlap、T_total;输出变量的单位均为cycle;
其中,T_tran为数据传输的时间;T_comp为计算的拍数;T_spawjoin为从核启动与结束的时间;T_syn为同步的时间;T_overlap为计算与通信重叠的时间;T_total为总运行时间;
3)T_tran的计算
T_tran=T_get+T_put+T_gld (1)
在公式1中,T_get为读入数据athread_get时间,T_put为写入数据athread_put时间,T_gld为从核数据访问主存时间;
3.1)读入数据时间T_get
D_gsize=min(d_size/n_cpe,n_size) (2)
公式(2)求出每个从核读入的数据总量与n_size的最小值,即为每个数组单次读入的数据量D_gsize;
每个数组读入数据的次数:
则,T_get=T_g1*n_get*n_arr_get (4)
其中,T_g1为经验值;
T_get等于每个数组单次读入时间乘以每个数组读入数据的次数,再乘以读入数组的个数;T_g1为单次读入某个数据量下的经验值,此值大小通过大量不同规模的算例运行出的数据拟合而成;
3.2)写入数据时间T_put
D_psize=min(d_size/n_cpe,n_size) (5)
n_cpe,n_size这两个参数一般是常数定值,d_size由具体程序确定,一般也为常数;D_gsize与D_pgsize一个读入一个写入,其计算方式相同,得到的数值大小也相同;
每个数组写入数据的次数:
则,T_put=T_p1*n_put*n_arr_Put(7)
其中,T_p1为经验值;
T_p1为单次写入某个数据量下的经验值,此值大小通过大量不同规模的算例运行数据拟合成。T_put等于每个数组单次写入时间乘以每个数组写入次数乘以写入数组的个数。
4)T_comp的计算
T_comp=n_iasm*tia+(n_iasmi*tia+n_dasm*tda+n_ddiv*tdd)/2+n_cmp*tcm+T_cpe(8)
其中,tia、tda、tdd和tcm为每条指令周期的经验值;tia为整数加、减、乘运算的指令周期,tda为浮点数据加、减、乘运算的指令周期,tdd为浮点数据除法、幂运算的指令周期,tcm为跳转、比较运算的指令周期。
在公式(8)中:
◆计算的耗时=指令次数*单次指令的周期;
◆计算指令的次数是基于从核函数模板的统计方法;
◆输入的整型变量,在循环外记作单次,在循环内记作多次;
◆输入的浮点型变量,在循环外记作单次,在循环内记作多次;
◆在数据计算中,存在循环展开优化,每次迭代计算两个元素;
◆计算耗时主要统计四则运算、跳转,比较、数学函数等指令周期。
5)T_spawnjoin的计算
其中,3MB为程序中所需分配的内存空间,根据当前程序中分配的内存空间大小,计算出对应从核下的时间。公式中的常数(7000、9000等)通过大量不同规模的算例运行数据拟合得到。
6)T_syn的计算
T_syn=n_mb*3+n_syn*14 (10)
在公式(10)中,n_mb*3为数据传输同步指令asm volatile(“memb”)所花费的时间,n_syn*14为从核间同步函数athread_syn(ARRAY_SCOPE,-1)所花费的时间;
其中,asm volatile、athread_syn是函数,asm volatile(“memb”)、athread_syn(ARRAY_SCOPE,-1)分别是一个整体,括号内是参数;因而需要保留“()”。
7)T_overlap的计算
T_overlap=(n_iasm+n_dasm+n_ddiv+n_cmp)*Lat_SPM (11)
计算重叠时间是指,在计算之前把没有依赖关系的数据先从局存中预取出来。
8)众核程序运行总时间
T_total=T_tran+T_comp+T_spawnjoin+T_syn-T_overlap (12)
众核性能总时间等于数据传输时间、数据计算时间、线程组任务分发与结束时间和从核同步时间总和,再减去计算的重叠时间。
公式(8)中tia=3cycles,tda=9cycles,tdd=34cycles,tcm=4cycles;公式(10)中n_mb*3=3cycles,n_syn*14=14cycles。
T_gld=0。访问主存的指令包括gld、gst等中的一个或多个,每条指令的访问时间约为278cycle;当程序优化到一定程度后,从核将完全通过DMA通道进行数据访问,就不存在gld、gst等指令访问主存时间,此时T_gld默认为0。
公式(8)中如果没有从核通信,则T_cpe=0,如果从核通信数据量≥8个double,则从核通信方式选择RMA,RMA每次通信的时间为100cycles,此时T_cpe=100*n_core;如果从核通信数据量<8个double,则从核通信方式选择RLD,RLD每次通信时间为20cycles,此时T_cpe=20*n_core。其中,double指的是双精度浮点型数据,双精度浮点型数据占8个字节的内存空间,属于实型变量的一种变量类型。
D_gsize与T_g1的对应关系如下:
当D_gsize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_g1分别为820、950、1350、2300、4100、6200、11200、23700;其中,T_g1的单位为cycle;
D_psize与T_p1的对应关系如下:
当D_psize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_p1分别为2800、3000、3400、4000、5600、10700、17700、35500;T_p1的单位为cycle。
本实施例的输入变量为:
输出变量为:
名称 含义 数值
T_tran 数据传输的时间 663200
T_comp 计算的拍数 151490
T_spawjoin 从核启动与结束的时间 35600
T_syn 同步的时间 9
T_overlap 计算与通信重叠的时间 0
T_total 总运行时间 850299

Claims (1)

1.一种基于国产超算微架构的众核应用性能评估方法,其特征在于,具体方法如下:
1)模型输入包括Lat_SPM、n_v、n_scalar_i、n_scalar、n_arr_i_get、n_arr_ge、n_arr_i_put、n_arr_put、d_size、n_iasm、n_iasmi、n_dasm、n_ddiv、n_cmp、n_1d、n_2d、n_3d、n_i_siz、n_size、n_cpe、n_mb、n_syn、n_cpe_comm、T_cpe、n_cmp、n_gsize、n_psize、T_g1、T_p1、n_core;
其中,Lat_SPM为从核局存访问的时延,单位是cycles;n_v为数组变量的个数;n_scalar_i为整型标量个数;n_scalar为浮点型标量个数;n_arr_i_get为读入的整型数组的个数;n_arr_get为读入的浮点型数组的个数;n_arr_i_put为输出的整型数组的个数;n_arr_put为输出的浮点型数组的个数;d_size为单个数组的大小;n_iasm为循环外,整数加、减、乘指令的次数;n_iasmi为循环内,整数加、减、乘指令的次数;n_dasm为浮点加、减、乘指令的次数;n_ddiv为浮点除法指令的次数;n_cmp为比较与跳转指令的次数;n_1d为第一维及以上的维数大小;n_2d为第二维及以上的维数大小;n_3d为第三维及以上的维数大小;n_i_size为单次dma的整型数据量;n_size为单次dma的浮点型数据量;n_cpe为使用的从核数;n_mb为从核局存更新的次数;n_syn为从核间同步的次数;n_cpe_comm为从核间通信的次数;T_cpe为从核通信时间;n_cmp为比较与跳转指令的次数;n_gsize为读入数据单次传输量;n_psize为写入数据单次传输量;T_g1为单次读入固定数据量下的时间;T_p1为单次写入固定数据量下的时间;n_core为从核通信次数;
2)模型输出变量包括T_tran、T_comp、T_spawjoin、T_syn、T_overlap、T_total;输出变量的单位均为cycle;
其中,T_tran为数据传输的时间;T_comp为计算的拍数;T_spawjoin为从核启动与结束的时间;T_syn为同步的时间;T_overlap为计算与通信重叠的时间;T_total为总运行时间;
3)T_tran的计算
T_tran=T_get+T_put+T_gld (1)
在公式1中,T_get为读入数据athread_get时间,T_put为写入数据athread_put时间,T_gld为从核数据访问主存时间;
3.1)读入数据时间T_get
D_gsize=min(d_size/n_cpe,n_size) (2)
公式(2)求出每个从核读入的数据总量与n_size的最小值,即为每个数组单次读入的数据量D_gsize;
每个数组读入数据的次数:
则,T_get=T_g1*n_get*n_arr_get (4)
其中,T_g1为经验值;
3.2)写入数据时间T_put
D_psize=min(d_size/n_cpe,n_size) (5)
每个数组写入数据的次数:
则,T_put=T_p1*n_put*n_arr_Put (7)
其中,T_p1为经验值;
4)T_comp的计算
T_comp=n_iasm*tia+(n_iasmi*tia+n_dasm*tda+n_ddiv*tdd)/2+n_cmp*tcm+T_cpe(8)
5)T_spawnjoin的计算
6)T_syn的计算
T_syn=n_mb*3+n_syn*14 (10)
在公式(10)中,n_mb*3为数据传输同步指令asm volatile(“memb”)所花费的时间,n_syn*14为从核间同步函数athread_syn(ARRAY_SCOPE,-1)所花费的时间;
7)T_overlap的计算
T_overlap=(n_iasm+n_dasm+n_ddiv+n_cmp)*Lat_SPM (11)
8)众核程序运行总时间
T_total=T_tran+T_comp+T_spawnjoin+T_syn-T_overlap(12);
其中,公式(8)中tia=3cycles,tda=9cycles,tdd=34cycles,tcm=4cycles;公式(10)中n_mb*3=3cycles,n_syn*14=14cycles;
公式(8)中如果没有从核通信,则T_cpe=0,如果从核通信数据量≥8个double,则从核通信方式选择RMA,RMA每次通信的时间为100cycles,此时T_cpe=100*n_core;如果从核通信数据量<8个double,则从核通信方式选择RLD,RLD每次通信时间为20cycles,此时T_cpe=20*n_core;
D_gsize与T_g1的对应关系如下:
当D_gsize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_g1分别为820、950、1350、2300、4100、6200、11200、23700;其中,T_g1的单位为cycle;
D_psize与T_p1的对应关系如下:
当D_psize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_p1分别为2800、3000、3400、4000、5600、10700、17700、35500;T_p1的单位为cycle。
CN202111135266.3A 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法 Active CN113835984B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111135266.3A CN113835984B (zh) 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111135266.3A CN113835984B (zh) 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法

Publications (2)

Publication Number Publication Date
CN113835984A CN113835984A (zh) 2021-12-24
CN113835984B true CN113835984B (zh) 2023-08-08

Family

ID=78970783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111135266.3A Active CN113835984B (zh) 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法

Country Status (1)

Country Link
CN (1) CN113835984B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128343A2 (en) * 2012-03-02 2013-09-06 Fondazione Istituto Italiano Di Tecnologia Method for estimating a model on multi-core and many-core mimd architectures
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
CN109002659A (zh) * 2018-09-07 2018-12-14 西安交通大学 一种基于超级计算机的流体机械仿真程序优化方法
CN110222007A (zh) * 2019-06-20 2019-09-10 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的加速运行方法
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置
CN112860512A (zh) * 2021-01-29 2021-05-28 平安国际智慧城市科技股份有限公司 接口监控的优化方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471289B2 (en) * 2014-03-25 2016-10-18 Nec Corporation Compiler optimization for many integrated core processors

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128343A2 (en) * 2012-03-02 2013-09-06 Fondazione Istituto Italiano Di Tecnologia Method for estimating a model on multi-core and many-core mimd architectures
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
CN109002659A (zh) * 2018-09-07 2018-12-14 西安交通大学 一种基于超级计算机的流体机械仿真程序优化方法
CN110222007A (zh) * 2019-06-20 2019-09-10 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的加速运行方法
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置
CN112860512A (zh) * 2021-01-29 2021-05-28 平安国际智慧城市科技股份有限公司 接口监控的优化方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向异构多核处理器的并行代价模型;黄品丰;赵荣彩;姚远;赵捷;;计算机应用;第33卷(第06期);1544-1547 *

Also Published As

Publication number Publication date
CN113835984A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
KR100254080B1 (ko) 마이크로프로세서의 파워 에스티메이터
CN102713846B (zh) 处理器可执行的代码的生成方法、以及存储区域管理方法
Oden Lessons learned from comparing C-CUDA and Python-Numba for GPU-Computing
Lai et al. Accelerating Strassen-Winograd's matrix multiplication algorithm on GPUs
Braun et al. Cuda flux: A lightweight instruction profiler for cuda applications
Vinas et al. Improving OpenCL programmability with the heterogeneous programming library
CN112559053A (zh) 可重构处理器数据同步处理方法及装置
Lai et al. Break down GPU execution time with an analytical method
CN113553057B (zh) 一种针对不同架构的gpu进行并行计算的优化系统
Mangione-Smith et al. Approaching a machine-application bound in delivered performance on scientific code
CN113835984B (zh) 一种基于国产超算微架构的众核应用性能评估方法
Li et al. Code layout optimization for defensiveness and politeness in shared cache
CN109522127B (zh) 一种基于gpu的流体机械仿真程序异构加速方法
Henkel et al. Hardware generation and partitioning effects in the COSYMA system
CN102063308B (zh) 一种用于地震勘探资料处理流程控制的方法
US9836289B2 (en) Executable code generation program and executable code generation device
RU2206119C2 (ru) Способ получения объектного кода
Dragomir et al. Optimal unroll factor for reconfigurable architectures
Widerspick et al. Latency measurements for an emulation platform on autonomous driving platform nvidia drive px2
Gauthier et al. Processor energy characterization for compiler-assisted software energy reduction
Patel et al. Principles of Speculative Run—Time Parallelization
Hu et al. Thoroughly exploring gpu buffering options for stencil code by using an efficiency measure and a performance model
Tomiyama et al. Automatic parameter optimization for edit distance algorithm on GPU
Alavani et al. Inspect-GPU: A software to evaluate performance characteristics of CUDA kernels using microbenchmarks and regression models
Abbas et al. Approximate data dependence graph generation using adaptive sampling

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