面向TopK选择的稀疏候选延迟聚合方法、装置及终端与流程

摘要: 本发明涉及计算机硬件加速领域,特别是涉及一种面向topk选择的稀疏候选延迟聚合方法、装置及终端。背景技术:1、随着人工智能、大模型推理、推荐系统、稀疏计算、注意...
面向TopK选择的稀疏候选延迟聚合方法、装置及终端与流程

本发明涉及计算机硬件加速领域,特别是涉及一种面向topk选择的稀疏候选延迟聚合方法、装置及终端。

背景技术:

1、随着人工智能、大模型推理、推荐系统、稀疏计算、注意力机制以及神经网络加速器等技术的发展,topk选择操作被广泛应用于排序、检索、推荐、注意力分数筛选及稀疏激活筛选等计算场景。topk选择通常用于从大量输入数据中选取数值最大的k个元素,或者根据预设临界值从输入数据中筛选出候选元素。在硬件实现中,为提高处理吞吐率,输入数据通常以宽并行方式进入计算单元,每个并行数据对应一个固定的数据处理通道。硬件可在一个时钟周期内并行地将多个输入数据与临界值进行比较,以确定其中满足候选条件的数据。

2、现有topk硬件方案在完成临界值比较后,通常会立即对满足条件的候选数据执行gather(数据收集操作)或compress(数据压缩操作)操作,即将分散在多个数据通道中的有效候选数据压缩至连续位置,再送入后续merge(数据合并操作)、排序或topk更新单元。上述处理通常需要多路选择网络、前缀计数网络、压缩网络、交叉开关网络或其他跨通道数据搬运逻辑实现。因此,在宽并行数据通路下,gather网络通常具有较大的面积、布线复杂度及硬件资源开销。

3、然而,在实际topk选择过程中,随着topk临界值逐渐收紧,每拍输入数据中真正满足候选条件的数据数量通常较少,候选数据呈现较明显的稀疏性。在此情况下,若每拍均立即执行完整的gather或compress操作,则大量硬件逻辑可能用于处理无效通道或少量有效候选数据,导致选择网络、压缩网络及数据搬运逻辑的利用率较低。同时,频繁进行跨通道数据重排还会增加数据搬运次数和动态功耗,并提高后级merge、排序或topk更新单元的处理压力及硬件时序收敛难度。

4、此外,在多拍候选数据连续输入的情况下,不同拍中的有效候选数据可能分布于不同数据通道。对于未发生通道占用冲突的候选数据,其并不一定需要立即压缩至连续位置,而可以暂时保留在原始数据通道中并通过有效位信息记录其有效状态。现有方案通常缺少针对稀疏候选数据的原位缓存以及基于通道占用冲突情况决定是否触发后续聚合处理的机制,因而难以充分利用候选数据的稀疏分布特性。

技术实现思路

1、鉴于以上所述现有技术的缺点,本发明的目的在于提供一种面向topk选择的稀疏候选延迟聚合方法、装置及终端,用于解决现有topk硬件实现中在每拍输入宽并行数据后立即执行gather或compress操作所带来的硬件资源开销大、跨lane(数据处理通道)数据搬运频繁、动态功耗高、后级merge单元压力大以及时序收敛困难的问题。

2、为实现上述目的及其他相关目的,本发明的第一方面提供一种面向topk选择的稀疏候选延迟聚合方法,包括:获取topk临界值;基于topk临界值对每拍输入的多个并行数据进行筛选,获得有效候选数据,并生成与各所述有效候选数据对应的有效位掩码;按序处理每拍输入数据,并将第一拍输入的有效候选数据作为缓存有效候选数据,以及将其所对应的有效位掩码作为缓存有效位掩码;基于当前的缓存有效位掩码,对第一拍之后再输入的后续每拍的有效候选数据所对应的有效位掩码进行通道占用冲突检测,获得冲突检测结果;基于所述冲突检测结果,将未发生通道占用冲突的有效候选数据直接插入缓存有效候选数据中的对应位置,并将发生通道占用冲突的有效候选数据作为待插入数据,生成待插入有效位掩码;根据当前最新的缓存有效位掩码、待插入有效位掩码及预设最大移位次数,判断是否对已有的缓存有效候选数据及其对应的有效位掩码进行同方向整体移位处理,以判断是否能将待插入数据插入缓存有效候选数据中;在无法通过整体移位将待插入数据插入缓存有效候选数据时,对所述缓存有效候选数据执行聚合处理并传输至后级处理单元。

