发布时间:2025-06-10 16:11:33 点击量:
HASH GAME - Online Skill Game GET 300
在设计现代计算机系统时首先要考虑的因素是能耗。为了提高能效,如现场可编程门阵列(FPGA),图形处理器(GPU)和定制加速器一类的硬件加速器已被广泛应用于工业领域。随着靠近数据的处理技术的出现,将硬件加速器集成到动态随机存取存储器(DRAM)堆栈中以降低数据移动的成本成为一种新的系统设计思路。其基本思想是利用3D堆叠技术,将一些包含加速器的逻辑die和多个DRAM die垂直集成到一个芯片中。然而,由于3D堆叠DRAM的面积、功耗、散热和制造等方面的限制,能够集成到DRAM中的加速器的数量和类型是有限的。因此,给定一个加速的目标应用程序,确定其中哪些部分最适合在DRAM中加速是至关重要的。
在进一步的实施方案中,所述混排单元包括:多个并行的地址读取子单元:根据各所述哈希索引从目标地址数组中读取目标地址;冲突处理(DECONF)子单元,依据多个目标地址,对有冲突的目标地址,产生基于原始目标地址的偏移,同时也产生相同目标地址的计数值;分散(SCATTER)子单元,用于根据所述偏移和原始目标地址将元组移动到正确的位置,如无冲突则将元组移动至无偏移的目标地址;更新(UPDATE)子单元,根据所述计数值更新目标地址。
上述哈希分区加速器和混合加速系统的构思基于本发明人的如下研究:对于哈希连接算法(例如optimized version of radix join algorithm(PRO))进行了详细的性能分析和能耗分析,该算法针对现代多核系统进行了特殊的优化,上述算法主要包含分区(partition)、构造(build)和探测(probe)三个主要执行阶段,分区阶段可以进一步分为四个阶段:直方图化(Local histogram),前缀计算(prefix sum),输出地址(output addressing),以及数据混排(data shuffling)。本公开发明人分析发现,哈希连接本质上是内存受限的,通过进行能耗分析,在分区阶段,总能量的50%以上被用于数据移动和流水线阻塞,这可以通过内存端加速得到显著缓解。在构造和探测阶段,只有大约15%的能量被用于数据移动和流水线阻塞,这仍然可以通过现有的CPU端加速器(如SIMD单元)加速。并且分区阶段中,直方图化和数据混排阶段占总执行时间的99%以上。原因在于这两个阶段有高代价的非规则内存访问。因此,本公开中主要考虑对这个两个阶段采用靠近数据的处理技术。图1是本公开实施例的哈希分区加速器在内存(例如3D堆叠DRAM)所处位置示意图。结合图2所示,根据本公开实施例的一方面,提供一种哈希分区加速器,配置为集成于内存上,用于加速处理哈希连接分区(partition)阶段,该哈希分区加速器包括:
在一些实施中,该混排单元(c)可以包括多个并行的地址读取子单元31,其根据各所述哈希索引从目标地址数组中读取目标地址;冲突处理(DECONF)子单元32,依据多个目标地址,对有冲突的目标地址,产生基于原始目标地址的偏移,同时也产生相同目标地址的计数值;分散(SCATTER)子单元33,用于根据所述偏移和原始目标地址将元组移动到正确的位置,如无冲突则将元组移动至无偏移的目标地址;以及更新(UPDATE)子单元,根据所述计数值更新目标地址。
在一些实施例中,,所述冲突处理子单元32包括复用XNOR网络,该网络输入为冲突的目标地址,输出分别为标地址的偏移和计数值。如图3所示,是一个典型的二进制网络的示例,四个目标地址的数值d0,d1,d2和d3从dst数组中并行的读出。为了计算d0的总数量,例如count(d0),首先d0分别与d1,d2和d3进行同或操作,然后所有同或的数值进行求和。同样的,count(d1)通过加xnor(d1,d0),xnor(d1,d2)和xnor(d1,d3)计算得出。计算目标地址偏移也可以通过复用XNOR网络来实现。例如,offset(d1)是xnor(d1,d2)和xnor(d1,d3)的求和。
在一些实施例中,内存可以为3D堆叠DRAM,该哈希分区加速器配置为集成到3D堆叠DRAM的逻辑层上。对于每个3D DRAM堆,都可集成多个该加速器,用于加速分区阶段。每个3D堆叠DRAM包含一个或者多个vault,并且每个vault都由逻辑层的vault控制器访问,可以将一个哈希分区加速器通过半导体工艺附加到vault controller上。将加速器集成在DRAM中的好处在于从各方面减少partition阶段的能耗(减少数据移动的能耗、流水线阻塞的能耗、计算的能耗),从而减少总体能耗。
如图2所示,每个哈希分区加速器主要包括部分:哈希单元(hash unit),直方图单元(histogram unit)和混排单元(shuffle unit),这些单元通过vault控制器访问DRAM层(vault控制器再通过TSV访问上层的DRAM层),并且与逻辑层的开关电路相连。所述逻辑层包括vault控制电路,所述哈希单元、直方图单元和混排单元均电性连接所述vault控制电路,通过该控制电路访问DRAM层。
对于直方图单元的操作,以能量-延迟积(EDP)为标准,在所有的DRAM配置下,在并行度是32左右时,EDP达到了最小值。举例来说,针对HI配置,在1.2GHz下,最优化的EDP需要并行度64的配置。一般来说,相比HI配置,MD和LO DRAM配置具有更好的能效(每个vault),特别是在像64之类较大的并行度的情况下。图5为不同设计下的混排操作的能量-延迟积示意图。其显示每个vault的混排操作能量-延迟积(EDP)和面积。达到最佳EDP的并行度是在32到128之间。例如,在2GHz下,并行度为32的EDP是并行度为512的EDP的1.77倍。在所有的这些配置中,获得最佳EDP的配置为并行度=64,频率=1.2GHz和DRAM配置=LO。最优配置下,每个vault的面积为0.18mm2。