---
title: 介绍
description: "应用开发工具支持创建鲲鹏应用工程，支持C/C++开发语言，编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/development/development/DevKit_Development_0001.html
sourcePath: /source/zh/kunpengdevps/development/development/DevKit_Development_0001.html
indexId: dbcc53922e20e80e7555c6b662a96b8bc1a168dd130926ebd189b79c4fc04efc76
---
# 介绍

应用开发工具支持创建鲲鹏应用工程，支持C/C++开发语言，编码时能够自动匹配鲲鹏加速库函数字典、智能提示、高亮、联想字典中可以替换的库和函数。


**表1 功能特性**

| 功能 | 描述 |
| --- | --- |
| 空工程 | 鲲鹏应用开发工具能自动化创建鲲鹏空工程，也可以对现有工程进行项目管理。 |
| 通用计算应用 | 鲲鹏应用开发工具提供鲲鹏通用计算SDK，创建通用计算应用工程以支持基础应用开发，包含加速库应用、硬件加速应用以及同构加速框架应用。 |
| 安全计算 应用 | 鲲鹏应用开发工具能自动化创建 安全计算 GP工程和高级语言工程，改造已有Java/Python工程，支持部署SDK、检查编译环境等。 |
| 高性能计算 应用 | 基于高性能通信库和数学库创建高性能计算应用，用户能够通过扩展工程样例，提升开发效率。 |
| DPAK 应用 | 鲲鹏应用开发工具能自动化创建DPAK工程并提供鲲鹏DPAK SDK，鲲鹏DPAK提供面向Smart NIC场景的业务卸载能力，支持网络卸载、虚拟化卸载等场景。 |
| 数据IO应用 | 基于鲲鹏BoostKit存储加速算法库（KSAL）构建数据IO应用，使用鲲鹏自研存储加速算法库提升IO读性能。 |
| 数据压缩应用 | 使用华为自研无损压缩算法构建算法工程，通过对原始数据进行特征识别，动态匹配最佳压缩算法模型，实现数据缩减率提升；同时针对鲲鹏处理器进行指令级优化，实现压缩性能加速。 |
| 字典管理 | 鲲鹏应用开发工具可导入本地字典文件。 |
| 编程辅助 | 支持鲲鹏加速库函数的悬浮提示、函数搜索，支持编码时自动联想和高亮鲲鹏加速库优化后的相关函数。 |


目前，应用开发工具还支持以下加速库和高性能开源组件：


**表2 支持的加速库**

