CUDA架构中的线程块处理系统、方法及相关设备技术方案

技术编号:38847766 阅读:9 留言:0更新日期:2023-09-17 09:57
本申请提供了一种CUDA架构中的线程块处理系统、方法及相关设备,其中,该系统包括线程索引配置器、多个处理单元PE和每个PE对应的线程索引选择器;线程索引配置器,配置为根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,以及向线程索引选择器下发第一配置信息;线程索引选择器,配置为根据第一配置信息为对应的PE选择普通线程块或余量线程块执行。本申请实施例能够去除核函数中对线程越界的判断处理,提升核函数的执行效率,进而提升CUDA中并行计算的性能。进而提升CUDA中并行计算的性能。进而提升CUDA中并行计算的性能。

【技术实现步骤摘要】
CUDA架构中的线程块处理系统、方法及相关设备


[0001]本申请涉及数据处理
,尤其涉及一种CUDA架构中的线程块处理系统、方法及相关设备。

技术介绍

[0002]CUDA(Compute Unified Device Architecture,统一计算设备架构)是显卡厂商英伟达(NVIDIA)推出的运算平台,是一种通用并行计算编程语言。CUDA中的计算实现通常需要编写核函数(kernel),核函数可以描述单个线程(thread)的行为。应理解,该架构中在调用核函数前,需要根据待处理数据的维度信息将核函数分割为多个线程块(thread block),为了避免核函数处理的线程超出待处理数据的维度,目前的分块方式需要在核函数中增加条件判断。然而,该条件判断会增加核函数的冗余,导致并行处理的性能降低。

技术实现思路

