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

简介

本文档提供了鲲鹏系统库的安装指南、详细接口定义与示例代码,旨在帮助用户快速熟悉鲲鹏系统库的使用。

鲲鹏系统库,简称KSL(Kunpeng System Library)是华为提供的基于鲲鹏平台优化的高性能系统函数库,提供了鲲鹏平台上x86指令迁移,内存分配,多线程,编解码,字符串匹配等能力,通过充分发挥鲲鹏硬件优势,对比原生实现有一定的性能和易用性提升。KSL所有接口由C/C++、汇编语言实现。KSL的组成如表1所示。

表1 KSL组成部分

序号

库名

描述

适用场景

1

AVX2KI

Intel Intrinsics指令函数的Arm实现。AVX2KI(Avx To Kunpeng Intrinsic)是一款接口集合库,将传统平台的Intrinsic接口集合使用鲲鹏指令重新实现,并封装为独立的接口模块(C语言头文件方式),以减少大量迁移项目重复开发的工作量。用户可以通过将头文件导入应用程序继续使用传统平台的Intrinsic函数。

Intel Intrinsics指令适配迁移鲲鹏处理器。

2

KQMalloc

鲲鹏高性能内存库KQMalloc(Kunpeng Quick Malloc),是专为鲲鹏920系列处理器设计的内存分配器。此分配器分为单线程和多线程应用场景,最大限度地减少内部缓存占用空间,最大限度地减少内部缓存未命中,可极大地提升应用性能。

内存的申请、释放等。

3

HTL

轻量级线程库HTL(Hyper Thread Library)是构建在内核态线程之上的用户级线程库。用于解决内核级线程大量使用时,应用性能下降、系统资源不足的问题,尤其解决嵌套并行场景下性能极低的问题。在保障减少资源使用的情况下,提升并发度,改善性能。

多线程并行应用。

4

KSL_ASN1

ASN.1(Abstract Syntax Notation One)是定义抽象数据类型规格形式的一套标准,是描述数据的表示、编码、传输、解码的灵活的一种记法。KSL_ASN1是开源ASN.1软件的国产化替换,支持BER(Basic Encoding Rules)、DER(Distinguished Encoding Rules)、PER(Packed Encoding Rules)和XER(XML Encoding Rules)格式,性能相较开源软件asn1c有较大的提升。

ASN.1文件解析与编解码。

5

KHSEL

KHSEL(Kunpeng Hyperscan Enhanced Library)是基于开源Hyperscan针对鲲鹏920系列处理器设计的软件增强包,优化了大规模规则集匹配算法FDR,小规模快速匹配算法Shufti,增强了Hyperscan处理snort_literal,snort_pcre等数据集的scan性能。

正则表达式匹配。

6

kpglibc

kpglibc(Kunpeng GNU C Library)基于鲲鹏920系列处理器,利用向量化指令集对其中的字符串操作函数、内存操作函数和时间操作函数进行性能优化。

字符串操作函数、内存操作函数和时间操作函数。

KSL仅适用于鲲鹏处理器。为获得更优性能,KSL接口内部不做完整入参校验,调用者请使用合法的入参,不合法的入参可能导致报错。