System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 加速器、排序方法和异构计算系统技术方案_技高网

加速器、排序方法和异构计算系统技术方案

技术编号:40036114 阅读:7 留言:0更新日期:2024-01-16 19:00
本发明专利技术实施例提供了一种加速器、排序方法和异构计算系统。所述加速器包括:读取单元,用于根据处理器的排序指令,从第一存储空间读取待排序数据;排序单元,用于将所述待排序数据中的部分数据读取到排序容器中进行初始排序,得到填满所述排序容器的预设容量的排序序列,并且将所述待排序数据中的剩余数据与所述排序序列中的数据进行排序,以更新所述排序序列,其中,所述排序容器的预设容量对应于预设排序截取长度;写入单元,用于将更新后的排序序列作为所述排序指令的排序结果写入到第二存储空间。本发明专利技术实施例的方案提高了加速器的计算效率,进而提高了异构计算系统的计算效率。

【技术实现步骤摘要】

本专利技术实施例涉及计算机,尤其涉及一种加速器、排序方法和异构计算系统


技术介绍

1、数据处理单元(data processing unit,dpu)作为一种加速器,可以实现为专用数据处理芯片。在处理复杂的数据计算时相比于诸如cpu的处理器能够获得极高的性能提升。

2、在进行数据计算任务时,可以采用包括cpu和诸如dpu等加速器的异构计算系统,将相应子任务的计算处理从cpu卸载到加速器,进而提升了计算性能。尤其在加速诸如大数据场景等所需的分布式计算任务(例如,apache spark)的运算能力时,这样的异构计算架构可以使cpu专注于执行分布式计算任务的调度,并且使加速器专注于执行子任务(例如,sparksql)中的数据计算。

3、诸如sparksql等查询子任务的计算过程中,需要执行诸如topn算子等排序算子的计算。传统的加速器在计算排序算子时通常采用内部的多个计算单元的协作,在计算过程中需要在不同计算单元之间进行中间计算结果的搬运,加速器的计算效率比较低,进而导致异构计算系统的计算效率也较低。


技术实现思路

1、有鉴于此,本专利技术实施例提供一种加速器、排序方法和异构计算系统,以至少部分解决上述问题。

2、根据本专利技术实施例的第一方面,提供了一种加速器,包括:读取单元,用于根据处理器的排序指令,从第一存储空间读取待排序数据;排序单元,用于将所述待排序数据中的部分数据读取到排序容器中进行初始排序,得到填满所述排序容器的预设容量的排序序列,并且将所述待排序数据中的剩余数据与所述排序序列中的数据进行排序,以更新所述排序序列,其中,所述排序容器的预设容量对应于预设排序截取长度;写入单元,用于将更新后的排序序列作为所述排序指令的排序结果写入到第二存储空间。

3、在本专利技术的另一实现方式中,所述排序单元具体用于:如果所述待排序数据中的剩余数据中的当前数据的排序优先级先于在所述排序序列中的第一数据的排序优先级,则将所述当前数据排在所述第一数据之前,同时删除所述排序序列中末尾数据,以更新所述排序序列。

4、在本专利技术的另一实现方式中,所述读取单元具体用于:如果所述待排序数据中还存在剩余数据,则将所述当前数据的下一数据读取为所述当前数据。所述写入单元具体用于:如果所述待排序数据中不存在剩余数据,则将更新后的排序序列作为所述排序指令的排序结果写入到第二存储空间。

5、在本专利技术的另一实现方式中,所述排序单元还用于:如果所述当前数据的排序优先级后于所述排序序列中的末尾数据,则丢弃所述当前数据。

6、在本专利技术的另一实现方式中,所述排序单元具体用于:如果所述当前数据的排序优先级后于所述第一数据且先于第二数据,则将所述当前数据排在所述第一数据与所述第二数据之间。

7、在本专利技术的另一实现方式中,在所述排序单元将所述当前数据排在所述第一数据与所述第二数据之前,所述排序单元确定所述第一数据与所述第二数据在所述排序序列中相邻。

8、在本专利技术的另一实现方式中,所述排序单元具体用于:如果所述待排序数据中的当前数据的排序优先级先于在所述排序容器中的第三数据的排序优先级,则在所述排序容器中将所述当前数据排在所述第三数据之前。如果所述当前数据的排序优先级后于所述第三数据并且先于第四数据,则在所述排序容器中将所述当前数据排在所述第三数据与所述第四数据之间,所述第三数据与所述第四数据为相邻数据。如果所述当前数据的排序优先级后于所述第四数据,则在所述排序容器中将所述当前数据排在所述第四数据之后。

