neuroscan-ai / BENCHMARK.md
cyd0806's picture
Upload NeuroScan AI code
35b365b verified
# NeuroScan AI 性能基准测试
## 🔬 性能基准测试报告
> 测试时间: 2026-01-28 17:16:29
### 测试环境
| 组件 | 配置 |
|------|------|
| **CPU** | Intel(R) Xeon(R) Platinum 8350C CPU @ 2.60GHz |
| **CPU核心** | 64 物理核 / 128 逻辑核 |
| **内存** | 2014 GB |
| **GPU** | NVIDIA A800-SXM4-80GB |
| **GPU显存** | 80 GB |
| **Python** | 3.11.11 |
| **PyTorch** | 2.8.0+cu129 |
| **CUDA** | 12.9 |
| **MONAI** | 1.5.2 |
| **SimpleITK** | 2.4.1 |
### 测试数据
| 属性 | 值 |
|------|------|
| **数据集** | Learn2Reg Lung CT |
| **样本数量** | 20 对 (吸气/呼气配对) |
| **输入尺寸** | 192 × 192 × 208 体素 |
| **体素间距** | 1.0 × 1.0 × 1.0 mm |
| **数据类型** | float32 |
| **单卷大小** | 58.5 MB |
| **单卷体素数** | 7,667,712 |
---
## CPU 并发基准测试
### 测试任务: 配准 + 变化检测流程
1. **数据加载**: NIfTI 格式加载
2. **刚性配准**: 6DOF 仿射变换 (SimpleITK)
3. **非刚性配准**: B-spline 形变场 (SimpleITK)
4. **变化检测**: 体素级差异计算
### 测试结果
| 并发数 | 总耗时 | 吞吐量 | CPU峰值 | CPU均值 | 内存峰值 | 内存增量 | 并行效率 |
|--------|--------|--------|---------|---------|----------|----------|----------|
| 1 | 7.38s | 8.1/min | 10.3% | 1.9% | 39.1 GB | +1.0 GB | 100% |
| 2 | 7.68s | 15.6/min | 38.8% | 5.4% | 40.0 GB | +2.0 GB | 192% |
| 3 | 8.44s | 21.3/min | 39.2% | 7.4% | 40.8 GB | +3.0 GB | 262% |
| 4 | 9.07s | 26.5/min | 42.6% | 9.5% | 41.8 GB | +4.0 GB | 325% |
| 5 | 9.60s | 31.2/min | 42.0% | 11.3% | 42.5 GB | +5.0 GB | 384% |
### 单任务耗时分解
| 阶段 | 耗时 | 占比 | 说明 |
|------|------|------|------|
| 数据加载 | 0.08s | 1% | NIfTI 读取 + 预处理 |
| 刚性配准 | 1.10s | 15% | 6DOF 仿射变换优化 |
| 非刚性配准 | 6.20s | 84% | B-spline 形变场优化 |
| 变化检测 | 0.02s | <1% | NumPy 差异计算 |
| **总计** | **7.40s** | **100%** | - |
### CPU 利用率分析
```
并发数: 1 ▓░░░░░░░░░░░░░░░░░░░ 10.3%
并发数: 2 ▓▓▓▓▓▓▓░░░░░░░░░░░░░ 38.8%
并发数: 3 ▓▓▓▓▓▓▓░░░░░░░░░░░░░ 39.2%
并发数: 4 ▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 42.6%
并发数: 5 ▓▓▓▓▓▓▓▓░░░░░░░░░░░░ 42.0%
```
> 📊 **结论**: CPU 利用率在 5 并发时仅达到 42%,说明还有很大的并发扩展空间。
---
## GPU 并发基准测试
### 测试任务: MONAI 器官分割
- **模型**: TotalSegmentator (104 类器官)
- **推理方式**: Sliding Window (滑动窗口)
- **窗口大小**: 96 × 96 × 96
- **重叠率**: 50%
### 测试结果
| 并发数 | 总耗时 | GPU显存峰值 | GPU利用率峰值 | CPU峰值 | 内存峰值 |
|--------|--------|-------------|---------------|---------|----------|
| 1 | 8.19s | **9.0 GB** | 100% | 37.5% | 42.1 GB |
| 2 | 8.50s | **15.0 GB** | 100% | 5.8% | 43.2 GB |
### 单任务耗时分解
| 阶段 | 耗时 | 占比 | 说明 |
|------|------|------|------|
| 数据加载 | 0.11s | 1% | NIfTI → Tensor |
| 模型推理 | 8.08s | 99% | Sliding Window |
| **总计** | **8.19s** | **100%** | - |
| **GPU显存** | **7.32 GB** | - | PyTorch allocated |
| **GPU显存 (系统)** | **9.0 GB** | - | nvidia-smi 报告 |
### GPU 显存分析
```
单任务: ▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░ 9.0 GB / 80 GB (11%)
双任务: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░ 15.0 GB / 80 GB (19%)
```
> 📊 **结论**: 单任务分割需要约 **9 GB** GPU显存,双任务需要约 **15 GB**。RTX 3060 (12GB) 可运行单任务,RTX 4090 (24GB) 可运行 2 并发。
---
## 资源需求总结
### 最小配置估算
基于测试数据,各场景的最小资源需求:
| 场景 | CPU | 内存 | GPU显存 | 备注 |
|------|-----|------|---------|------|
| 仅配准 (单任务) | 2 核 | 2 GB | 无需 | CPU密集型 |
| 仅配准 (5并发) | 8 核 | 6 GB | 无需 | 线性扩展 |
| 分割 (单任务) | 4 核 | 4 GB | **9 GB** | GPU密集型 |
| 分割 (双任务) | 4 核 | 6 GB | **15 GB** | 显存瓶颈 |
| 完整流程 | 8 核 | 8 GB | **12 GB** | 配准+分割+LLM |
### 推荐配置方案
| 部署场景 | CPU | 内存 | GPU | 预估并发能力 | 参考月费 |
|----------|-----|------|-----|--------------|----------|
| **最低配置** | 4核 | 8 GB | 无 | 1 任务 (仅配准) | ~¥100 |
| **推荐配置** | 8核 | 16 GB | RTX 3060 12GB | 2-3 任务 | ~¥800 |
| **专业配置** | 16核 | 32 GB | RTX 4090 24GB | 5+ 任务 | ~¥2000 |
| **服务器配置** | 32核+ | 64 GB+ | A100 40GB+ | 10+ 任务 | ~¥8000 |
---
## 运行基准测试
```bash
# 运行完整基准测试
python scripts/benchmark.py
# 运行快速压力测试
python scripts/stress_test.py
```
---
## 附录: 测试脚本
- `scripts/benchmark.py` - 完整基准测试,生成详细报告
- `scripts/stress_test.py` - 快速压力测试,显示资源峰值
---
*报告生成时间: 2026-01-28 17:16:29*