首页> 中国专利> 一种安全芯片抗功耗攻击防护能力量化评估的加速方法

一种安全芯片抗功耗攻击防护能力量化评估的加速方法

摘要

一种安全芯片抗功耗攻击防护能力量化评估的加速方法,在对安全芯片进行抗功耗攻击防护能力量化评估时,对功耗样本进行以下处理:①将功耗样本以二维数组的方式存储;②根据流处理器的设备内存容量,将能够完全容纳在流处理器的设备内存中的部分功耗样本复制到流处理器设备内存中;③按照不同时间点功耗均值并行计算以及同一时间点大量功耗值并行累加这两级并行的方式进行加速处理,计算出每个时间点的功耗均值;④将步骤③中流处理器计算得到的功耗均值结果读出并存储在系统主存中;⑤反复进行上述步骤②~④,以数据流的方式完成所有功耗样本的处理。本发明具有原理简单、操作简便、能够大大提高功耗样本的处理效率、从而加快整个评估速度。

著录项

  • 公开/公告号CN102073811A

    专利类型发明专利

  • 公开/公告日2011-05-25

    原文格式PDF

  • 申请/专利权人 孙迎红;

    申请/专利号CN201010600460.X

  • 发明设计人 孙迎红;童元满;陆洪毅;王志英;

    申请日2010-12-22

  • 分类号G06F21/00;

  • 代理机构湖南兆弘专利事务所;

  • 代理人周长清

  • 地址 410073 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院计算机研究所童元满转

  • 入库时间 2023-12-18 02:26:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-02-10

    未缴年费专利权终止 IPC(主分类):G06F21/77 授权公告日:20130417 终止日期:20141222 申请日:20101222

    专利权的终止

  • 2013-04-17

    授权

    授权

  • 2011-07-13

    实质审查的生效 IPC(主分类):G06F21/00 申请日:20101222

    实质审查的生效

  • 2011-05-25

    公开

    公开

说明书

技术领域

本发明主要涉及到芯片的安全领域,特指一种适用于安全芯片的抗功耗攻击防护能力的量化评估加速方法。

背景技术

随着社会信息化程度的提高,以智能卡为代表的安全芯片在各领域得到了越来越广泛的应用。在各应用系统中,安全芯片往往起着安全控制核心的作用,因此安全芯片自身的安全性对于整个应用系统具有关键作用。另一方面,由于安全芯片涉及用户敏感信息和身份鉴别,受利益驱动,恶意实体或个人总是企图破解安全芯片以获取私密信息,或伪造身份以谋利,不仅造成巨额经济损失,也带来严重的负面社会影响。国防和军事领域中安全芯片的破解还可能造成危害军事信息安全的窃密和泄密事故,给国家安全带来威胁。

当前,安全芯片面临的安全风险主要体现在程序和数据的机密性与完整性、以及芯片的可用性被破坏。攻击者所采用的破解手段主要包括软件攻击、旁路攻击、以及物理攻击。在各种不同的旁路攻击技术中,功耗攻击以其简单易行、普遍适用和行之有效得到了广泛关注,是一种对安全芯片构成最严重威胁的旁路攻击手段。

功耗攻击之所以可行的根本原因在于:当前集成电路大都采用静态单轨的标准单元实现,其功耗与输入和输出翻转状态存在统计意义上的相关性,攻击者通过统计大量功耗样本即可分析出密钥的值。以最简单的反相器为例,在不同的翻转模式下消耗的功耗存在明显差别,输出端在发生“0-1”和“1-0”翻转时,存在充放电过程,消耗较多能量;而输出端不发生翻转时,反相器中仅存在漏电流,几乎为0。其它更复杂的标准单元工作时功耗同样与输入和输出翻转状态存在相关性。攻击者在大量功耗样本的基础上,运用数理统计技术即可分析出密钥的值。

