【发布时间】:2020-08-10 00:51:19
【问题描述】:
我正在学习DPDK的ACL库,我想加快ACL分类的过程,有什么办法或建议吗?
【问题讨论】:
-
这里的问题如果是具体的会做得更好——你能举一个你觉得太慢的 ACL 分类的例子吗?你做了什么来改进这个具体的例子?
我正在学习DPDK的ACL库,我想加快ACL分类的过程,有什么办法或建议吗?
【问题讨论】:
作为 rte_acl 库的用户,您可以考虑几个方面来获得最佳分类/查找性能:
分类方法:
在rte_acl_init() 中,选择最高分类方法之一作为默认方法。与 scalar/sse4/sse8 相比,支持 AVX2 的向量指令集的 CPU 将提供非常好的分类性能。与标量 = 4, sse8 >= 8 输入流相比,AVX2 分类在一个批次中并行查找多达 16 个。检查功能rte_acl_classify_avx2()了解更多详情。通常在运行时基于可用流数选择的分类方法将是上述所有方法的组合,因此我们观察到与较低速率相比,在较高速度输入速率下更快。
注意:对于 AVX2 支持 CPU 和编译时间CC_AVX2_SUPPORT 标志应该可用。
类别掩码: 根据用例,类别掩码是一种加速分类过程的方法,它通过仅进行单次搜索来执行间接并行查找。例如,可能有多个 ACL 规则,其中单个流将返回匹配的类别数量。 DPDK-18.11 支持的最大类别为 16。有关示例,请参阅 manual。
【讨论】: