Page 75 - 《软件学报》2020年第10期
P. 75
张鸿骏 等:一种适应 GPU 的混合访问缓存索引框架 3051
重 LRU CCHT 的开销,原因是粗粒度 LRU 的一部分索引开销来源于散列表散列值对应桶之间的索引,没有随缓
存空间大小的变化而变化.当缓存空间增大后,使用的槽增多,索引开销主要来源于槽间的链接索引.而双重
LRU CCHT 的全局 LRU 队列的槽索引开销大于粗粒度 LRU CCHT 的开销,导致了两种 CCHT 算法的开销比值
逐渐增加.
Table 3 The point count with different cache size for CCHT
表 3 CCHT 在不同缓存大小情况下的指针索引开销
Cache space size/hash table size (%) Double LRU CCHT pointer count (K) Coarse LRU CCHT pointer count (K)
10 235.92 314.57
20 340.78 367.00
30 445.63 419.42
40 550.49 471.85
50 655.35 524.28
60 760.21 576.71
70 865.06 629.14
80 969.91 681.56
90 1 074.77 733.99
5.5 CCHT在CPUGPU上的吞吐性能
我们将 CCHT 在 CPU+GPU 异构服务器环境上的吞吐性能进行了实验.在 CPUGPU 异构环境上的吞吐性
能是指 CCHT 每秒钟处理的请求数.在 80%缓存空间占比的工作负载下,性能实验结果如图 9 所示.在不同的工
作负载中,CCHT 相对 LRU CHT、Random CHT 和 LRU 开散列表均有显著的性能提升,最高达 126.43 倍、143.17
倍和 1.78 倍.其中,造成 LRU CHT 和 Random CHT 性能最低的原因是对于 CHT 的读写请求只能顺序执行,无法
并发执行,进而导致每次操作类型切换时,需要通过 PCI-E 总线进行数据传输,带来了频繁的内核上下文切换与
驱动调用,最终导致了性能的大幅度降低,甚至远低于 CPU 平台上的 LRU 开散列算法的性能.相对于 LRU
CHT,CCHT 支持了所有操作类型的并发执行,最大程度地利用了 GPU 上的流处理器等硬件并发资源,同时有效
减少了 CPU 与 GPU 之间由于频繁的数据传输带来的额外开销;去除了写操作在高负载率下频发的置换操作,
减少了 GPU 处理过程中的内存访问次数,使散列表索引访问性能得到提升.
Fig.9 Performance on workloads with 80% cache space size/hash table size
图 9 在 80%缓存空间工作负载中的性能表现
5.6 CCHT在CPUGPU上的延迟
我们将 CCHT 在 CPU+GPU 异构服务器环境上的延迟进行了实验.延迟实验包括在 CPU+GPU 异构服务器
环境上的数据传输延迟和单次操作的平均延迟.其中,数据传输延迟表示散列表在运行过程中单次调用 GPU