3、于本发明的第一方面的一些实施例中,所述基于topk临界值对每拍输入的多个并行数据进行筛选,获得有效候选数据,并生成与各所述有效候选数据对应的有效位掩码包括:判断每拍输入的多个并行数据是否分别满足所述topk临界值;若不满足,则相应数据不进入后续步骤;若满足,则将满足所述topk临界值的数据标记为有效候选数据,并生成有效候选数据所在通道对应的有效位;将所有有效候选数据所在通道对应的有效位共同作为当前拍输入数据的初始有效位掩码。

4、于本发明的第一方面的一些实施例中,所述基于当前的缓存有效位掩码,对第一拍之后再输入的后续每拍的有效候选数据所对应的有效位掩码进行通道占用冲突检测,获得冲突检测结果包括:将第一拍之后输入的每一拍中的多个并行数据进行筛选,获得每一拍的有效候选数据及其对应的有效位掩码;将每一拍的有效候选数据所对应的有效位掩码与缓存有效位掩码进行按位与运算,获得冲突掩码;将每一拍的有效候选数据所对应的有效位掩码与缓存有效位掩码的取反结果进行按位与运算,获得插入掩码;基于所述冲突掩码及所述插入掩码获得冲突检测结果。

5、于本发明的第一方面的一些实施例中,所述冲突检测结果包括:在所述冲突掩码为预设标识时,未发生通道占用冲突,并根据所述插入掩码确定缓存有效候选数据中的未占用通道位置;在所述冲突掩码不为预设标识时,发生通道占用冲突,并根据所述冲突掩码确定当前拍发生通道占用冲突的待插入有效候选数据及其对应的待插入有效位掩码。

6、于本发明的第一方面的一些实施例中,所述基于所述冲突检测结果,将未发生通道占用冲突的有效候选数据直接插入缓存有效候选数据中的对应位置,并将发生通道占用冲突的有效候选数据作为待插入数据,生成待插入有效位掩码包括:当所述冲突掩码为预设标识时,根据所述插入掩码确定缓存有效候选数据中的未占用通道位置,将当前拍的有效候选数据对应写入未占用通道位置,更新所述缓存有效位掩码;当所述冲突掩码不为预设标识时,根据所述冲突掩码,将发生通道占用冲突的有效候选数据作为待插入数据,并将所述冲突掩码作为待插入有效位掩码。

7、于本发明的第一方面的一些实施例中,所述根据当前最新的缓存有效位掩码、待插入有效位掩码及预设最大移位次数,判断是否对已有的缓存有效候选数据及其对应的有效位掩码进行同方向整体移位处理,以判断是否能将待插入数据插入缓存有效候选数据中包括:在所述待插入有效位掩码不为预设标识时,判断所述缓存有效位掩码在整体移位方向的边界位置有效位是否为预设有效值;若是,则停止执行整体移位操作并执行聚合处理;若否,则执行一次对缓存有效候选数据及对应的缓存有效位掩码进行同方向整体移位处理。

8、于本发明的第一方面的一些实施例中,所述对缓存有效候选数据及对应的缓存有效位掩码进行同方向整体移位处理包括:将缓存有效候选数据整体向同一方向移动一个通道,并将对应的缓存有效位掩码同步向同一方向移动一个有效位,将整体移位后空出的通道位置补入无效值并将对应的有效位清零;基于整体移位后的缓存有效位掩码及待插入有效位掩码,判断整体移位后的缓存有效候选数据中是否存在与待插入有效候选数据对应位置的可插入位置;若是,则将待插入有效候选数据中与所述可插入位置对应的有效候选数据写入缓存有效候选数据中,更新所述缓存有效位掩码,并清除所述待插入有效位掩码中与成功插入的有效候选数据对应的有效位;若否,则保持本次整体移位后的缓存有效候选数据及对应缓存有效位掩码的状态,并重复执行判断所述缓存有效位掩码在整体移位方向的边界位置有效位是否为预设有效值。

9、于本发明的第一方面的一些实施例中,在清除待插入有效位掩码中与成功插入的有效候选数据对应的有效位之后,还包括:在执行数据插入及清除之后,判断清除后的待插入有效位掩码是否为预设标识;若是,则完成当前拍数据处理执行下一拍输入数据的筛选操作;若否,则判断更新后的缓存有效位掩码在整体移位方向的边界位置有效位是否为预设有效值;若是,则停止执行整体移位并执行聚合处理;若否,则判断当前已执行的整体移位次数是否达到预设最大移位次数;若是,则停止执行整体移位并执行聚合处理;若否,则重复执行判断所述缓存有效位掩码在整体移位方向的边界位置有效位是否为预设有效值的步骤。

10、于本发明的第一方面的一些实施例中,所述对所述缓存有效候选数据执行聚合处理并传输至后级处理单元包括:在仍存在待插入有效候选数据且无法通过整体移位操作将其插入缓存有效候选数据时,执行聚合处理;其中,所述聚合处理包括gather操作;将缓存有效候选数据以聚合组的形式传输至后级处理单元。

11、为实现上述目的及其他相关目的,本发明的第二方面提供一种面向topk选择的稀疏候选延迟聚合装置,应用于如上所述面向topk选择的稀疏候选延迟聚合方法,所述装置包括:临界值获取模块,用于获取topk临界值;并行比较模块,连接所述临界值获取模块,用于基于topk临界值对每拍输入的多个并行数据进行筛选,获得有效候选数据,并生成与各所述有效候选数据所在通道对应的有效位掩码;候选数据缓存模块,连接所述并行比较模块,用于将第一拍输入的有效候选数据作为缓存有效候选数据,以及将其所对应的有效位掩码作为缓存有效位掩码;新输入候选数据暂存模块,连接所述并行比较模块,用于保存后续再输入的有效候选数据及其对应的有效位掩码;冲突检测模块,连接所述候选数据缓存模块及所述新输入候选数据暂存模块,用于基于缓存有效位掩码,对第一拍之后再输入的后续每拍的有效候选数据所对应的有效位掩码进行通道占用冲突检测,获得冲突检测结果;直接插入模块,连接所述冲突检测模块,用于将未发生通道占用冲突的有效候选数据直接插入缓存有效候选数据中的对应位置;冲突数据暂存模块,连接所述冲突检测模块,用于将发生通道占用冲突的有效候选数据作为待插入数据,生成待插入有效位掩码;整体移位模块,连接所述冲突数据暂存模块,用于根据当前最新的缓存有效位掩码、待插入有效位掩码及预设最大移位次数,判断是否对已有的缓存有效候选数据及其对应的有效位掩码进行同方向整体移位处理,以判断是否能将待插入数据插入缓存有效候选数据中;触发模块,连接所述整体移位模块,用于在无法通过整体移位将待插入数据插入缓存有效候选数据时,对所述缓存有效候选数据执行聚合处理并传输至后级处理单元。

12、为实现上述目的及其他相关目的,本发明的第三方面提供一种电子终端,包括存储器、处理器及存储在存储器上的计算机程序;所述处理器执行所述计算机程序以实现所述方法。

13、如上所述,本发明的面向topk选择的稀疏候选延迟聚合方法、装置及终端,具有以下有益效果:

14、本发明提供了一种面向topk选择的稀疏候选延迟聚合方法、装置及终端,通过对每拍输入的多个并行数据进行阈值筛选,获得有效候选数据及对应有效位掩码,并将有效候选数据保留在原始数据通道中进行缓存;当后续有效候选数据与已有缓存有效候选数据发生通道占用冲突时,将冲突候选数据暂存为待插入数据,并通过有限次数的整体移位释放可插入位置以尝试插入;当待插入数据无法通过整体移位完成插入时,对当前缓存的有效候选数据执行聚合处理并传输至后级处理单元。本发明能够利用候选数据的稀疏性,减少聚合操作及跨通道数据搬运次数,降低硬件资源占用和动态功耗,并减轻后级topk处理单元的处理压力。