功耗攻击的主要步骤包括样本采集与样本处理。在样本采集过程中,随机产生大量明文,分别使用未知密钥进行加密,记录加密过程中的功耗曲线即功耗样本,并保存对应的密文。在功耗攻击中,功耗样本一般为按固定时间间隔采样的功耗瞬态值序列,可用一维数组的方式在计算机中存储和处理。样本处理的基本原理为:选取密码算法运算过程中某一位中间变量T,且T为明文M、密文C、以及子密钥K的函数,记为T=F(M,C,K),其中子密钥K为密钥或轮密钥的一部分,一般而言K只有少数几个比特,记K的比特数为k,且k一般不超过8;由于M和C都是攻击者已知的量,攻击者给定一个密钥K的猜测值,则可计算出T的值,根据T的值即可将所有的功耗样本划分两个子集,即当T为1时将对应的功耗样本纳入样本子集S1,当T为0时将对应的功耗样本纳入样本子集S0;枚举K中与T相关的2k种所有可能的值,并根据各个猜测值将功耗样本划分两个子集,并计算S1和S0的功耗样本均值之差;在所有2k种可能的猜测中,如果均值之差中具有最大峰值,则对应的猜测为正确密钥,其它2k-1种猜测均为错误猜测。为破解密钥的其它部分,需要反复实施上述样本处理过程,即确定实施攻击的目标中间变量、遍历与目标中间变量相关的子密钥的所有猜测值、划分功耗样本子集、计算功耗样本均值之差等,直到密钥被完整的破解出来。

为了抗功耗攻击,设计者在实现密码算法时往往从不同角度采取一定的防护技术,在众多防护技术当中,采取运算流程随机化和增加随机功耗噪声的方法以增加功耗攻击的难度是一种典型的技术手段。这必然大大增加了功耗攻击的难度,使得攻击者必须要采集更多的功耗样本来消除噪声。安全芯片抗功耗攻击防护能力一般以成功破解密钥所需的功耗样本数来衡量,这是因为破解所需的功耗样本数越大,功耗攻击所需的样本采集时间、功耗样本的存储空间、以及功耗样本的处理时间都越大。从设计者的角度来看,设计者需要在设计过程中量化评估安全芯片抗功耗攻击的防护能力,量化评估过程实际上也是通过实施功耗攻击来完成的。与攻击者对安全芯片实施真实功耗攻击不同的是,安全芯片设计者在设计过程中对其进行防护能力量化评估的功耗样本来源于安全芯片的功耗估算模型,而不是采集自真实安全芯片在工作时的真实功耗,即两者的功耗样本采集方式不同,但是对于功耗样本进行处理和分析以破解密钥的方法完全相同。

对于未加任何防护的安全芯片来说,可能只需200组功耗样本即可成功破解密钥,而对于采取了防护技术的安全芯片有可能需要采集并处理上万组甚至上百万组以上的功耗样本。假设为破解安全芯片中密钥,实施功耗攻击所需的样本数为百万量级,且单个功耗样本包括1000个离散时刻的瞬态值,每次均值之差的计算需要处理10亿个以上的浮点数,一个8比特密钥的破解过程需要进行256次功耗样本均值之差的计算,破解8比特密钥需要2560亿次以上的浮点计算,破解128位的轮密钥则需要执行4.096万亿以上的浮点计算,功耗样本处理的运算量巨大,严重制约了功耗攻击的效率。而在安全芯片设计过程中,需要在不同设计阶段进行防护能力量化评估,在防护能力不满足设计规范时还需要改进防护技术并重新进行量化评估,防护能力量化评估在设计过程中需要反复迭代进行,防护能力量化评估的效率也成为影响安全芯片设计进度的一个制约因素。在设计过程中对安全芯片进行抗功耗攻击防护能力的量化评估时,面对数量巨大的功耗样本,迫切需要对功耗样本的处理过程进行加速,以提高安全芯片抗功耗攻击防护能力量化评估的效率,缩短安全芯片的设计周期。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、操作简便、能够大大提高功耗样本的处理效率、从而加快整个评估速度的安全芯片抗功耗攻击防护能力量化评估的加速方法。

为解决上述技术问题,本发明采用以下技术方案:

一种安全芯片抗功耗攻击防护能力量化评估的加速方法,其特征在于在对安全芯片进行抗功耗攻击防护能力量化评估时,对功耗样本进行以下处理:

①功耗样本存储:将功耗样本以二维数组的方式存储;其中,不同功耗样本中同一个时间点的瞬态功耗值按“行”存储,不同时间点的功耗值按“列”存储;

②准备输入流:根据流处理器的设备内存容量,将能够完全容纳在流处理器的设备内存中的部分功耗样本复制到流处理器设备内存中;

③流处理器对输入流进行加工处理并产生输出流:按照不同时间点功耗均值并行计算以及同一时间点大量功耗值并行累加这两级并行的方式进行加速处理,计算出每个时间点的功耗均值;

