Intel AVX-512 - Ultra Parallelized Multi-hash Computation

1  介绍

基于Sketch的算法是新兴技术,广泛应用于网络测量和网络遥测工作负载中,生成网络流的近似估计。它用于防止分布式拒绝服务(DDoS)攻击,监视网络使用情况以及各种服务质量(QoS)目的。与哈希表或其他无损算法相比,基于Sketch的算法采用紧凑且优化的数据结构设计,以实现更高的内存效率和计算吞吐量。

其核心数据结构,即Sketch,由一个二维数组组成。数组的每一行对应于由独立计算的哈希函数索引的结果摘要空间。使用更多独立的哈希函数可以提供更准确的估计结果。然而,增加哈希计算的数量会增加CPU消耗的量,这可能会阻止应用程序处理高容量的网络流量。因此,在这个领域中需要一种高吞吐量的多哈希计算方法。

这个技术指南提出了一种新型模型,通过利用Intel® Advanced Vector Extensions 512 (Intel® AVX-512)指令来加速多哈希计算。与最先进算法的标准CRC-32指令方法相比,这种创新方法在关键的键添加和键查找操作方面的平均性能提高了2倍。此外,由于不同的工作负载对哈希算法(随机性、加密性、小数据速率等)有不同的要求,我们提出的模型支持不同目的的算法定制。该解决方案为开发人员提供了一个坚实、灵活的基础,用于构建高吞吐量的网络测量和监控应用程序。通过利用其优化的数据平面,具体实现可以在各种网络遥测工作负载中获得出色的性能。

这份文档是Network & Edge Platform Experience Kits的一部分。

2  概述

我们所知,目前没有高度并行的多哈希计算解决方案。我们提出了以下三种替代方案作为初始选项:

1. 使用特定的硬件(例如网络适配器、FPGA)进行哈希计算

2. 使用长输出的哈希函数(例如SHA3-512),然后将结果均匀分成多个部分,以获得多哈希结果

3. 使用不同种子的CRC-32指令加速哈希函数

不过上述提出的解决方案存在一些缺点:

1. 特定硬件(例如网络适配器):哈希算法在特定的硬件上运行,通常是固定和僵化的,因此无法满足各种数据流算法中所使用的哈希算法的多样化要求。此外,数据流分析应用程序通常在网络堆栈的顶层运行。例如,许多防火墙和网络遥测应用程序在网络数据包解密和解压缩后运行。将数据流发送回硬件设备受到长时间的设备通信延迟的限制。所以最好在运行在CPU上的工作负载附近生成哈希结果。

2. 长输出的哈希函数:像SHA3-512这样的哈希算法可以生成长的哈希值,可以用来替代多个较短的哈希计算。但是有几个注意事项。1)现有的长输出哈希算法不足够灵活,不能进行性能效率权衡的定制。2)算法必须具有良好的雪崩效应,即当输入略微改变时,输出应该显著改变。这需要更复杂的算术运算,导致性能降低。SHA3-512在Intel® Xeon® Processor E3-1220 v5上的性能为164 cpb(时钟周期每字节),输入大小为8字节。虽然性能基准平台不同,但与本文提出模型的4.5 cpb相比,现有的长输出哈希算法在吞吐性能方面明显落后。

3. CRC-32指令:Intel已经引入了硬件CRC-32指

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值