【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种gpu计算大规模数组求和过程中的线程管理方法及系统。
技术介绍
1、现有在gpu上可采用以下方式对一个n维长数组v进行求和,具体为:
2、1、将gpu上的所有m个线程分为a个区块,每个区块含有s=m/a个线程。每个区块上的s个线程会被分为b个线程组,每个线程组有t=s/b=m/a/b个线程。
3、2、不失一般性,令n是2的幂。gpu将数组v的第i(i≤n/2)个与第i+n/2个数据相加,并将获得n/2个计算结果存储到一个n/2维数组v1里。该过程由第ceil(i/b)个区块中的第mod(i,b)组的t个线程执行。其中ceil()是向上取整函数,ceil(i/b)表示对i/b向上取整,mod()是取余函数,mod(i,b)表示i对b取余的结果。
4、3、在数组v1里,gpu将数组v1的第i个(i≤n/4)与第i+n/4个数据相加,并将获得n/4个计算结果存储到一个n/4维数组v2里。
5、4、依次类推,直到获得1维数组,并输出数组中的值,该值即为数组v所有元
...
【技术保护点】
1.一种GPU计算大规模数组求和过程中的线程管理方法,其特征在于,包括:
2.根据权利要求1所述的一种GPU计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤S1中,状态向量U的每一维与每个区块相对应。
3.根据权利要求1所述的一种GPU计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤S2具体为:
4.根据权利要求3所述的一种GPU计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤S22中第i个区块的第j个线程组将数组V1中的第(i-1)*b+j个位置上的数据和数组V1中的第(i-1)*b+j+N/2
...【技术特征摘要】
1.一种gpu计算大规模数组求和过程中的线程管理方法,其特征在于,包括:
2.根据权利要求1所述的一种gpu计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤s1中,状态向量u的每一维与每个区块相对应。
3.根据权利要求1所述的一种gpu计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤s2具体为:
4.根据权利要求3所述的一种gpu计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤s22中第i个区块的第j个线程组将数组v1中的第(i-1)*b+j个位置上的数据和数组v1中的第(i-1)*b+j+n/2个位置上的数据相加,具体为:
5.根据权利要求4所述的一种gpu计算大规模数组求和过程中的线程管理方法,其特征在于,所述步骤s23中第i个区块的第j个线程组将数组v2中的第(i-1)*b+j个位置上的数据和数组v2中的第(i-1)*b+j+n/2个位置上的数据相加,具体为:
【专利技术属性】
技术研发人员:陈昕,董建阔,冯黎明,叶青波,马煜翔,王超,吴凡,刘文博,陈滏媛,
申请(专利权)人:蓝象智联杭州科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。