[0003]针对上述问题,本申请提供了一种CUDA架构中的线程块处理系统、方法及相关设备,有利于去除核函数中对线程越界的判断处理,提升核函数的执行效率,进而提升CUDA中并行计算的性能。
[0004]为实现上述目的,本申请实施例第一方面提供了一种CUDA架构中的线程块处理系统,该系统包括线程索引配置器、多个处理单元PE和每个PE对应的线程索引选择器;
[0005]线程索引配置器,配置为根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,以及向线程索引选择器下发第一配置信息;
[0006]线程索引选择器,配置为根据第一配置信息为对应的PE选择普通线程块或余量线程块执行。
[0007]结合第一方面,在一种可能的实施方式中,线程索引配置器,具体配置为:
[0008]根据第一维度信息和第二维度信息,得到余量线程块的第三维度信息;
[0009]根据第二维度信息和第三维度信息,将核函数分割为多个普通线程块和多个余量线程块。
[0010]结合第一方面,在一种可能的实施方式中,该系统还包括线程索引生成器,线程索引配置器,具体配置为:
[0011]根据第一维度信息和第二维度信息,得到余量线程块的第三维度信息;
[0012]向线程索引生成器下发第二配置信息;第二配置信息包括第二维度信息和第三维度信息;
[0013]线程索引生成器,配置为:
[0014]根据第二维度信息和第三维度信息,将核函数分割为多个普通线程块和多个余量线程块。
[0015]结合第一方面,在一种可能的实施方式中,线程索引配置器,具体配置为:
[0016]根据第一维度信息和第二维度信息,得到核函数对应的网格的第四维度信息;
[0017]根据第一维度信息、第二维度信息和第四维度信息,得到第三维度信息。
[0018]结合第一方面,在一种可能的实施方式中,线程索引生成器,还配置为:
[0019]根据第二维度信息,生成普通线程块对应的第一线程标识。
[0020]结合第一方面,在一种可能的实施方式中,线程索引生成器,还配置为:
[0021]根据第二维度信息和第三维度信息,得到余量线程块所属的多种索引配置;
[0022]根据多种索引配置,分别得到多种索引配置下的余量线程块对应的多套第二线程标识;多套第二线程标识与多种索引配置一一对应。
[0023]结合第一方面,在一种可能的实施方式中,第一配置信息包括第四维度信息和线程索引选择器对应的PE的待执行线程块的索引;线程索引选择器,具体配置为:
[0024]根据第四维度信息和待执行线程块的索引,确定待执行线程块为普通线程块或余量线程块;
[0025]若待执行线程块为普通线程块,则使用第一线程标识为对应的PE选择待执行线程块中的线程执行;
[0026]若待执行线程块为余量线程块,则确定待执行线程块所属的目标索引配置,使用目标索引配置对应的一套第二线程标识为对应的PE选择待执行线程块中的线程执行;多种索引配置中包括目标索引配置。
[0027]结合第一方面,在一种可能的实施方式中,该系统还包括调度器;调度器,配置为在任意一个线程索引选择器A对应的PE执行完待执行线程块的情况下,向线程索引配置器指示未执行的线程块的索引;
[0028]线程索引配置器,还配置为向线程索引选择器A下发未执行的线程块的索引。
[0029]结合第一方面,在一种可能的实施方式中,余量线程块为满足以下至少一种的线程块:
[0030]在x方向的索引等于核函数对应的网格在x方向的维度减1;
[0031]在y方向的索引等于核函数对应的网格在y方向的维度减1;
[0032]在z方向的索引等于核函数对应的网格在z方向的维度减1;
[0033]普通线程块为核函数对应的网格中除余量线程块之外的线程块。
[0034]本申请实施例第二方面提供了一种CUDA架构中的线程块处理方法,应用于如第一方面所述的系统,该方法包括:
[0035]线程索引配置器根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,以及向线程索引选择器下发第一配置信息;
[0036]线程索引选择器根据第一配置信息为对应的PE选择普通线程块或余量线程块执行。
[0037]结合第二方面,在一种可能的实施方式中,根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,包括:
[0038]线程索引配置器根据第一维度信息和第二维度信息,得到余量线程块的第三维度信息;
[0039]线程索引配置器根据第二维度信息和第三维度信息,将核函数分割为多个普通线程块和多个余量线程块。
[0040]结合第二方面,在一种可能的实施方式中,根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,包括:
[0041]线程索引配置器根据第一维度信息和第二维度信息,得到余量线程块的第三维度信息;
[0042]线程索引配置器向线程索引生成器下发第二配置信息;第二配置信息包括第二维度信息和第三维度信息;
[0043]线程索引生成器根据第二维度信息和第三维度信息,将核函数分割为多个普通线程块和多个余量线程块。
[0044]结合第二方面,在一种可能的实施方式中,根据第一维度信息和第二维度信息,得到余量线程块的第三维度信息,包括:
[0045]线程索引配置器根据第一维度信息和第二维度信息,得到核函数对应的网格的第四维度信息;
[0046]线程索引配置器根据第一维度信息、第二维度信息和第四维度信息,得到第三维度信息。
[0047]结合第二方面,在一种可能的实施方式中,该方法还包括:
[0048]线程索引生成器根据第二维度信息,生成普通线程块对应的第一线程标识。
[0049]结合第二方面,在一种可能的实施方式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CUDA架构中的线程块处理系统,其特征在于,所述系统包括线程索引配置器、多个处理单元PE和每个PE对应的线程索引选择器;所述线程索引配置器,配置为根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,以及向所述线程索引选择器下发第一配置信息;所述线程索引选择器,配置为根据所述第一配置信息为对应的PE选择普通线程块或余量线程块执行。2.根据权利要求1所述的系统,其特征在于,所述线程索引配置器,具体配置为:根据所述第一维度信息和所述第二维度信息,得到余量线程块的第三维度信息;根据所述第二维度信息和所述第三维度信息,将所述核函数分割为所述多个普通线程块和所述多个余量线程块。3.根据权利要求1所述的系统,其特征在于,所述系统还包括线程索引生成器,所述线程索引配置器,具体配置为:根据所述第一维度信息和所述第二维度信息,得到余量线程块的第三维度信息;向所述线程索引生成器下发第二配置信息;所述第二配置信息包括所述第二维度信息和所述第三维度信息;所述线程索引生成器,配置为:根据所述第二维度信息和所述第三维度信息,将所述核函数分割为所述多个普通线程块和所述多个余量线程块。4.根据权利要求3所述的系统,其特征在于,所述线程索引配置器,具体配置为:根据所述第一维度信息和所述第二维度信息,得到所述核函数对应的网格的第四维度信息;根据所述第一维度信息、所述第二维度信息和所述第四维度信息,得到所述第三维度信息。5.根据权利要求4所述的系统,其特征在于,所述线程索引生成器,还配置为:根据所述第二维度信息,生成普通线程块对应的第一线程标识。6.根据权利要求5所述的系统,其特征在于,所述线程索引生成器,还配置为:根据所述第二维度信息和所述第三维度信息,得到余量线程块所属的多种索引配置;根据所述多种索引配置,分别得到所述多种索引配置下的余量线程块对应的多套第二线程标识;所述多套第二线程标识与所述多种索引配置一一对应。7.根据权利要求6所述的系统,其特征在于,所述第一配置信息包括所述第四维度信息和所述线程索引选择器对应的PE的待执行线程块的索引;所述线程索引选择器,具体配置为:根据所述第四维度信息和所述待执行线程块的索引,确定所述待执行线程块为普通线程块或余量线程块;若所述待执行线程块为普通线程块,则使用所述第一线程标识为对应的PE选择所述待执行线程块中的线程执行;若所述待执行线程块为余量线程块,则确定所述待执行线程块所属的目标索引配置,使用所述目标索引配置对应的一套第二线程标识为对应的PE选择所述待执行线程块中的
线程执行;所述多种索引配置中包括所述目标索引配置。8.根据权利要求7所述的系统,其特征在于,所述系统还包括调度器;所述调度器,配置为在任意一个线程索引选择器A对应的PE执行完所述待执行线程块的情况下,向所述线程索引配置器指示未执行的线程块的索引;所述线程索引配置器,还配置为向所述线程索引选择器A下发未执行的线程块的索引。9.根据权利要求1所述的系统,其特征在于,所述余量线程块为满足以下至少一种的线程块:在x方向的索引等于所述核函数对应的网格在x方向的维度减1;在y方向的索引等于所述核函数对应的网格在y方向的维度减1;在z方向的索引等于所述核函数对应的网格在z方向的维度减1;所述普通线程块为所述核函数对应的网格中除所述余量线程块之外的线程块。10.一种CUDA架构中的线程块处理方法,其特征在于,应用于如权利要求1

9中任一项所述的系统;所述方法包括:所述线程索引配置器根据待处理数据的第一维度信息和设定的普通线程块的第二维度信息,将核函数分割为多个普通线程块和多个余量线程块,以及向所述线程索引选择器下发第一配置信息;所述线程索引选择器根据所述第一配置信息为对应的PE选择普通线程块或余量线程块执行。11.根据权利要求10所述的方法,其特征在于...

【专利技术属性】
技术研发人员:雷宇李原朱建斌付尧
申请(专利权)人:珠海市芯动力科技有限公司
类型:发明
国别省市:

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

1