④读出输出:将步骤③中流处理器计算得到的功耗均值结果读出并存储在系统主存中;

⑤循环处理:反复进行上述步骤②~④,以数据流的方式完成所有功耗样本的处理。

作为本发明的进一步改进:

所述步骤①中,功耗样本包括功耗样本集S1和功耗样本集S0,设功耗样本数为n,n为大于等于1的整数,功耗样本集S1包含的功耗样本记为X1,X2,...,Xi,...,Xn,其中1≤i≤n;单个功耗样本包含m个时刻的功耗样本值,m为大于1的整数,功耗样本Xi记为xil,xi2,...,xij,...,xim,其中1≤j≤m;功耗样本集S0包含的功耗样本记为Y1,Y2,...,Yi,...,Yn,功耗样本Yi记为yi1,yi2,...,yij,...,yim。

所述功耗样本集在系统内存中按照二维数组方式存储,单个功耗样本在不同时刻的值按“列”存储,不同功耗样本在同一时刻的值按“行”存储,即功耗样本集S1的第一行为x11,x21,x31,...,xi1,...,xn1,第二行为x12,x22,x32,...,xi2,...,xn2,依此类推,第i行为x1i,x2i,x3i,...,xii,...,xni,第m行为x1m,x2m,x3m,...,xim,...,xnm;功耗样本集S0的第一行为y11,y21,y31,...,yi1,...,yn1,第二行为y12,y22,y32,...,yi2,...,yn2,依此类推,第i行为y1i,y2i,y3i,...,yii,...,yni,第m行为y1m,y2m,y3m,...,yim,...,ynm。

所述步骤①中,除功耗样本外,在系统内存中开辟一个长度为m的一维数组dm,用于存储功耗样本集S1和S0的均值之差。

所述步骤②中,先在流处理器的设备内存中开辟用于存储功耗样本和均值结果的存储空间,即根据流处理器设备内存的容量,分别开辟2个r行n列的二维数组,以及1个长度为r的一维数组,其中r≤m,2个二维数组分别记为gx和gy,长度为r的一维数组记为dg;2个r行n列的二维数组用于暂存功耗样本,长度为r的数组用于存储功耗样本的均值计算结果。

所述步骤②和步骤③的详细步骤为:

1.1复制输入流:当执行第s次迭代时,将功耗样本集S1和S0的第s个子块分别复制到流处理器设备内存的gx和gy中,其中1≤s≤m/r;

1.2在流处理器中创建大量独立的并发线程:按照两级结构组织所有的线程,第一级为线程块,第二级为单个独立的线程,所有线程共分为r个线程块,r个线程块组成完整的线程网格,每个线程块负责计算两个功耗样本集在一个时刻的功耗均值之差;每个线程块共包括B个独立并发线程,其中B为流处理器中线程块所能支持的最大线程数;按照这种线程组织方式,每个线程块被赋予一个索引号bx,且1≤bx≤r;线程块中每个线程也被赋予一个线程索引号tx,且1≤tx≤B;

1.3定义共享变量:在流处理器的片内共享内存区域为每个线程块开辟两个长度为B的一维数组,分别记为sx和sy,sx和sy可以被同一线程块内的任意线程访问;

1.4共享变量初始化:将每个线程块中sx与sy的所有元素初始化为0;

1.5面向设备内存的并行累加:在所有的线程块中,每个线程做如下的累加操作:sx[tx]=Σi=1n/Bgx[bx][tx+(i-1)B]=gx[bx][tx]+gx[bx][tx+B]+gx[bx][tx+2B]+...+gx[bx][tx+n-B];sy[tx]=Σi=1n/Bgy[bx][tx+(i-1)B]=gy[bx][tx]+gy[bx][tx+B]+gy[bx][tx+2B]+...+gy[bx][tx+n-B],其中sx[tx]和sy[tx]分别表示sx和sy的第tx个元素,gx[bx][tx+(i-1)B]和gy[bx][tx+(i-1)B]分别表示gx和gy中第bx行第tx+(i-1)B列的元素,且1≤i≤n/B;每个线程在累加操作完成之后进行栅栏同步,确保B个线程的累加操作都已完成,方可进行后续操作;

