混洗电路和方法、以及芯片和集成电路装置制造方法及图纸

技术编号:34955268 阅读:40 留言:0更新日期:2022-09-17 12:33
本公开提供了一种混洗电路,其包括控制电路、输入选择器、混洗器和输出选择器,其中控制电路被配置成:根据混洗器能并行处理的线程的最大数量k,将m个线程分成n个线程组,各线程组包括k个线程,以及生成数据对应信息,将该数据对应信息发送给输入选择器和输出选择器,其中,该数据对应信息限定了每一个线程组的结果数据分别从哪一个或哪几个线程组的操作数据中获得,其中,k、m、n都是大于或等于1的整数。控制电路可基于SIMD模式生成数据对应信息,也可基于结果数据索引标志和操作数据索引标志生成数据对应信息。本公开还提供了可用于该混洗电路的数据混洗方法,以及还涉及包括该混洗电路的芯片和包括该芯片的集成电路装置。路的芯片和包括该芯片的集成电路装置。路的芯片和包括该芯片的集成电路装置。

【技术实现步骤摘要】
混洗电路和方法、以及芯片和集成电路装置


[0001]本公开涉及电学
,具体地,涉及适用于多种SIMD模式的混洗电路和数据混洗方法,以及还涉及包括该混洗电路的芯片和包括该芯片的集成电路装置。

技术介绍

[0002]混洗操作是对多线程的数据进行重新分布的一种数据处理方法,其能够实现线程间的数据共享和数据重排序,因此被广泛地应用在诸如DX、CUDA或者VULKAN等应用程序接口(Application Programming Interface,即API)中。目前,各芯片都是基于不同的SIMD架构,例如,SIMD32架构、SIMD64架构或者SIMD128架构。这些不同的SIMD架构为了兼容性,往往都需要支持多种API,因此需要适应多种SIMD模式。然而,混洗电路的结构通常基于当前的SIMD架构采用固定的实现方式,导致在不同的API中,对于不同的SIMD模式的支持方面无法取得令人满意的处理效果。

技术实现思路

