一种GPU计算大规模数组求和过程中的线程管理方法及系统技术方案

技术编号:40701511 阅读:21 留言:0更新日期:2024-03-22 10:59
本发明专利技术公开了一种GPU计算大规模数组求和过程中的线程管理方法及系统,其中涉及的一种GPU计算大规模数组求和过程中的线程管理方法,包括:S1.初始化N维数组V的状态向量U=(0,0,…,0);其中,N维数组V中分为a个区块,每个区块中分为b个线程组;S2.判断第i个区块中所有线程组j是否都完成数组V的计算任务,若是,则状态向量U的第i个区块对应的位置加1,按照步骤S2的方法继续执行下一个数组的任务;其中i=1,…,a;j=1,…,b;S3.判断是否完成了的计算,若是,则GPU输出向量中的元素,得到数组中所有元素的和。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种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个位置上的数据相加,具体为:

【专利技术属性】
技术研发人员:陈昕董建阔冯黎明叶青波马煜翔王超吴凡刘文博陈滏媛
申请(专利权)人:蓝象智联杭州科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1