1.6面向共享内存的并行累加:在所有的线程块中,共执行log2B次累加操作,每步累加的具体方法为在第i步累加中,只有线程索引号小于等于B/2i的线程执行有效操作,其余的B-B/2i个线程空转,其中1≤i≤log2B;B/2i个线程分别执行如下累加操作,sx[tx]=sx[tx]+sx[tx+B/2i],sy[tx]=sy[tx]+sy[tx+B/2i];每个线程在累加操作完成之后进行栅栏同步,确保B/2i个线程的累加操作都已完成,方可进行下一步的累加操作;在第log2B步累加操作完成之后,sx[1]和sy[1]分别为gx和gy第bx行的累加和;

1.7产生输出流:在每个线程块中,线程索引号为1的线程执行如下操作:dg[bx]=(sx[1]-sy[1])/n,即计算第bx行的均值之差,并将结果写入到位于流处理器设备内存的数组dg中;同一线程块中其余B-1个线程空转;

1.8读出输出流:将数组dg中r个元素从流处理器设备内存中复制到位于系统内存的dm中,且dm的起始位置为1+(s-1)r,即得到了第s次迭代的均值之差计算结果。

与现有技术相比,本发明的优点在于:本发明安全芯片抗功耗攻击防护能力量化评估的加速方法,原理简单、操作简便、能够大大提高功耗样本的处理效率,从而加快整个评估速度,进而缩短安全芯片的设计周期。

附图说明

图1是安全芯片抗功耗攻击防护能力量化评估方法的总体流程示意图;

图2是本发明加速方法的流程示意图;

图3是流处理器加速计算的数据存储结构和线程组织结构示意图;

图4是流处理器加速计算中单个线程块的具体流程图。

具体实施方式

以下将结合说明书附图和具体实施例对本发明做进一步详细说明。

如图1所示,为在安全芯片设计过程中对其进行抗功耗攻击防护能力量化评估的总体流程,包括如下步骤:

第一步,功耗样本采集:设计者对安全芯片抗功耗攻击防护能力做出一个预估,也就是如果设计者假定成功破解安全芯片所需的功耗样本数为n,那么设计者需要随机产生n组明文,使用需要破解的目标密钥对这n个明文进行加密并通过功耗模拟方法获得安全芯片在加密过程中的瞬态功耗,并记录所有的密文和功耗样本。

第二步,确定实施攻击的目标中间变量:设计者选取密码算法运算过程中某一位中间变量T,且T为明文M、密文C、以及子密钥K的函数,记为T=F(M,C,K),其中子密钥K为密钥或轮密钥的一部分,一般而言K只有少数几个比特,记K的比特数为k,且k一般不超过8。

第三步,猜测子密钥K=0,开始功耗样本处理过程,即转第四步。

第四步,根据子密钥的猜测值将功耗样本分为两个子集S1和S0:由于M和C都是攻击者已知的量,攻击者给定一个密钥K的猜测值,则可计算出T的值,根据T的值即可将所有的功耗样本划分两个子集,即当T为1时将对应的功耗样本纳入样本子集S1,当T为0时将对应的功耗样本纳入样本子集S0。

第五步,计算并保存功耗样本子集S1和S0的均值之差:在功耗样本子集划分基础上,分别计算S1和S0中不同时刻的瞬态功耗均值,然后计算两个功耗样本子集S1和S0在各个时刻的功耗均值之差。功耗样本子集S1和S0均值之差的计算是功耗样本处理过程的核心步骤,也是运算量巨大的步骤,该步骤的效率严重影响着安全芯片抗功耗攻击防护能力量化评估的效率,本发明即着眼于使用流处理器对该步骤进行并行加速,以有效提高安全芯片抗功耗攻击防护能力量化评估的效率。

第六步,遍历子密钥的下一个猜测值:即猜测K=K+1。

第七步,功耗样本处理过程结束判断逻辑:如果K小于2k,则转第四步;否则表明已遍历了子密钥的所有猜测值,转第八步。

第八步,确定功耗攻击是否成功:在得到了所有2k种不同的功耗样本均值之差之后,可从中选取具有最大功耗均值之差,如果与之对应的密钥猜测值为正确密钥,则安全芯片抗功耗攻击防护能力小于预期,即成功破解安全芯片所需的样本数不超过n;否则安全芯片抗功耗攻击防护能力大于预期,即成功破解安全芯片所需的样本数超过n。

