# CPUBench
**Repository Path**: bench_performance/cpubench
## Basic Information
- **Project Name**: CPUBench
- **Description**: 通用计算CPU性能测试基准工具
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 4
- **Created**: 2021-12-04
- **Last Updated**: 2026-08-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: benchmark, CPU性能测试
## README
# 📊 CPUBench
> 通用计算 CPU 性能测试基准工具
## 🧾 项目简介
CPUBench 是由中国电子技术标准化研究院、华为技术有限公司、海光信息技术股份有限公司、上海兆芯集成电路股份有限公司、飞腾信息技术有限公司、龙芯中科技术股份有限公司、无锡先进技术研究院、深圳市中兴微电子技术有限公司、阿里巴巴达摩院(杭州)科技有限公司、超睿科技(上海)有限公司等联合推出的通用计算CPU性能测试基准工具。
工具的核心评估目标:
1. CPU 单核/多核的整型/浮点计算能力
2. 内存子系统
3. 编译链、JVM 等底层软件优化能力
## 🆕 v1\.5 版本更新日志
1. 新增 JDK25 完整适配支持,兼容新旧多版本 Java 运行环境
2. 新增 NUMA 绑核调度功能,支持自定义 CPU 节点绑定测试
3. 新增 loongarch\-abi2\.0 架构标准适配,完善龙芯新 ABI 兼容
4. 扩充测试负载集合:
- 整型新增:int\_qpp
- 浮点新增:float\_quicksilver、float\_roms
5. PDF 测试报告版权年份统一调整为 **2026**
6. 修复高版本编译器兼容性异常问题
7. 修复一些操作系统兼容性异常问题
## 🏗️ 整体设计与测试指标
### 四大测试套件说明
工具按**运算类型(整型 / 浮点)** \+ **并发规模(单核 / 多核)** 划分 四大套件,每个套件支持 `typical`、`extreme` 两种测试模式,合计 8 项核心性能指标:
| 测试套件 | 输出性能指标 | 评估目标 |
| --------------- | -------------------------------------------------------- | ---------- |
| IntSingle | int\_single\_typical
int\_single\_extreme | 单核整型运算能力 |
| IntConcurrent | int\_concurrent\_typical
int\_concurrent\_extreme | 多核整型并发运算能力 |
| FloatSingle | float\_single\_typical
float\_single\_extreme | 单核浮点运算能力 |
| FloatConcurrent | float\_concurrent\_typical
float\_concurrent\_extreme | 多核浮点并发运算能力 |
### Typical / Extreme 两种测试模式
1. **typical(通用优化模式)**
要求不同负载必须使用相同的性能优化措施,体现性能优化的通用性。比如,测试套件中相同语言的负载编译优化参数必须相同。
2. **extreme(极限优化模式)**
允许不同负载使用不同的性能优化措施,体现该系统极限优化的性能水平。比如,不同测试负载使用不同的编译优化参数。
### 业务负载清单
#### 整型负载(IntSingle / IntConcurrent)
| 负载名称 | 所属应用领域 |
| ------------- | ------------ |
| int_gcc | 编译器 |
| int_x264 | 视频编码 |
| int_gzip | 数据压缩 |
| int_tpcc | 数据库事务处理 |
| int_tpch | 数据库在线分析 |
| int_kmeans | 机器学习 \- 聚类算法 |
| int_wordcount | 大数据-统计 |
| int_velvet | 基因序列拼接 |
| int_openssl | 加解密 |
| int_rapidjson | JSON 解析/生成 |
| int_python | Python 解释器 |
| int_xz | 数据压缩 |
| int\_qpp | 量子计算仿真 |
#### 浮点负载(FloatSingle / FloatConcurrent)
| 负载名称 | 所属应用领域 |
| ------------------ | --------------- |
| float_lightgbm | 机器学习 \- 梯度提升决策树 |
| float_nektar | 气动声学 |
| float_phenglei | 流体动力学 |
| float_phyml | 基因分析 |
| float_gromacs | 分子动力学 |
| float_povray | 光线追踪 |
| float_lammps | 分子动力学 |
| float_cube | 天体物理 |
| float_openfoam | 电磁学 |
| float_wrf | 天气预报 |
| float\_quicksilver | 粒子输运数值模拟 |
| float\_roms | 区域海洋环流数值模拟 |
## ⚙️ 软硬件运行要求
### 资源规格
1. 内存:单实例占用约 2GB
2. 磁盘
- Single 单核模式:最低 20GB 空闲空间
- Concurrent 多核模式:每并发实例额外增加 2GB
3. 共享内存 `/dev/shm`:至少预留 3GB
### 软件依赖
1. 编译工具:C/C\+\+/Fortran 编译器、CMake ≥ 3\.14\.1
2. Java:JDK 17 \~ JDK25 全版本兼容
3. 系统工具:numactl、perl
4. Python3 及第三方库
```bash
pip3 install PyPDF2 reportlab
```
### 支持硬件架构
x86\_64、aarch64、risc-v、loongarch64、sw\_64、ppc64le
> v1\.5 新增 loongarch\-abi2\.0 标准适配
> 内置适配对应架构的 CMake、Python3,仅需手动安装编译器与 JDK
## 📦 快速安装指南
### 1\. 依赖环境安装
#### RedHat / CentOS / Rocky 系
```bash
yum install -y perl gcc gcc-c++ gcc-gfortran java numactl
```
#### Debian / Ubuntu 系
```bash
apt-get install -y perl gcc g++ gfortran default-jdk numactl
```
> 离线部署参考文档:`docs/install.md` 本地镜像配置方案
### 2\. 软件包解压部署
CPUBench 免安装,下载 `CPUBench.tar.gz` 解压即可使用
```bash
tar -zxvf CPUBench.tar.gz
cd CPUBench
```
## ▶️ 测试运行教程
### 配置文件说明
配置模板文件:`config/config-template.ini`
规则:
- 配置区分大小写
- 注释使用 `#` / `;` 开头
- 缩进 / 空格换行代表上一配置项附属参数
- v1\.5 新增 NUMA 绑核相关配置项,可在配置文件指定 NUMA 节点、CPU 核心绑定策略
完整参数说明:\[配置文件使用指南\]\(\./docs/config\.md\)
### 常用运行命令
1. 使用默认模板配置全量测试
```bash
./cpubench.sh
```
2. 指定自定义配置文件运行
```bash
./cpubench.sh -c config/xxx.ini
```
3. 单独指定某一套测试套件执行
```bash
# 单核整型
./cpubench.sh -b IntSingle
# 多核整型并发
./cpubench.sh -b IntConcurrent
# 单核浮点
./cpubench.sh -b FloatSingle
# 多核浮点并发
./cpubench.sh -b FloatConcurrent
```
4. 查看全部启动参数帮助
```bash
./cpubench.sh -h
```
## 📑 测试报告查看
1. 报告根目录:`安装目录/work_dir`
2. 每次执行自动新建独立结果文件夹,命名格式 `result_年月日时分秒`
示例:`result_20260810145648`
3. 输出文件:标准化 PDF 性能报告
示例:`CPUBench_int_concurrent_20260810154050.pdf`
> v1\.5 更新:PDF 报告内版权、文档年份统一修改为 2026
## 🔧 扩展开发文档
如需新增自定义测试负载、业务场景 Benchmark:
\[新增 Benchmark 开发指南\]\(\./docs/benchmark\.md\)
## 📚 配套详细文档
| 文档路径 | 文档用途 |
| --------------------------------------- | ----------------------------- |
| docs/\[install\.md\]\(install\.md\) | 多系统完整离线安装步骤 |
| docs/\[config\.md\]\(config\.md\) | 配置文件全参数详解(含 v1\.5 NUMA 绑核配置) |
| docs/\[benchmark\.md\]\(benchmark\.md\) | 自定义负载开发教程 |
| docs/\[FAQ\.md\]\(FAQ\.md\) | 运行报错、资源异常解决方案(新增高版本编译器兼容问题排查) |
## ❓ 常见问题
运行内存不足、磁盘空间报错、编译失败、报告生成异常、多架构兼容、JDK 新版本适配、NUMA 绑核异常、高版本编译器编译报错等统一查阅:
👉 \[FAQ 问题排查手册\]\(\./docs/FAQ\.md\)
## 📜 License
CPUBench v1.5 is licensed under the **Apache‑2.0 License**.
See the [LICENSE](./license.txt) file for full license text.
Copyright © 2026 CPUBench Project Contributors.
---
当前版本:CPUBench v1\.5
如果本基准套件对你的硬件性能测试工作有帮助,欢迎 Star 支持本项目。