[0003]根据本公开的第一个方面,提供了一种混洗电路,其包括控制电路、输入选择器、混洗器和输出选择器,其中:控制电路被配置成:根据所述混洗器能够并行处理的线程的最大数量k,将m个线程分成n个线程组,每一个线程组包括k个线程,以及生成数据对应信息,将所述数据对应信息发送给所述输入选择器和所述输出选择器,其中,所述数据对应信息限定了每一个线程组的结果数据分别从哪一个或哪几个线程组的操作数据中获得,其中,k、m、n都是大于或等于1的整数;输入选择器被配置成:根据接收到的数据对应信息,从所述n个线程组中选择一个或多个对应的线程组的操作数据,并且按照线程组的预定顺序依次发送给所述混洗器;混洗器被配置成:从所述输入选择器依次接收所述一个或多个对应的线程组的操作数据,对接收到的每一个对应的线程组的k个操作数据进行混洗操作并且输出j个混洗输出数据,其中,j为整数并且0≤j≤k;输出选择器被配置成:从所述混洗器依次接收从所述一个或多个对应的线程组的操作数据获得的混洗输出数据,并且根据接收到的所述数据对应信息,基于所述混洗输出数据生成各线程组的结果数据。
[0004]根据本公开的一些示例性实施例,所述控制电路还被配置成:基于SIMD模式生成所述数据对应信息。
[0005]根据本公开的一些示例性实施例,在根据本公开的第一个方面的混洗电路中,m的值为128,k的值为32,n的值为4,并且所述SIMD模式为SIMD32模式、SIMD64模式和SIMD128模式中的一种。
[0006]根据本公开的一些示例性实施例,当所述SIMD模式为SIMD32模式时,所述数据对应信息包括:从第一线程组的操作数据中获得第一线程组的结果数据;从第二线程组的操作数据中获得第二线程组的结果数据;从第三线程组的操作数据中获得第三线程组的结果数据;从第四线程组的操作数据中获得第四线程组的结果数据。
[0007]根据本公开的一些示例性实施例,当所述SIMD模式为SIMD64模式时,所述数据对
应信息包括:从第一、二线程组的操作数据中获得第一线程组的结果数据;从第一、二线程组的操作数据中获得第二线程组的结果数据;从第三、四线程组的操作数据中获得第三线程组的结果数据;从第三、四线程组的操作数据中获得第四线程组的结果数据。
[0008]根据本公开的一些示例性实施例,当所述SIMD模式为SIMD128模式时,所述数据对应信息包括:从第一、二、三、四线程组的操作数据中获得第一线程组的结果数据;从第一、二、三、四线程组的操作数据中获得第二线程组的结果数据;从第一、二、三、四线程组的操作数据中获得第三线程组的结果数据;从第一、二、三、四线程组的操作数据中获得第四线程组的结果数据。
[0009]根据本公开的一些示例性实施例,所述控制电路包括结果数据索引标志生成器和操作数据索引标志生成器,并且其中:所述结果数据索引标志生成器被配置成:根据所述m个线程的有效性,生成n位的结果数据索引标志,其中,所述结果数据索引标志中的每一位对应于所述n个线程组中一个线程组的一组结果数据;所述操作数据索引标志生成器被配置成:计算每一个结果数据对应的操作数据索引,以针对所述n个线程组中每一个线程组的一组结果数据生成n位的操作数据索引标志,其中,所述操作数据索引标志中的每一位对应于所述n个线程组中一个线程组的一组操作数据;所述控制电路被配置成:基于所述结果数据索引标志和所述操作数据索引标志生成所述数据对应信息。
[0010]根据本公开的一些示例性实施例,所述控制电路还被配置成:将所述结果数据索引标志中值为1的位对应的一个线程组的一组结果数据确定为有效结果数据组,以及对于每一个有效结果数据组,从对应的操作数据索引标志中值为1的位对应的线程组的一组操作数据中获得结果数据。
[0011]根据本公开的一些示例性实施例,在其控制电路包括结果数据索引标志生成器和操作数据索引标志生成器的混洗电路中,m的值为128,k的值为32,n的值为4。
[0012]根据本公开的第二个方面,提供了一种数据混洗方法,包括:根据能够并行处理的线程的最大数量k,将m个线程分成n个线程组,每一个线程组包括k个线程,其中,k、m、n都是大于或等于1的整数;生成数据对应信息,所述数据对应信息限定了每一个线程组的结果数据分别从哪一个或哪几个线程组的操作数据中获得;根据所述数据对应信息,从所述n个线程组中选择一个或多个对应的线程组的操作数据;对每一个对应的线程组的k个操作数据进行混洗操作并且输出j个混洗输出数据,其中,j为整数并且0≤j≤k;基于从所述一个或多个对应的线程组的操作数据获得的混洗输出数据,根据所述数据对应信息,生成各线程组的结果数据。
[0013]根据本公开的一些示例性实施例,所述生成数据对应信息包括:基于SIMD模式生成所述数据对应信息。
[0014]根据本公开的一些示例性实施例,在根据本公开的第二个方面的数据混洗方法中,m的值为128,k的值为32,n的值为4,并且所述SIMD模式为SIMD32模式、SIMD64模式和SIMD128模式中的一种。
[0015]根据本公开的一些示例性实施例,所述基于SIMD模式生成所述数据对应信息包括:当所述SIMD模式为SIMD32模式时,所述数据对应信息包括:从第一线程组的操作数据中获得第一线程组的结果数据;从第二线程组的操作数据中获得第二线程组的结果数据;从第三线程组的操作数据中获得第三线程组的结果数据;从第四线程组的操作数据中获得第
四线程组的结果数据。
[0016]根据本公开的一些示例性实施例,所述基于SIMD模式生成所述数据对应信息包括:当所述SIMD模式为SIMD64模式时,所述数据对应信息包括:从第一、二线程组的操作数据中获得第一线程组的结果数据;从第一、二线程组的操作数据中获得第二线程组的结果数据;从第三、四线程组的操作数据中获得第三线程组的结果数据;从第三、四线程组的操作数据中获得第四线程组的结果数据。
[0017]根据本公开的一些示例性实施例,所述基于SIMD模式生成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种混洗电路,其包括控制电路、输入选择器、混洗器和输出选择器,其中:控制电路被配置成:根据所述混洗器能够并行处理的线程的最大数量k,将m个线程分成n个线程组,每一个线程组包括k个线程,以及生成数据对应信息,将所述数据对应信息发送给所述输入选择器和所述输出选择器,其中,所述数据对应信息限定了每一个线程组的结果数据分别从哪一个或哪几个线程组的操作数据中获得,其中,k、m、n都是大于或等于1的整数;输入选择器被配置成:根据接收到的数据对应信息,从所述n个线程组中选择一个或多个对应的线程组的操作数据,并且按照线程组的预定顺序依次发送给所述混洗器;混洗器被配置成:从所述输入选择器依次接收所述一个或多个对应的线程组的操作数据,对接收到的每一个对应的线程组的k个操作数据进行混洗操作并且输出j个混洗输出数据,其中,j为整数并且0≤j≤k;输出选择器被配置成:从所述混洗器依次接收从所述一个或多个对应的线程组的操作数据获得的混洗输出数据,并且根据接收到的所述数据对应信息,基于所述混洗输出数据生成各线程组的结果数据。2.根据权利要求1所述的混洗电路,其中,所述控制电路还被配置成:基于SIMD模式生成所述数据对应信息。3.根据权利要求2所述的混洗电路,其中,m的值为128,k的值为32,n的值为4,并且所述SIMD模式为SIMD32模式、SIMD64模式和SIMD128模式中的一种。4.根据权利要求3所述的混洗电路,其中,当所述SIMD模式为SIMD32模式时,所述数据对应信息包括:从第一线程组的操作数据中获得第一线程组的结果数据;从第二线程组的操作数据中获得第二线程组的结果数据;从第三线程组的操作数据中获得第三线程组的结果数据;从第四线程组的操作数据中获得第四线程组的结果数据。5.根据权利要求3所述的混洗电路,其中,当所述SIMD模式为SIMD64模式时,所述数据对应信息包括:从第一、二线程组的操作数据中获得第一线程组的结果数据;从第一、二线程组的操作数据中获得第二线程组的结果数据;从第三、四线程组的操作数据中获得第三线程组的结果数据;从第三、四线程组的操作数据中获得第四线程组的结果数据。6.根据权利要求3所述的混洗电路,其中,当所述SIMD模式为SIMD128模式时,所述数据对应信息包括:从第一、二、三、四线程组的操作数据中获得第一线程组的结果数据;从第一、二、三、四线程组的操作数据中获得第二线程组的结果数据;从第一、二、三、四线程组的操作数据中获得第三线程组的结果数据;从第一、二、三、四线程组的操作数据中获得第四线程组的结果数据。7.根据权利要求1所述的混洗电路,其中,所述控制电路包括结果数据索引标志生成器和操作数据索引标志生成器,并且其中:所述结果数据索引标志生成器被配置成:根据所述m个线程的有效性,生成n位的结果
数据索引标志,其中,所述结果数据索引标志中的每一位对应于所述n个线程组中一个线程组的一组结果数据;所述操作数据索引标志生成器被配置成:计算每一个结果数据对应的操作数据索引,以针对所述n个线程组中每一个线程组的一组结果数据生成n位的操作数据索引标志,其中,所述操作数据索引标志中的每一位对应于所述n个线程组中一个线程组的一组操作数据;所述控制电路被配置成:基于所述结果数据索引标志和所述操作数据索引标志生成所述数据对应信息。8.根据权利要求7所述的混洗电路,其中,所述控制电路还被配置成:将所述结果数据索引标志中值为1的位对应的一个线程组的一组结果数据确定为有效结果数据组,以及对于每一个有效结果数据组,从对应的操作数据索引标志中值为1的位对应的线程组的一组操作数据中获得结果数据。9.根据权利要求8所述的...

【专利技术属性】
技术研发人员:张春焱李凯于冰张钰勃
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

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

1