| 类别 | 名称 | 说明 |
| --- | --- | --- |
| 系统库 | Glibc\-patch | Glibc\-patch主要对内存、字符串、锁等接口基于华为鲲鹏920处理器微架构特点进行了加速优化。 |
| 系统库 | Hyperscan | Hyperscan基于鲲鹏微架构优势，使用鲲鹏指令加速正则表达式的编译、扫描性能。 |
| 系统库 | AVX2KI | AVX2KI是一款接口集合库，将传统平台的Intrinsic接口集合使用鲲鹏指令重新实现，并封装为独立的接口模块（C语言头文件方式），以减少大量迁移项目重复开发的工作量。 |
| 压缩 | Gzip | 基于Gzip\-1.10，通过数据预取、循环展开、CRC指令替换等方法，来提升其在鲲鹏计算平台上的压缩和解压缩速率，尤其对文本类型文件的压缩及解压具有更明显的性能优势。 |
| 压缩 | ZSTD | Zstandard，即ZSTD压缩库，基于ZSTD\-1.4.4，通过使用NEON指令、内联汇编、代码结构调整、内存预取、指令流水线排布优化等方法，实现ZSTD在鲲鹏计算平台上压缩和解压性能的提升。 |
| 压缩 | Snappy | 基于Snappy\-1.1.7，利用内联汇编、宽位指令、优化CPU流水线、内存预取等方法，实现Snappy在鲲鹏计算平台上的压缩和解压速率提升。 |
| 压缩 | KAEZlib | KAEZlib是鲲鹏加速引擎的压缩模块，使用鲲鹏硬加速模块实现Deflate算法，结合无损用户态驱动框架，提供高性能Gzip/zlib格式压缩接口。 |
| 加解密 | KAE加解密 | 使用鲲鹏硬加速模块实现RSA/SM3/SM4/DH/MD5/AES算法，结合无损用户态驱动框架，提供高性能对称加解密、非对称加解密算法能力，兼容OpenSSL1.1.1a及其之后版本，支持同步&异步机制。 |
| 媒体 | x265 | 使用鲲鹏加速指令对X265开源库的转码核心代码进行重构，在保证原有接口及算法不变的情况下，在鲲鹏平台下能获得较好的转码性能。针对FFmpeg视频转码场景，对X265的转码底层算子使用鲲鹏向量化指令进行加速优化，提高转码性能。 |
| 媒体 | HMPP | 鲲鹏超媒体性能库HMPP（Hyper Media Performance Primitives）包括向量缓冲区的分配与释放、向量初始化、向量数学运算与统计学运算、向量采样与向量变换、滤波函数、变换函数（快速傅里叶变换），支持IEEE 754浮点数运算标准，支持在鲲鹏平台下使用。 |
| 媒体 | x264 | X264是采用GPL授权的视频编码免费软件，主要功能是实现H.264/MPEG\-4 AVC的视频编码。 |
| 数学库 | KML\_FFT | KML\_FFT基于鲲鹏架构，通过向量化、算法改进，对快速傅里叶变换进行了深度优化，使得快速傅里叶变换接口函数的性能有大幅度提升。 |
| 数学库 | KML\_BLAS | KML\_BLAS基于鲲鹏架构，通过向量化、数据预取、编译优化、数据重排等手段，对BLAS的计算效率进行了深度挖掘，使得BLAS接口函数的性能逼近理论峰值。 |
| 数学库 | KML\_SPBLAS | KML\_SPBLAS基于鲲鹏架构，充分利用鲲鹏的指令集和架构特点，开发了高性能稀疏矩阵运算库，提升HPC和大数据解决方案业务性能。 |
| 数学库 | KML\_MATH | KML\_MATH通过周期函数规约、算法改进等手段，提供了基于鲲鹏处理器性能提升较大的函数实现。 |
| 数学库 | KML\_VML | KML\_VML通过NEON指令优化、内联汇编等方法，对输入数据进行向量化处理，充分利用了鲲鹏架构下的寄存器特点，实现了在鲲鹏处理器上的性能提升。 |
| 数学库 | KML\_LAPACK | KML\_LAPACK通过分块、求解算法组合、多线程、BLAS接口优化等手段，基于鲲鹏架构对LAPACK的计算效率进行了优化，实现了在鲲鹏处理器上的性能提升。 |
| 数学库 | KML\_SVML | KML\_SVML通过NEON指令优化、内联汇编等方法，对输入向量进行批量处理，充分利用了鲲鹏架构下的寄存器特点，实现了在鲲鹏服务器上的性能提升。 |
| 数学库 | KML\_SOLVER | KML\_SOLVER是稀疏求解器库（Sparse Solvers），提供直接求解器和迭代求解器，支持单节点多线程、集群MPI多进程。 |
| 存储 | Smart Prefetch | Smart Prefetch（智能预取），创新性地采用高速缓存盘配合高效的预取算法，提升系统存储IO性能，进而提升上述解决方案中存储IO密集型场景的整体性能。 |
| 存储 | SPDK | SPDK全称Storage Performance Development Kit（高性能存储开发包），SPDK的目标是通过使用网络技术、处理技术和存储技术来提升效率和性能。通过运行为硬件设计的软件，SPDK已经证明很容易达到每秒钟数百万次IO读取，通过使用多处理器核心和多NVMe驱动进行存储，而不需要额外卸载硬件。 |
| 存储 | ISA\-L | ISA\-L全称Intelligent Storage Acceleration Library，是提供RAID、纠错码、循环冗余检查、密码散列和压缩的高度优化的函数库。 |
| 网络 | XPF | XPF（Extensible Packet Framework）加速库是鲲鹏自研加速库，XPF自研功能模块，在 OVS （Open vSwitch）软件内部实现了一个智能卸载引擎模块，该模块用于跟踪数据报文在OVS软件中所经历的所有流表和CT表，将执行的CT行为和所有流表行为项进行综合编排成一条综合行为项并结合统一匹配项生成一条集成流表项。 |
| 网络 | DPDK | DPDK全称Data Plane Development Kit，为用户空间高效的数据包处理提供数据平面开发工具集，包括库函数和驱动。 |


**表3 支持的高性能开源组件**

| 类别 | 名称 | 说明 |
| --- | --- | --- |
| HPC | Hyper MPI | Hyper MPI是整个高性能计算解决方案的关键组件，它实现了并行计算的网络通讯功能，可以用来支持制造、气象等应用场景，同时该通信库也可扩展应用于AI、大数据等通用领域。 |