在安全芯片的设计过程中,需要在不同设计阶段反复进行抗功耗攻击防护能力的量化评估,以确定安全芯片的抗功耗攻击防护能力是否满足设计规范。因此功耗样本均值之差的处理严重影响对于安全芯片抗功耗攻击防护能力的量化评估的效率,进而影响安全芯片的设计进度。近年来随着流计算概念的产生和流处理器芯片的出现,流处理技术在许多应用领域得到了大量的应用;由于流处理器主要是靠集成大量廉价的计算单元而实现功能的,因而具有计算速度快、成本低廉的优点。典型的流处理器有美国斯坦福大学的Imagine处理器、国防科学技术大学自主研制的FT-64、以及图形处理器GPGPU等。我国首台千万亿次超级计算机系统天河一号就是利用流处理器进行加速计算的典型代表。安全芯片抗功耗攻击防护能力量化评估过程中涉及的大量功耗样本的处理是一个典型的计算密集和数据密集型问题,存在大量的并行性,适合于采用流处理器进行加速处理。

如图2所示,本发明安全芯片抗功耗攻击防护能力量化评估的加速方法就是基于流处理器的原理设计,主要特点就在于对安全芯片进行功耗攻击时,对功耗样本进行以下处理,以使其加速,提高效率。该加速方法的步骤为:

①功耗样本存储:将功耗样本以二维数组的方式存储;其中,不同功耗样本中同一个时间点的瞬态功耗值按“行”存储,不同时间点的功耗值按“列”存储;

②准备输入流:根据流处理器的设备内存容量,将能够完全容纳在流处理器的设备内存中的部分功耗样本复制到流处理器设备内存中;

③流处理器对输入流进行加工处理并产生输出流:按照不同时间点功耗均值并行计算以及同一时间点大量功耗值并行累加这两级并行的方式进行加速处理,计算出每个时间点的功耗均值;

④读出输出:将步骤③中流处理器计算得到的功耗均值结果读出并存储在系统主存中;

⑤循环处理:反复进行上述步骤②~④,以数据流的方式完成所有功耗样本的处理。

上述加速方法的详细流程为:

第一步,在系统内存中准备功耗样本集数据:设功耗样本数为n,n为大于1的整数,功耗样本集S1包含的功耗样本记为X1,X2,...,Xi,...,Xn,其中1≤i≤n;单个功耗样本包含m个时刻的功耗样本值,m为大于1的整数,功耗样本Xi记为xi1,xi2,...,xij,...,xim,其中1≤j≤m;功耗样本集S0包含的功耗样本记为Y1,Y2,...,Yi,...,Yn,功耗样本Yi记为yi1,yi2,...,yij,...,yim。功耗样本集在系统内存中按照二维数组方式存储,单个功耗样本在不同时刻的值按列存储,不同功耗样本在同一时刻的值按行存储,即S1的第一行为x11,x21,x31,...,xi1,...,xn1,第二行为x12,x22,x32,...,xi2,...,xn2,依此类推,第i行为x1i,x2i,x3i,...,xii,...,xni,第m行为x1m,x2m,x3m,...,xim,...,xnm;同样的,S0的第一行为y11,y21,y31,...,yi1,...,yn1,第二行为y12,y22,y32,...,yi2,...,yn2,依此类推,第i行为y1i,y2i,y3i,...,yii,...,yni,第m行为y1m,y2m,y3m,...,yim,...,ynm。除功耗样本外,在系统内存中开辟一个长度为m的一维数组dm,用于存储功耗样本集S1和S0的均值之差。

第二步,开辟输入流和输出流存储空间,即在流处理器的设备内存中开辟存储功耗样本和均值结果的存储空间,根据流处理器设备内存的容量,分别开辟2个r行n列的二维数组,以及1个长度为r的一维数组,其中r≤m,2个二维数组分别记为gx和gy,长度为r的一维数组记为dg。2个r行n列的二维数组用于暂存功耗样本,长度为r的数组用于存储功耗样本的均值计算结果,这三个数据结构所占的存储空间必须小于流处理器的设备内存容量。根据r的值,存储于系统内存空间中的功耗样本集即m行n列的数组被划分成m/r个子块,每个子块为r行n列的二维数组,功耗样本集S1的第一个子块为S1的第一行至第r行,第二个子块为S1的第r+1行至第2r行,依此类推,S1的第m/r个子块为S1的第m-r行至第m行;同样的,功耗样本集S0的第一个子块为S0的第一行至第r行,第二个子块为S0的第r+1行至第2r行,依此类推,S0的第m/r个子块为S0的第m-r行至第m行。

