鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

简介

本文基于鲲鹏920系列处理器和openEuler操作系统,提供Hyperscan的安装和编译指导。

Hyperscan是一款高性能的正则表达式匹配库,它是以PCRE(Perl-compatible regular expression)为原型开发,并以BSD(Berkeley Software Distribution)许可证开源,遵循libpcre库通用的正则表达式语法,拥有独立的C语言接口。在Hyperscan正式发布版本的基础上,参考华为鲲鹏微架构特征,重新设计核心接口的实现机制,并完成了开发和性能优化,推出适合鲲鹏计算平台的软件包。使用鲲鹏计算平台的用户可以根据自己业务需求下载本软件包,提升业务在鲲鹏平台上的稳定性和性能。

Hyperscan鲲鹏计算平台软件版本主要增加了以下功能:

  • 增加鲲鹏计算平台分支,且完全兼容ARMv8-a,同时确保x86平台使用不受影响。
  • 通过使用NEON指令、内联汇编、数据对齐、指令对齐、内存数据预取、静态分支预测、代码结构优化等方法,实现在鲲鹏计算平台的性能提升。
  • 发布KHSEL(Kunpeng Hyperscan Enhanced Library)软件增强包,包括KHSEL_ops和KHSEL_core两个子库、短规则旁路混合模型和假阳性阻断模型。
    • KHSEL_ops提供了固定规则下的C++标准库ReplaceAll的加速优化函数ReplaceAllAcc,可以获得基于鲲鹏920系列处理器的优化效果。
    • KHSEL_core优化了大规模规则集匹配算法FDR,小规模快速匹配算法Shufti,增强了Hyperscan处理snort_literal,snort_pcre等数据集的scan性能,并且针对长规则校验的场景进行了优化。
    • 提供短规则旁路混合模型,对包含短规则的规则集合能大幅提高匹配性能。
    • 提供假阳性阻断模型,对包含坏字符串片段的规则集合能大幅提高匹配性能。其中的“坏字符串”指少量含特殊片段的规则,其导致多模匹配算法报告的假阳性过多,触发大量的解释器调用和低效的长规则校验,而最终无一真实匹配。大量无谓的解释器调用成为热点,多模匹配失去了应有的预过滤能力。

更多关于Hyperscan的信息,请参考鲲鹏Gitcode代码仓