9、在本专利技术的另一实现方式中,所述排序单元具体用于:如果在所述当前数据排在所述排序容器后,所述排序容器被填满,则确定所述排序序列。

10、在本专利技术的另一实现方式中,所述排序单元还用于:根据所述排序指令,创建所述预设容量的排序容器,并且在所述写入单元写入更新后的排序排列之后,删除所述排序容器,其中,所述排序指令中包括所述预设容量。

11、在本专利技术的另一实现方式中,所述加速器还包括通信单元,用于:获取所述排序指令,并且在所述写入单元写入更新后的排序排列之后,向所述处理器发送所述排序指令的响应。

12、根据本专利技术实施例的第二方面,提供了一种排序方法。排序方法包括:根据处理器的排序指令,从第一存储空间读取待排序数据;将所述待排序数据中的部分数据读取到排序容器中进行初始排序,得到填满所述排序容器的预设容量的排序序列,其中,所述排序容器的预设容量对应于预设排序截取长度;将所述待排序数据中的剩余数据与所述排序序列中的数据进行排序,以更新所述排序序列;将更新后的排序序列作为所述排序指令的排序结果写入到第二存储空间。

13、根据本专利技术实施例的第三方面,提供了一种异构计算系统。所述异构计算系统包括处理器和根据第一方面所述的加速器。

14、在根据本专利技术实施例中,通过在排序容器中进行初始排序,得到填满排序容器的排序序列,再通过排序容器内的局部排序更新排序序列,避免了对待排序数据进行全局排序,减少了计算量。此外,初始排序和进一步排序都在排序单元的排序容器中进行,避免了数据在不同计算单元中搬运,提高了加速器的计算效率,进而提高了异构计算系统的计算效率。

本文档来自技高网...

【技术保护点】

1.一种加速器,包括:

2.根据权利要求1所述的加速器,其特征在于,所述排序单元具体用于:

3.根据权利要求2所述的加速器,其特征在于,所述读取单元具体用于:如果所述待排序数据中还存在剩余数据,则将所述当前数据的下一数据读取为所述当前数据;

4.根据权利要求2所述的加速器,其特征在于,所述排序单元还用于:

5.根据权利要求2所述的加速器,其特征在于,所述排序单元具体用于:如果所述当前数据的排序优先级后于所述第一数据且先于第二数据,则将所述当前数据排在所述第一数据与所述第二数据之间。

6.根据权利要求5所述的加速器,其特征在于,在所述排序单元将所述当前数据排在所述第一数据与所述第二数据之前,所述排序单元确定所述第一数据与所述第二数据在所述排序序列中相邻。

7.根据权利要求1所述的加速器,其特征在于,所述排序单元具体用于:

8.根据权利要求7所述的加速器,其特征在于,所述排序单元具体用于:如果在所述当前数据排在所述排序容器后,所述排序容器被填满,则确定所述排序序列。

9.根据权利要求1所述的加速器,其特征在于,所述排序单元还用于:根据所述排序指令,创建所述预设容量的排序容器,并且在所述写入单元写入更新后的排序排列之后,删除所述排序容器,其中,所述排序指令中包括所述预设容量。

10.根据权利要求1所述的加速器,其特征在于,所述加速器还包括通信单元,用于:获取所述排序指令,并且在所述写入单元写入更新后的排序排列之后,向所述处理器发送所述排序指令的响应。

11.一种排序方法,其特征在于,包括:

12.一种异构计算系统,其特征在于,包括:

...

【技术特征摘要】

1.一种加速器,包括:

2.根据权利要求1所述的加速器,其特征在于,所述排序单元具体用于:

3.根据权利要求2所述的加速器,其特征在于,所述读取单元具体用于:如果所述待排序数据中还存在剩余数据,则将所述当前数据的下一数据读取为所述当前数据;

4.根据权利要求2所述的加速器,其特征在于,所述排序单元还用于:

5.根据权利要求2所述的加速器,其特征在于,所述排序单元具体用于:如果所述当前数据的排序优先级后于所述第一数据且先于第二数据,则将所述当前数据排在所述第一数据与所述第二数据之间。

6.根据权利要求5所述的加速器,其特征在于,在所述排序单元将所述当前数据排在所述第一数据与所述第二数据之前,所述排序单元确定所述第一数据与所述第二数据在所述排序序列中相邻。

7.根...

【专利技术属性】
技术研发人员:马荣杰才华
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:

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

1