第三步,进入初始迭代:令s=1且转第四步。

第四步,单次流处理过程:按如下步骤计算功耗样本集S1和S0中第s个子块的均值之差,即n个功耗样本中连续r个时刻的均值之差;

第五步,结束处理判断逻辑:令s=s+1;如果s小于等于m/r则转第四步,否则整个计算过程结束,功耗样本集S1和S0的均值之差计算完毕。

如图3所示,为流处理器加速计算的数据存储结构和线程组织结构示意图。

流处理器加速计算过程中需要在设备内存中开辟三个存储区域,包括2个r行n列的二维数组和1个长度为r的一维数组。二维数组gx和gy分别用于暂存功耗样本集S1和S0的子块,一维数组dg用于暂存两个子块的均值之差计算结果。在令流处理器进行加速计算之前,需要从系统内存中将S1和S0的子块复制到gx和gy中,在流处理器加速计算完成之后,从dg中将计算结果复制至系统内存中。

使用流处理器进行功耗样本均值之差的加速计算时,共需创建r个线程块,在每个线程块中创建B个线程,其中B为流处理器能够支持的单个线程块中最大并发线程数量。所有的r个线程块组成流处理器加速计算的线程网格,每个线程块具有一个索引号,记为bx,且1≤bx≤r。在每个线程块内部,每个独立的线程同样具有一个索引号,记为tx,且1≤tx≤B。从逻辑上来看,每个线程块都是并行执行的,单个线程块内部的所有线程也是并行执行的。

每个线程块负责计算一个时刻的功耗样本均值之差,并将计算结果写入dg中,第i个线程块的运算过程可以表示为:其中1≤i≤r。单个线程块中B个线程对单个时刻的功耗样本均值之差的计算进行并行加速。

如图4所示,为流处理器加速计算中单个线程块的具体流程示意图,其具体步骤为:

第一步,定义共享变量:为提高流处理器加速计算的性能,在流处理器的片内共享内存区域为每个线程块开辟两个长度为B的一维数组,分别记为sx和sy,sx和sy可以被同一线程块内的任意线程访问。

第二步,共享变量初始化:将sx与sy的所有元素初始化为0,即sx[tx]=0,sy[tx]=0;其中sx[tx]和sy[tx]分别表示sx和sy的第tx个元素。

第三步,面向设备内存的并行累加:线程块中每个独立线程做如下的累加操作:sx[tx]=Σi=1n/Bgx[bx][tx+(i-1)B]=gx[bx][tx]+gx[bx][tx+B]+gx[bx][tx+2B]+...+gx[bx][tx+n-B];sy[tx]=Σi=1n/Bgy[bx][tx+(i-1)B]=gy[bx][tx]+gy[bx][tx+B]+gy[bx][tx+2B]+...+gy[bx][tx+n-B],其中gx[bx][tx+(i-1)B]和gy[bx][tx+(i-1)B]分别表示gx和gy中第bx行第tx+(i-1)B列的元素,且1≤i≤n/B;每个线程在累加操作完成之后进行栅栏同步,确保B个线程的累加操作都已完成,方可进行后续操作。

第四步,面向共享内存的并行累加:每个线程块共执行log2B次累加操作,每步累加的具体方法为:在第i步累加中,只有线程索引号小于等于B/2i的线程执行有效操作,其余的B-B/2i个线程空转,其中1≤i≤log2B;B/2i个线程分别执行如下累加操作,sx[tx]=sx[tx]+sx[tx+B/2i],sy[tx]=sy[tx]+sy[tx+B/2i];每个线程在累加操作完成之后进行栅栏同步,确保B/2i个线程的累加操作都已完成,方可进行下一步的累加操作。在第log2B步累加操作完成之后,sx[1]和sy[1]分别为gx和gy第bx行的累加和。

第五步,产生输出流:线程块中线程索引号为1的线程执行如下操作:dg[bx]=(sx[1]-sy[1])/n,即计算第bx行的均值之差,并将结果写入到位于流处理器设备内存的数组dg中;同一线程块中其余B-1个线程空转。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号